Merge "[ActivityManager] Use synchronized to protect object"
This commit is contained in:
@@ -4161,22 +4161,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,
|
||||
|
||||
Reference in New Issue
Block a user