summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2018-12-17 11:55:47 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2018-12-17 11:55:47 +0000
commitfd473a32ef6fc168ad4502bc7617f09ec434b07e (patch)
treeff58df26f23894a48b254c4ec7e1c4dd527182f9
parent407396e3492cc97c4a25ef125a89efc55c910ef0 (diff)
parent57eb705e9b0c3c6c9387d4414157f63eb47e1c1f (diff)
Merge "Fix iterator misuse"
-rw-r--r--services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java8
1 files changed, 4 insertions, 4 deletions
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index b3afacbf15ec..bd3dfe96a67e 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -5968,9 +5968,9 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
// If set, remove exclusive scopes from all other delegates
if (exclusiveScopes != null && !exclusiveScopes.isEmpty()) {
- for (Map.Entry<String, List<String>> entry : policy.mDelegationMap.entrySet()) {
- final String currentPackage = entry.getKey();
- final List<String> currentScopes = entry.getValue();
+ for (int i = policy.mDelegationMap.size() - 1; i >= 0; --i) {
+ final String currentPackage = policy.mDelegationMap.keyAt(i);
+ final List<String> currentScopes = policy.mDelegationMap.valueAt(i);
if (!currentPackage.equals(delegatePackage)) {
// Iterate through all other delegates
@@ -5978,7 +5978,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
// And if this delegate had some exclusive scopes which are now moved
// to the new delegate, notify about its delegation changes.
if (currentScopes.isEmpty()) {
- policy.mDelegationMap.remove(currentPackage);
+ policy.mDelegationMap.removeAt(i);
}
sendDelegationChangedBroadcast(currentPackage,
new ArrayList<>(currentScopes), userId);