diff options
author | Android (Google) Code Review <android-gerrit@google.com> | 2009-07-17 02:09:14 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2009-07-17 02:09:14 -0700 |
commit | dbee03136fab65227bbe56b2cf03361a1bdbdf1c (patch) | |
tree | bef8db6a2e861f2f7de3997d048fe4acda92c881 /core/jni | |
parent | c185e7b9d8c8a84962dc80cb18478eaf263fc667 (diff) | |
parent | 733cbb0009d3e16eac2383a694833bdbc0c7269e (diff) | |
download | frameworks_base-dbee03136fab65227bbe56b2cf03361a1bdbdf1c.zip frameworks_base-dbee03136fab65227bbe56b2cf03361a1bdbdf1c.tar.gz frameworks_base-dbee03136fab65227bbe56b2cf03361a1bdbdf1c.tar.bz2 |
am 733cbb00: Merge change 7492 into donut
Merge commit '733cbb0009d3e16eac2383a694833bdbc0c7269e'
* commit '733cbb0009d3e16eac2383a694833bdbc0c7269e':
Delete leaked global ref in AudioTrack constructor.
Diffstat (limited to 'core/jni')
-rw-r--r-- | core/jni/android_media_AudioTrack.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/core/jni/android_media_AudioTrack.cpp b/core/jni/android_media_AudioTrack.cpp index cf3ba7f..bc7f3f5 100644 --- a/core/jni/android_media_AudioTrack.cpp +++ b/core/jni/android_media_AudioTrack.cpp @@ -75,6 +75,9 @@ class AudioTrackJniStorage { int mStreamType; AudioTrackJniStorage() { + mCallbackData.audioTrack_class = 0; + mCallbackData.audioTrack_ref = 0; + mStreamType = AudioSystem::DEFAULT; } ~AudioTrackJniStorage() { @@ -318,6 +321,8 @@ native_init_failure: env->SetIntField(thiz, javaAudioTrackFields.nativeTrackInJavaObj, 0); native_track_failure: + env->DeleteGlobalRef(lpJniStorage->mCallbackData.audioTrack_class); + env->DeleteGlobalRef(lpJniStorage->mCallbackData.audioTrack_ref); delete lpJniStorage; env->SetIntField(thiz, javaAudioTrackFields.jniData, 0); return AUDIOTRACK_ERROR_SETUP_NATIVEINITFAILED; @@ -415,6 +420,9 @@ static void android_media_AudioTrack_native_finalize(JNIEnv *env, jobject thiz) AudioTrackJniStorage* pJniStorage = (AudioTrackJniStorage *)env->GetIntField( thiz, javaAudioTrackFields.jniData); if (pJniStorage) { + // delete global refs created in native_setup + env->DeleteGlobalRef(pJniStorage->mCallbackData.audioTrack_class); + env->DeleteGlobalRef(pJniStorage->mCallbackData.audioTrack_ref); //LOGV("deleting pJniStorage: %x\n", (int)pJniStorage); delete pJniStorage; } |