diff options
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 894897705d44..6b752f90929d 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -13696,7 +13696,9 @@ public class PackageManagerService extends IPackageManager.Stub if (mPackageListObservers.size() == 0) { return; } - observers = (PackageListObserver[]) mPackageListObservers.toArray(); + final PackageListObserver[] observerArray = + new PackageListObserver[mPackageListObservers.size()]; + observers = mPackageListObservers.toArray(observerArray); } for (int i = observers.length - 1; i >= 0; --i) { observers[i].onPackageAdded(packageName); @@ -13710,7 +13712,9 @@ public class PackageManagerService extends IPackageManager.Stub if (mPackageListObservers.size() == 0) { return; } - observers = (PackageListObserver[]) mPackageListObservers.toArray(); + final PackageListObserver[] observerArray = + new PackageListObserver[mPackageListObservers.size()]; + observers = mPackageListObservers.toArray(observerArray); } for (int i = observers.length - 1; i >= 0; --i) { observers[i].onPackageRemoved(packageName); |