Merge "Simplify unregister logic for Connectivity Diagnostics callbacks."
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index 4d03f66..96197ce 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -7883,12 +7883,14 @@
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");
@@ -7900,8 +7902,6 @@
// enforceRequestCountLimit().
decrementNetworkRequestPerUidCount(nri);
- final ConnectivityDiagnosticsCallbackInfo cbInfo =
- mConnectivityDiagnosticsCallbacks.remove(iCb);
iCb.unlinkToDeath(cbInfo, 0);
}