summaryrefslogtreecommitdiffstats
path: root/core/java/android/app
diff options
context:
space:
mode:
authorOlawale Ogunwale <ogunwale@google.com>2014-12-17 21:55:05 +0000
committerandroid-build-merger <android-build-merger@google.com>2014-12-17 21:55:05 +0000
commitc946e92e6cf70f2f90e80c5ca27c576402bac69f (patch)
tree2c113dc26f0d40be5ff00f497d93ce91bc3933cb /core/java/android/app
parente8826ba3dd6c03d40a1835148e9b79b0ee503daf (diff)
parenta230a43204e3567d93a2d914123b21c14bdf495d (diff)
downloadframeworks_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.java24
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,