diff options
Diffstat (limited to 'media/jni')
-rw-r--r-- | media/jni/soundpool/android_media_SoundPool_SoundPoolImpl.cpp | 6 |
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; } |