diff options
author | Jakub Pawlowski <jpawlowski@google.com> | 2016-05-23 11:05:32 -0700 |
---|---|---|
committer | Jakub Pawlowski <jpawlowski@google.com> | 2016-05-23 12:22:46 -0700 |
commit | c949f686413deb9b711696d53d8064669a1475d0 (patch) | |
tree | d3ace3cc885130af781f49a0be80e50d216b02ec /jni | |
parent | b3ddda59b674623296238121a6e81c3c1e434756 (diff) | |
download | android_packages_apps_Bluetooth-c949f686413deb9b711696d53d8064669a1475d0.tar.gz android_packages_apps_Bluetooth-c949f686413deb9b711696d53d8064669a1475d0.tar.bz2 android_packages_apps_Bluetooth-c949f686413deb9b711696d53d8064669a1475d0.zip |
Fix LocalRef leakage in get_gatt_db
Bug: 28878699
Change-Id: I81929d9f802d4f50eb7eb60d54ceca6ff19bb651
Diffstat (limited to 'jni')
-rw-r--r-- | jni/com_android_bluetooth_gatt.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/jni/com_android_bluetooth_gatt.cpp b/jni/com_android_bluetooth_gatt.cpp index 582d63cc6..c9f28a750 100644 --- a/jni/com_android_bluetooth_gatt.cpp +++ b/jni/com_android_bluetooth_gatt.cpp @@ -566,6 +566,7 @@ void btgattc_get_gatt_db_cb(int conn_id, btgatt_db_element_t *db, int count) jclass arrayListclazz = sCallbackEnv->FindClass("java/util/ArrayList"); jobject array = sCallbackEnv->NewObject(arrayListclazz, sCallbackEnv->GetMethodID(arrayListclazz, "<init>", "()V")); jmethodID arrayAdd = sCallbackEnv->GetMethodID(arrayListclazz, "add", "(Ljava/lang/Object;)Z"); + sCallbackEnv->DeleteLocalRef(arrayListclazz); jclass uuidClazz = sCallbackEnv->FindClass("java/util/UUID"); jmethodID uuidConstructor = sCallbackEnv->GetMethodID(uuidClazz, "<init>", "(JJ)V"); @@ -602,6 +603,9 @@ void btgattc_get_gatt_db_cb(int conn_id, btgatt_db_element_t *db, int count) sCallbackEnv->DeleteLocalRef(element); } + sCallbackEnv->DeleteLocalRef(gattDbElementClazz); + sCallbackEnv->DeleteLocalRef(uuidClazz); + sCallbackEnv->CallVoidMethod(mCallbacksObj, method_onGetGattDb, conn_id, array); sCallbackEnv->DeleteLocalRef(array); |