diff options
| author | Mike Lockwood <lockwood@android.com> | 2011-03-28 11:04:29 -0700 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2011-03-28 11:04:29 -0700 |
| commit | 60355780eaa7d80a76a5481ab033606bcfb630fd (patch) | |
| tree | d39dadbdb2840065fc5f38978f7ea933156bd500 | |
| parent | ab13a89c997fafcfbbb10ed31008893863e39a37 (diff) | |
| parent | 038c7297c9e2e4b6cdb490ac9fe7102da434278a (diff) | |
| download | frameworks_base-60355780eaa7d80a76a5481ab033606bcfb630fd.zip frameworks_base-60355780eaa7d80a76a5481ab033606bcfb630fd.tar.gz frameworks_base-60355780eaa7d80a76a5481ab033606bcfb630fd.tar.bz2 | |
am 038c7297: am b115807a: am 7661dd8d: Merge "UsbService: Fix JNI local reference leaks in the USB host support code" into honeycomb-mr1
* commit '038c7297c9e2e4b6cdb490ac9fe7102da434278a':
UsbService: Fix JNI local reference leaks in the USB host support code
| -rw-r--r-- | services/jni/com_android_server_UsbService.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/services/jni/com_android_server_UsbService.cpp b/services/jni/com_android_server_UsbService.cpp index 816f76f..6aeede2 100644 --- a/services/jni/com_android_server_UsbService.cpp +++ b/services/jni/com_android_server_UsbService.cpp @@ -117,9 +117,14 @@ static int usb_device_added(const char *devname, void* client_data) { jintArray endpointArray = env->NewIntArray(length); env->SetIntArrayRegion(endpointArray, 0, length, endpointValues.array()); + jstring deviceName = env->NewStringUTF(devname); env->CallVoidMethod(thiz, method_usbDeviceAdded, - env->NewStringUTF(devname), vendorId, productId, deviceClass, + deviceName, vendorId, productId, deviceClass, deviceSubClass, protocol, interfaceArray, endpointArray); + + env->DeleteLocalRef(interfaceArray); + env->DeleteLocalRef(endpointArray); + env->DeleteLocalRef(deviceName); checkAndClearExceptionFromCallback(env, __FUNCTION__); return 0; @@ -129,7 +134,9 @@ static int usb_device_removed(const char *devname, void* client_data) { JNIEnv* env = AndroidRuntime::getJNIEnv(); jobject thiz = (jobject)client_data; + jstring deviceName = env->NewStringUTF(devname); env->CallVoidMethod(thiz, method_usbDeviceRemoved, env->NewStringUTF(devname)); + env->DeleteLocalRef(deviceName); checkAndClearExceptionFromCallback(env, __FUNCTION__); return 0; } |
