diff options
author | Olawale Ogunwale <ogunwale@google.com> | 2014-12-17 21:55:05 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2014-12-17 21:55:05 +0000 |
commit | c946e92e6cf70f2f90e80c5ca27c576402bac69f (patch) | |
tree | 2c113dc26f0d40be5ff00f497d93ce91bc3933cb /core/java/android/app | |
parent | e8826ba3dd6c03d40a1835148e9b79b0ee503daf (diff) | |
parent | a230a43204e3567d93a2d914123b21c14bdf495d (diff) | |
download | frameworks_base-c946e92e6cf70f2f90e80c5ca27c576402bac69f.zip frameworks_base-c946e92e6cf70f2f90e80c5ca27c576402bac69f.tar.gz frameworks_base-c946e92e6cf70f2f90e80c5ca27c576402bac69f.tar.bz2 |
am 486a9942: Merge "[ActivityManager] Use synchronized to protect object" automerge: e3b07b4
automerge: a230a43
* commit 'a230a43204e3567d93a2d914123b21c14bdf495d':
[ActivityManager] Use synchronized to protect object
Diffstat (limited to 'core/java/android/app')
-rw-r--r-- | core/java/android/app/ActivityThread.java | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index bcd8fb4..a5cdcfd 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -4187,22 +4187,24 @@ public final class ActivityThread { final void handleDispatchPackageBroadcast(int cmd, String[] packages) { boolean hasPkgInfo = false; if (packages != null) { - for (int i=packages.length-1; i>=0; i--) { - //Slog.i(TAG, "Cleaning old package: " + packages[i]); - if (!hasPkgInfo) { - WeakReference<LoadedApk> ref; - ref = mPackages.get(packages[i]); - if (ref != null && ref.get() != null) { - hasPkgInfo = true; - } else { - ref = mResourcePackages.get(packages[i]); + synchronized (mResourcesManager) { + for (int i=packages.length-1; i>=0; i--) { + //Slog.i(TAG, "Cleaning old package: " + packages[i]); + if (!hasPkgInfo) { + WeakReference<LoadedApk> ref; + ref = mPackages.get(packages[i]); if (ref != null && ref.get() != null) { 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, |