summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Android (Google) Code Review <android-gerrit@google.com> 2009-07-17 17:13:28 -0700
committer Android Git Automerger <android-git-automerger@android.com> 2009-07-17 17:13:28 -0700
commitddd12804d1c5439500bf926d3a91bbdc4439c4d9 (patch)
tree4ec0162cce04e41fe5e98d1cabd670750b8db7fd
parent568ebf06bce19ecc50edb8290997040ec36b88dd (diff)
parent261a784c44d6ac4377651e4842c7a96326462857 (diff)
am 261a784c: Merge change 7720 into donut
Merge commit '261a784c44d6ac4377651e4842c7a96326462857' * commit '261a784c44d6ac4377651e4842c7a96326462857': Fix global ref leak in android.media.AudioRecord. Delete global refs
-rw-r--r--core/jni/android_media_AudioRecord.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/core/jni/android_media_AudioRecord.cpp b/core/jni/android_media_AudioRecord.cpp
index e71e3481862e..44a9e8cbcc58 100644
--- a/core/jni/android_media_AudioRecord.cpp
+++ b/core/jni/android_media_AudioRecord.cpp
@@ -212,8 +212,10 @@ android_media_AudioRecord_setup(JNIEnv *env, jobject thiz, jobject weak_this,
// failure:
native_init_failure:
+ env->DeleteGlobalRef(lpCallbackData->audioRecord_class);
+ env->DeleteGlobalRef(lpCallbackData->audioRecord_ref);
delete lpCallbackData;
-
+
native_track_failure:
delete lpRecorder;
@@ -274,6 +276,8 @@ static void android_media_AudioRecord_finalize(JNIEnv *env, jobject thiz) {
thiz, javaAudioRecordFields.nativeCallbackCookie);
if (lpCookie) {
LOGV("deleting lpCookie: %x\n", (int)lpCookie);
+ env->DeleteGlobalRef(lpCookie->audioRecord_class);
+ env->DeleteGlobalRef(lpCookie->audioRecord_ref);
delete lpCookie;
}