Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 075b998c authored by Jakub Pawlowski's avatar Jakub Pawlowski
Browse files

Fix LocalRef leakage in get_gatt_db

Bug: 28878699
Change-Id: I81929d9f802d4f50eb7eb60d54ceca6ff19bb651
parent cb154536
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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);