SoundTrigger JNI: fix local reference leak.
Bug: 17935275.
Change-Id: Ibc6f22b868dda2ed1a07dc371ee00e85c99c1e53
diff --git a/core/jni/android_hardware_SoundTrigger.cpp b/core/jni/android_hardware_SoundTrigger.cpp
index 7b33bc2..2a8e6d6 100644
--- a/core/jni/android_hardware_SoundTrigger.cpp
+++ b/core/jni/android_hardware_SoundTrigger.cpp
@@ -265,18 +265,21 @@
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);