diff --git a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/BoardDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/BoardDelegate.java index 4807dc59b..9d0d111d7 100644 --- a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/BoardDelegate.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/BoardDelegate.java @@ -2204,6 +2204,7 @@ public class BoardDelegate extends DelegateBase private Handler makeJNIHandler() { Handler handler = new Handler() { + @Override public void handleMessage( final Message msg ) { switch( msg.what ) { case JNIThread.DIALOG: @@ -2231,6 +2232,7 @@ public class BoardDelegate extends DelegateBase runOnUiThread( new Runnable() { @Override public void run() { + Assert.assertTrue( m_jniGamePtr.isRetained() ); boolean hasPending = 0 < XwJNI. comms_countPendingPackets( m_jniGamePtr ); mGameOverAlert = GameOverAlert diff --git a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/XwJNI.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/XwJNI.java index d896c0f05..b68ad87e7 100644 --- a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/XwJNI.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/XwJNI.java @@ -69,6 +69,8 @@ public class XwJNI { public long getRowid() { return m_rowid; } + public boolean isRetained() { return 0 < m_refCount; } + // Force (via an assert in finalize() below) that this is called. It's // better if jni stuff isn't being done on the finalizer thread public synchronized void release()