summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--media/jni/soundpool/android_media_SoundPool_SoundPoolImpl.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/media/jni/soundpool/android_media_SoundPool_SoundPoolImpl.cpp b/media/jni/soundpool/android_media_SoundPool_SoundPoolImpl.cpp
index ce20e52..baf61d5 100644
--- a/media/jni/soundpool/android_media_SoundPool_SoundPoolImpl.cpp
+++ b/media/jni/soundpool/android_media_SoundPool_SoundPoolImpl.cpp
@@ -231,14 +231,14 @@ android_media_SoundPool_SoundPoolImpl_release(JNIEnv *env, jobject thiz)
SoundPool *ap = MusterSoundPool(env, thiz);
if (ap != NULL) {
- // release weak reference
+ // release weak reference and clear callback
jobject weakRef = (jobject) ap->getUserData();
+ ap->setCallback(NULL, NULL);
if (weakRef != NULL) {
env->DeleteGlobalRef(weakRef);
}
- // clear callback and native context
- ap->setCallback(NULL, NULL);
+ // clear native context
env->SetLongField(thiz, fields.mNativeContext, 0);
delete ap;
}