Skip to content

Commit ff7735b

Browse files
Amith YamasaniAndroid Git Automerger
authored andcommitted
am a3db529: Merge "ProviderMap: remove hashmap when entire user specific entries are removed"
* commit 'a3db5297cda370ce41db99b6839cd9528c31ef7c': ProviderMap: remove hashmap when entire user specific entries are removed
2 parents c48ee60 + a3db529 commit ff7735b

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

services/java/com/android/server/am/ProviderMap.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,12 @@ void removeProviderByName(String name, int optionalUserId) {
127127
Slog.i(TAG,
128128
"Removing from providersByName name=" + name + " user="
129129
+ (optionalUserId == -1 ? Binder.getOrigCallingUser() : optionalUserId));
130-
getProvidersByName(optionalUserId).remove(name);
130+
HashMap<String, ContentProviderRecord> map = getProvidersByName(optionalUserId);
131+
// map returned by getProvidersByName wouldn't be null
132+
map.remove(name);
133+
if (map.size() == 0) {
134+
mProvidersByNamePerUser.remove(optionalUserId);
135+
}
131136
}
132137
}
133138

@@ -141,7 +146,12 @@ void removeProviderByClass(ComponentName name, int optionalUserId) {
141146
Slog.i(TAG,
142147
"Removing from providersByClass name=" + name + " user="
143148
+ (optionalUserId == -1 ? Binder.getOrigCallingUser() : optionalUserId));
144-
getProvidersByClass(optionalUserId).remove(name);
149+
HashMap<ComponentName, ContentProviderRecord> map = getProvidersByClass(optionalUserId);
150+
// map returned by getProvidersByClass wouldn't be null
151+
map.remove(name);
152+
if (map.size() == 0) {
153+
mProvidersByClassPerUser.remove(optionalUserId);
154+
}
145155
}
146156
}
147157

0 commit comments

Comments
 (0)