mirror of
git://xwords.git.sourceforge.net/gitroot/xwords/xwords
synced 2025-02-15 08:47:56 +01:00
test for null to fix NPEs
These are probably coming out of not waiting to join JNIThread
This commit is contained in:
parent
a7c25ac58e
commit
0388b94f51
3 changed files with 83 additions and 78 deletions
|
@ -219,11 +219,14 @@ object DBUtils {
|
|||
context: Context, lock: GameLock,
|
||||
summary: GameSummary?
|
||||
) {
|
||||
if ( !lock.canWrite() ) {
|
||||
Log.d(TAG, "saveSummary(): lock not writeable")
|
||||
} else {
|
||||
Assert.assertTrue(lock.canWrite())
|
||||
val rowid = lock.rowid
|
||||
val selection = String.format(ROW_ID_FMT, rowid)
|
||||
var values: ContentValues? = null
|
||||
if (null != summary) {
|
||||
summary?.let { summary ->
|
||||
values = ContentValues()
|
||||
.putAnd(DBHelper.NUM_MOVES, summary.nMoves)
|
||||
.putAnd(DBHelper.NUM_PLAYERS, summary.nPlayers)
|
||||
|
@ -295,9 +298,10 @@ object DBUtils {
|
|||
notifyListeners(context, rowid, GameChangeType.GAME_CHANGED)
|
||||
invalGroupsCache()
|
||||
}
|
||||
if (null != summary) { // nag time may have changed
|
||||
summary?.let { // nag time may have changed
|
||||
NagTurnReceiver.setNagTimer(context)
|
||||
}
|
||||
}
|
||||
} // saveSummary
|
||||
|
||||
fun countGamesUsingISOCode(context: Context, isoCode: ISOCode?): Int {
|
||||
|
|
|
@ -395,9 +395,7 @@ object GameUtils {
|
|||
): GamePtr? {
|
||||
var gamePtr: GamePtr? = null
|
||||
|
||||
if (null == stream) {
|
||||
Log.w(TAG, "loadMakeGame: no saved game!")
|
||||
} else {
|
||||
stream?.let {
|
||||
XwJNI.giFromStream(gi, stream)
|
||||
val dictNames = gi.dictNames()
|
||||
val pairs = DictUtils.openDicts(context, dictNames)
|
||||
|
@ -429,6 +427,8 @@ object GameUtils {
|
|||
}
|
||||
}
|
||||
}
|
||||
} ?: run {
|
||||
Log.w(TAG, "loadMakeGame(): no saved game!")
|
||||
}
|
||||
return gamePtr
|
||||
}
|
||||
|
|
|
@ -395,7 +395,7 @@ class JNIThread private constructor(lockIn: GameLock) : Thread(), AutoCloseable
|
|||
// Log.d( TAG, "save_jni(): no change in game; can skip saving" );
|
||||
} else {
|
||||
m_lock?.let { lock ->
|
||||
val context = mContext!!
|
||||
mContext?.let { context ->
|
||||
val summary = GameSummary(mGi!!)
|
||||
XwJNI.game_summarize(mJNIGamePtr, summary)
|
||||
DBUtils.saveGame(context, lock, state, false)
|
||||
|
@ -407,7 +407,8 @@ class JNIThread private constructor(lockIn: GameLock) : Thread(), AutoCloseable
|
|||
|
||||
val thumb = GameUtils.takeSnapshot(context, mJNIGamePtr!!, mGi)
|
||||
DBUtils.saveThumbnail(context, lock, thumb)
|
||||
}
|
||||
} ?: run { Log.d(TAG, "save_jni(): null context") }
|
||||
} ?: run { Log.d(TAG, "save_jni(): null lock") }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue