diff options
author | Narayan Kamath <narayan@google.com> | 2015-01-05 17:57:25 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2015-01-05 17:57:27 +0000 |
commit | ea4cdd44541d76adea9b0b185740796d6cf6ac64 (patch) | |
tree | 9a4a014dd218bdd50510a1dd04f32db1ce5f1efd /media | |
parent | 873b291b15c35ae1ec7ea29de4c012275e13e761 (diff) | |
parent | ed86e19af2e36397a1cd5b89105b1bf0de47414e (diff) | |
download | frameworks_base-ea4cdd44541d76adea9b0b185740796d6cf6ac64.zip frameworks_base-ea4cdd44541d76adea9b0b185740796d6cf6ac64.tar.gz frameworks_base-ea4cdd44541d76adea9b0b185740796d6cf6ac64.tar.bz2 |
Merge "Race-condition in SoundPool during release"
Diffstat (limited to 'media')
-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; } |