summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuke Zhang <lukez@codeaurora.org>2016-01-15 13:30:48 -0800
committerGerrit Code Review <gerrit@cyanogenmod.org>2016-06-15 16:59:19 -0700
commitd8e8f3a344b53b3ca96c60d2831829f4922dfb63 (patch)
tree3b1656038c50674157a1947d694544a99eeb4525
parent084c841f761ecb89eb1654f2abdfe161a6ecc042 (diff)
downloadandroid_packages_apps_Bluetooth-d8e8f3a344b53b3ca96c60d2831829f4922dfb63.tar.gz
android_packages_apps_Bluetooth-d8e8f3a344b53b3ca96c60d2831829f4922dfb63.tar.bz2
android_packages_apps_Bluetooth-d8e8f3a344b53b3ca96c60d2831829f4922dfb63.zip
Set sJniAdapterServiceObj to NULL after deleting it
In cleanupNative function, we delete the global reference object sJniAdapterServiceObj, but we does not set it to NULL. As a result, it crashed later when we access this object again. CYNGNOS-2866 Change-Id: I394b8741108a9192adac91fc4b16412bb64eaf64 CR-fixed: 961141 (cherry picked from commit cf5fdf71346d780e998c0fd1f8335517528695db)
-rw-r--r--jni/com_android_bluetooth_btservice_AdapterService.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/jni/com_android_bluetooth_btservice_AdapterService.cpp b/jni/com_android_bluetooth_btservice_AdapterService.cpp
index f18856c1a..88a6fe5e4 100644
--- a/jni/com_android_bluetooth_btservice_AdapterService.cpp
+++ b/jni/com_android_bluetooth_btservice_AdapterService.cpp
@@ -736,7 +736,10 @@ static bool cleanupNative(JNIEnv *env, jobject obj) {
sBluetoothInterface->cleanup();
ALOGI("%s: return from cleanup",__FUNCTION__);
- env->DeleteGlobalRef(sJniAdapterServiceObj);
+ if (sJniAdapterServiceObj) {
+ env->DeleteGlobalRef(sJniAdapterServiceObj);
+ sJniAdapterServiceObj = NULL;
+ }
if (sJniCallbacksObj) {
env->DeleteGlobalRef(sJniCallbacksObj);