From 8f6068e63ec93c671412bafee44e69fb73adecf6 Mon Sep 17 00:00:00 2001 From: Jeff Brown Date: Mon, 8 Nov 2010 15:59:19 -0800 Subject: Fix JNI reference leak in NativeActivity. (DO NOT MERGE) This change ensures that the native activity releases the KeyEvent objects that it allocates since they will not be released automatically and eventually the JNI slot table will overflow and crash the process. Bug: 3170494 Change-Id: I2ea527f056096fae9bc9e7685dccb56ec7a0e8b4 --- core/jni/android_app_NativeActivity.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'core') diff --git a/core/jni/android_app_NativeActivity.cpp b/core/jni/android_app_NativeActivity.cpp index 45fd5a0..ec172bb 100644 --- a/core/jni/android_app_NativeActivity.cpp +++ b/core/jni/android_app_NativeActivity.cpp @@ -580,6 +580,7 @@ static int mainWorkCallback(int fd, int events, void* data) { code->env->CallVoidMethod(code->clazz, gNativeActivityClassInfo.dispatchUnhandledKeyEvent, inputEventObj); checkAndClearExceptionFromCallback(code->env, "dispatchUnhandledKeyEvent"); + code->env->DeleteLocalRef(inputEventObj); code->nativeInputQueue->finishEvent(keyEvent, true); } int seq; @@ -589,6 +590,7 @@ static int mainWorkCallback(int fd, int events, void* data) { code->env->CallVoidMethod(code->clazz, gNativeActivityClassInfo.preDispatchKeyEvent, inputEventObj, seq); checkAndClearExceptionFromCallback(code->env, "preDispatchKeyEvent"); + code->env->DeleteLocalRef(inputEventObj); } } break; case CMD_FINISH: { -- cgit v1.1