Do not hold InstantAppRegistry lock when deleting package

This looks to be a refactor mistake. The lock doesn't need to be
taken in order to call into DeletePackageHelper.

Bug: 246714055

Test: presubmit

Change-Id: Ia7d0f89083de3a19a84faaca849f9acde8f4a632
This commit is contained in:
Winson Chiu
2022-09-14 20:45:27 +00:00
parent 44c0ac96b9
commit 5ff4de58c8

View File

@@ -879,22 +879,22 @@ public class InstantAppRegistry implements Watchable, Snappable {
});
}
synchronized (mLock) {
if (packagesToDelete != null) {
final int packageCount = packagesToDelete.size();
for (int i = 0; i < packageCount; i++) {
final String packageToDelete = packagesToDelete.get(i);
if (mDeletePackageHelper.deletePackageX(packageToDelete,
PackageManager.VERSION_CODE_HIGHEST,
UserHandle.USER_SYSTEM, PackageManager.DELETE_ALL_USERS,
true /*removedBySystem*/) == PackageManager.DELETE_SUCCEEDED) {
if (file.getUsableSpace() >= neededSpace) {
return true;
}
if (packagesToDelete != null) {
final int packageCount = packagesToDelete.size();
for (int i = 0; i < packageCount; i++) {
final String packageToDelete = packagesToDelete.get(i);
if (mDeletePackageHelper.deletePackageX(packageToDelete,
PackageManager.VERSION_CODE_HIGHEST,
UserHandle.USER_SYSTEM, PackageManager.DELETE_ALL_USERS,
true /*removedBySystem*/) == PackageManager.DELETE_SUCCEEDED) {
if (file.getUsableSpace() >= neededSpace) {
return true;
}
}
}
}
synchronized (mLock) {
// Prune uninstalled instant apps
// TODO: Track last used time for uninstalled instant apps for better pruning
for (int userId : mUserManager.getUserIds()) {