am 486a9942: Merge "[ActivityManager] Use synchronized to protect object"

automerge: e3b07b4

* commit 'e3b07b4856d55f7d96dcb25e3749c7cce1a1cd3d':
  [ActivityManager] Use synchronized to protect object
This commit is contained in:
Olawale Ogunwale
2014-12-17 21:50:31 +00:00
committed by android-build-merger

View File

@@ -4187,22 +4187,24 @@ public final class ActivityThread {
final void handleDispatchPackageBroadcast(int cmd, String[] packages) { final void handleDispatchPackageBroadcast(int cmd, String[] packages) {
boolean hasPkgInfo = false; boolean hasPkgInfo = false;
if (packages != null) { if (packages != null) {
for (int i=packages.length-1; i>=0; i--) { synchronized (mResourcesManager) {
//Slog.i(TAG, "Cleaning old package: " + packages[i]); for (int i=packages.length-1; i>=0; i--) {
if (!hasPkgInfo) { //Slog.i(TAG, "Cleaning old package: " + packages[i]);
WeakReference<LoadedApk> ref; if (!hasPkgInfo) {
ref = mPackages.get(packages[i]); WeakReference<LoadedApk> ref;
if (ref != null && ref.get() != null) { ref = mPackages.get(packages[i]);
hasPkgInfo = true;
} else {
ref = mResourcePackages.get(packages[i]);
if (ref != null && ref.get() != null) { if (ref != null && ref.get() != null) {
hasPkgInfo = true; hasPkgInfo = true;
} else {
ref = mResourcePackages.get(packages[i]);
if (ref != null && ref.get() != null) {
hasPkgInfo = true;
}
} }
} }
mPackages.remove(packages[i]);
mResourcePackages.remove(packages[i]);
} }
mPackages.remove(packages[i]);
mResourcePackages.remove(packages[i]);
} }
} }
ApplicationPackageManager.handlePackageBroadcast(cmd, packages, ApplicationPackageManager.handlePackageBroadcast(cmd, packages,