OSDN Git Service

ContextHub: Avoid reference leaks
authorAndrew Rossignol <aarossig@google.com>
Tue, 9 Aug 2016 17:54:38 +0000 (10:54 -0700)
committerAndrew Rossignol <aarossig@google.com>
Tue, 9 Aug 2016 18:47:09 +0000 (11:47 -0700)
The ContextHub HAL was leaking references in passOnOsResponse. An
example of this is when a sensor hub reset occurs. If many of these
resets happen, the local reference pool is exhausted and a crash
in the HAL occurs.

Bug: 30706325
Change-Id: Ica5328137a7033f512d7fb1ccf6fa138eab55091

core/jni/android_hardware_location_ContextHubService.cpp

index 9515a0e..7a8a574 100644 (file)
@@ -603,6 +603,8 @@ static void passOnOsResponse(uint32_t hubHandle, uint32_t msgType,
     env->CallIntMethod(db.jniInfo.jContextHubService,
                        db.jniInfo.contextHubServiceMsgReceiptCallback,
                        jheader, jmsg);
+    env->DeleteLocalRef(jmsg);
+    env->DeleteLocalRef(jheader);
 
     delete[] msg;
 }