summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorNarayan Kamath <narayan@google.com>2015-01-05 17:57:25 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2015-01-05 17:57:27 +0000
commitea4cdd44541d76adea9b0b185740796d6cf6ac64 (patch)
tree9a4a014dd218bdd50510a1dd04f32db1ce5f1efd /media
parent873b291b15c35ae1ec7ea29de4c012275e13e761 (diff)
parented86e19af2e36397a1cd5b89105b1bf0de47414e (diff)
downloadframeworks_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.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;
}