test for null to fix NPEs

These are probably coming out of not waiting to join JNIThread
This commit is contained in:
Eric House 2024-12-17 11:14:09 -08:00
parent a7c25ac58e
commit 0388b94f51
3 changed files with 83 additions and 78 deletions

View file

@ -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 {

View file

@ -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
}

View file

@ -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") }
}
}