diff --git a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameUtils.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameUtils.java index f92eb8cb9..52e7aabcb 100644 --- a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameUtils.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameUtils.java @@ -1141,6 +1141,8 @@ public class GameUtils { GamePtr gamePtr = loadMakeGame( context, lock ); if ( null != gamePtr ) { + Assert.assertTrue( XwJNI.game_hasComms( gamePtr ) + || !BuildConfig.DEBUG ); CommsAddrRec[] addrs = XwJNI.comms_getAddrs( gamePtr ); for ( CommsAddrRec addr : addrs ) { CommsConnTypeSet conTypes = addr.conTypes; diff --git a/xwords4/android/jni/xwjni.c b/xwords4/android/jni/xwjni.c index 5d5ba41de..2a7bc4556 100644 --- a/xwords4/android/jni/xwjni.c +++ b/xwords4/android/jni/xwjni.c @@ -1631,22 +1631,23 @@ Java_org_eehouse_android_xw4_jni_XwJNI_comms_1getAddrs jobjectArray result = NULL; XWJNI_START(); XP_ASSERT( state->game.comms ); - CommsAddrRec addrs[MAX_NUM_PLAYERS]; - XP_U16 count = VSIZE(addrs); - comms_getAddrs( state->game.comms, addrs, &count ); + if ( !!state->game.comms ) { + CommsAddrRec addrs[MAX_NUM_PLAYERS]; + XP_U16 count = VSIZE(addrs); + comms_getAddrs( state->game.comms, addrs, &count ); - jclass clas = (*env)->FindClass( env, PKG_PATH("jni/CommsAddrRec") ); - result = (*env)->NewObjectArray( env, count, clas, NULL ); + jclass clas = (*env)->FindClass( env, PKG_PATH("jni/CommsAddrRec") ); + result = (*env)->NewObjectArray( env, count, clas, NULL ); - jmethodID initId = (*env)->GetMethodID( env, clas, "", "()V" ); - for ( int ii = 0; ii < count; ++ii ) { - jobject jaddr = (*env)->NewObject( env, clas, initId ); - setJAddrRec( env, jaddr, &addrs[ii] ); - (*env)->SetObjectArrayElement( env, result, ii, jaddr ); - deleteLocalRef( env, jaddr ); + jmethodID initId = (*env)->GetMethodID( env, clas, "", "()V" ); + for ( int ii = 0; ii < count; ++ii ) { + jobject jaddr = (*env)->NewObject( env, clas, initId ); + setJAddrRec( env, jaddr, &addrs[ii] ); + (*env)->SetObjectArrayElement( env, result, ii, jaddr ); + deleteLocalRef( env, jaddr ); + } + deleteLocalRef( env, clas ); } - deleteLocalRef( env, clas ); - XWJNI_END(); return result; }