Merge "Use hand-written counted loop for ArrayList" into rvc-dev am: 7e4cf533ac

Change-Id: I30d06123e0db0fa13f1db53ad377166e18bba9cf
This commit is contained in:
Jackal Guo
2020-04-07 01:29:05 +00:00
committed by Automerger Merge Worker
2 changed files with 24 additions and 19 deletions

View File

@@ -522,7 +522,8 @@ public abstract class ApexManager {
"APEX packages have not been scanned"); "APEX packages have not been scanned");
boolean matchActive = (flags & MATCH_ACTIVE_PACKAGE) != 0; boolean matchActive = (flags & MATCH_ACTIVE_PACKAGE) != 0;
boolean matchFactory = (flags & MATCH_FACTORY_PACKAGE) != 0; boolean matchFactory = (flags & MATCH_FACTORY_PACKAGE) != 0;
for (PackageInfo packageInfo: mAllPackagesCache) { for (int i = 0, size = mAllPackagesCache.size(); i < size; i++) {
final PackageInfo packageInfo = mAllPackagesCache.get(i);
if (!packageInfo.packageName.equals(packageName)) { if (!packageInfo.packageName.equals(packageName)) {
continue; continue;
} }
@@ -581,7 +582,8 @@ public abstract class ApexManager {
if (!isApexSupported()) return false; if (!isApexSupported()) return false;
Preconditions.checkState(mAllPackagesCache != null, Preconditions.checkState(mAllPackagesCache != null,
"APEX packages have not been scanned"); "APEX packages have not been scanned");
for (PackageInfo packageInfo : mAllPackagesCache) { for (int i = 0, size = mAllPackagesCache.size(); i < size; i++) {
final PackageInfo packageInfo = mAllPackagesCache.get(i);
if (packageInfo.packageName.equals(packageName)) { if (packageInfo.packageName.equals(packageName)) {
return true; return true;
} }
@@ -839,7 +841,8 @@ public abstract class ApexManager {
IndentingPrintWriter ipw) { IndentingPrintWriter ipw) {
ipw.println(); ipw.println();
ipw.increaseIndent(); ipw.increaseIndent();
for (PackageInfo pi : packagesCache) { for (int i = 0, size = packagesCache.size(); i < size; i++) {
final PackageInfo pi = packagesCache.get(i);
if (packageName != null && !packageName.equals(pi.packageName)) { if (packageName != null && !packageName.equals(pi.packageName)) {
continue; continue;
} }

View File

@@ -254,8 +254,9 @@ public class StagingManager {
private int retrieveRollbackIdForCommitSession(int sessionId) throws PackageManagerException { private int retrieveRollbackIdForCommitSession(int sessionId) throws PackageManagerException {
RollbackManager rm = mContext.getSystemService(RollbackManager.class); RollbackManager rm = mContext.getSystemService(RollbackManager.class);
List<RollbackInfo> rollbacks = rm.getRecentlyCommittedRollbacks(); final List<RollbackInfo> rollbacks = rm.getRecentlyCommittedRollbacks();
for (RollbackInfo rollback : rollbacks) { for (int i = 0, size = rollbacks.size(); i < size; i++) {
final RollbackInfo rollback = rollbacks.get(i);
if (rollback.getCommittedSessionId() == sessionId) { if (rollback.getCommittedSessionId() == sessionId) {
return rollback.getRollbackId(); return rollback.getRollbackId();
} }
@@ -388,7 +389,8 @@ public class StagingManager {
} }
} }
} }
for (PackageInstallerSession childSession : childrenSessions) { for (int i = 0, size = childrenSessions.size(); i < size; i++) {
final PackageInstallerSession childSession = childrenSessions.get(i);
if (sessionContainsApex(childSession)) { if (sessionContainsApex(childSession)) {
apexSessions.add(childSession); apexSessions.add(childSession);
} }
@@ -402,15 +404,15 @@ public class StagingManager {
IRollbackManager rm = IRollbackManager.Stub.asInterface( IRollbackManager rm = IRollbackManager.Stub.asInterface(
ServiceManager.getService(Context.ROLLBACK_SERVICE)); ServiceManager.getService(Context.ROLLBACK_SERVICE));
for (PackageInstallerSession apexSession : apexSessions) { for (int i = 0, sessionsSize = apexSessions.size(); i < sessionsSize; i++) {
String packageName = apexSession.getPackageName(); final String packageName = apexSessions.get(i).getPackageName();
// Perform any snapshots or restores for the APEX itself // Perform any snapshots or restores for the APEX itself
snapshotAndRestoreApexUserData(packageName, allUsers, rm); snapshotAndRestoreApexUserData(packageName, allUsers, rm);
// Process the apks inside the APEX // Process the apks inside the APEX
List<String> apksInApex = mApexManager.getApksInApex(packageName); final List<String> apksInApex = mApexManager.getApksInApex(packageName);
for (String apk: apksInApex) { for (int j = 0, apksSize = apksInApex.size(); j < apksSize; j++) {
snapshotAndRestoreApkInApexUserData(apk, allUsers, rm); snapshotAndRestoreApkInApexUserData(apksInApex.get(j), allUsers, rm);
} }
} }
} }
@@ -637,7 +639,8 @@ public class StagingManager {
0 /* UserHandle.SYSTEM */); 0 /* UserHandle.SYSTEM */);
PackageInstallerSession apkSession = mPi.getSession(apkSessionId); PackageInstallerSession apkSession = mPi.getSession(apkSessionId);
apkSession.open(); apkSession.open();
for (String apkFilePath : apkFilePaths) { for (int i = 0, size = apkFilePaths.size(); i < size; i++) {
final String apkFilePath = apkFilePaths.get(i);
File apkFile = new File(apkFilePath); File apkFile = new File(apkFilePath);
ParcelFileDescriptor pfd = ParcelFileDescriptor.open(apkFile, ParcelFileDescriptor pfd = ParcelFileDescriptor.open(apkFile,
ParcelFileDescriptor.MODE_READ_ONLY); ParcelFileDescriptor.MODE_READ_ONLY);
@@ -705,9 +708,9 @@ public class StagingManager {
"Unable to prepare multi-package session for staged session"); "Unable to prepare multi-package session for staged session");
} }
for (PackageInstallerSession sessionToClone : childSessions) { for (int i = 0, size = childSessions.size(); i < size; i++) {
PackageInstallerSession apkChildSession = final PackageInstallerSession apkChildSession = createAndWriteApkSession(
createAndWriteApkSession(sessionToClone, preReboot); childSessions.get(i), preReboot);
try { try {
apkParentSession.addChildSessionId(apkChildSession.sessionId); apkParentSession.addChildSessionId(apkChildSession.sessionId);
} catch (IllegalStateException e) { } catch (IllegalStateException e) {
@@ -1206,10 +1209,9 @@ public class StagingManager {
// multi-package sessions, find all the child sessions that contain an APEX. // multi-package sessions, find all the child sessions that contain an APEX.
if (hasApex) { if (hasApex) {
try { try {
final List<PackageInfo> apexPackages = final List<PackageInfo> apexPackages = submitSessionToApexService(session);
submitSessionToApexService(session); for (int i = 0, size = apexPackages.size(); i < size; i++) {
for (PackageInfo apexPackage : apexPackages) { validateApexSignature(apexPackages.get(i));
validateApexSignature(apexPackage);
} }
} catch (PackageManagerException e) { } catch (PackageManagerException e) {
session.setStagedSessionFailed(e.error, e.getMessage()); session.setStagedSessionFailed(e.error, e.getMessage());