From 8f89feba39be8e705c6b9f550c5af141a9e189da Mon Sep 17 00:00:00 2001 From: Eric Laurent Date: Wed, 29 Oct 2014 15:52:43 -0700 Subject: [PATCH] SoundTrigger JNI: fix local reference leak. Bug: 17935275. Change-Id: Ibc6f22b868dda2ed1a07dc371ee00e85c99c1e53 --- core/jni/android_hardware_SoundTrigger.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/core/jni/android_hardware_SoundTrigger.cpp b/core/jni/android_hardware_SoundTrigger.cpp index 7b33bc28d24e8..2a8e6d6b5b3dd 100644 --- a/core/jni/android_hardware_SoundTrigger.cpp +++ b/core/jni/android_hardware_SoundTrigger.cpp @@ -265,18 +265,21 @@ void JNISoundTriggerCallback::onRecognitionEvent(struct sound_trigger_recognitio event->capture_session, event->capture_delay_ms, event->capture_preamble_ms, event->trigger_in_data, jAudioFormat, jData, jExtras); - env->DeleteLocalRef(jAudioFormat); - env->DeleteLocalRef(jData); + env->DeleteLocalRef(jExtras); } else { jEvent = env->NewObject(gRecognitionEventClass, gRecognitionEventCstor, event->status, event->model, event->capture_available, event->capture_session, event->capture_delay_ms, event->capture_preamble_ms, event->trigger_in_data, jAudioFormat, jData); - env->DeleteLocalRef(jAudioFormat); - env->DeleteLocalRef(jData); } + if (jAudioFormat != NULL) { + env->DeleteLocalRef(jAudioFormat); + } + if (jData != NULL) { + env->DeleteLocalRef(jData); + } env->CallStaticVoidMethod(mClass, gPostEventFromNative, mObject, SOUNDTRIGGER_EVENT_RECOGNITION, 0, 0, jEvent);