summaryrefslogtreecommitdiffstats
path: root/media/jni
diff options
context:
space:
mode:
authorNarayan Kamath <narayan@google.com>2015-01-05 18:08:06 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-01-05 18:08:06 +0000
commitb7974bd31d06d439cb75f8a3a0ad032fa689c729 (patch)
treef2fc90ba890a428fcecffc79642559c64f0a8731 /media/jni
parent2858ca9e282b10afd67da73885e3a25e82e510a6 (diff)
parentdd65a4f735a311fe60c065449e394974807ff297 (diff)
downloadframeworks_base-b7974bd31d06d439cb75f8a3a0ad032fa689c729.zip
frameworks_base-b7974bd31d06d439cb75f8a3a0ad032fa689c729.tar.gz
frameworks_base-b7974bd31d06d439cb75f8a3a0ad032fa689c729.tar.bz2
am dd65a4f7: am ea4cdd44: Merge "Race-condition in SoundPool during release"
* commit 'dd65a4f735a311fe60c065449e394974807ff297': Race-condition in SoundPool during release
Diffstat (limited to 'media/jni')
-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;
}