summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/ConnectivityService.java8
1 files changed, 4 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index e3f574f36664..2e5a844c88fa 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -7892,12 +7892,14 @@ public class ConnectivityService extends IConnectivityManager.Stub
ensureRunningOnConnectivityServiceThread();
final IBinder iCb = cb.asBinder();
- if (!mConnectivityDiagnosticsCallbacks.containsKey(iCb)) {
+ final ConnectivityDiagnosticsCallbackInfo cbInfo =
+ mConnectivityDiagnosticsCallbacks.remove(iCb);
+ if (cbInfo == null) {
if (VDBG) log("Removing diagnostics callback that is not currently registered");
return;
}
- final NetworkRequestInfo nri = mConnectivityDiagnosticsCallbacks.get(iCb).mRequestInfo;
+ final NetworkRequestInfo nri = cbInfo.mRequestInfo;
if (uid != nri.mUid) {
if (VDBG) loge("Different uid than registrant attempting to unregister cb");
@@ -7909,8 +7911,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
// enforceRequestCountLimit().
decrementNetworkRequestPerUidCount(nri);
- final ConnectivityDiagnosticsCallbackInfo cbInfo =
- mConnectivityDiagnosticsCallbacks.remove(iCb);
iCb.unlinkToDeath(cbInfo, 0);
}