From a7f44ba8674ebf95e939fa53b7c4785afd02b9a9 Mon Sep 17 00:00:00 2001 From: Nicolas Geoffray Date: Tue, 26 Feb 2019 21:40:59 +0000 Subject: [PATCH] No need to pass shared library infos explicitly in performDexOpt. The method can just infer it from the passed package. (cherry picked from commit 1158b87c6ea6d809c2ae665cc0db9f464515ced2) Test: m Change-Id: I676ee7d49600a36a8bd54893679d7dc900da2012 Merged-In: I676ee7d49600a36a8bd54893679d7dc900da2012 Exempt-From-Owner-Approval: approved in internal. --- .../core/java/com/android/server/pm/OtaDexoptService.java | 2 +- .../java/com/android/server/pm/PackageDexOptimizer.java | 6 +++--- .../java/com/android/server/pm/PackageManagerService.java | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/services/core/java/com/android/server/pm/OtaDexoptService.java b/services/core/java/com/android/server/pm/OtaDexoptService.java index 41eaa24d898e9..1c0b78f230020 100644 --- a/services/core/java/com/android/server/pm/OtaDexoptService.java +++ b/services/core/java/com/android/server/pm/OtaDexoptService.java @@ -333,7 +333,7 @@ public class OtaDexoptService extends IOtaDexopt.Stub { PackageDexOptimizer optimizer = new OTADexoptPackageDexOptimizer( collectingInstaller, mPackageManagerService.mInstallLock, mContext); - optimizer.performDexOpt(pkg, pkg.usesLibraryInfos, + optimizer.performDexOpt(pkg, null /* ISAs */, null /* CompilerStats.PackageStats */, mPackageManagerService.getDexManager().getPackageUseInfoOrDefault(pkg.packageName), diff --git a/services/core/java/com/android/server/pm/PackageDexOptimizer.java b/services/core/java/com/android/server/pm/PackageDexOptimizer.java index 51575a45fb948..248a2f6301cdd 100644 --- a/services/core/java/com/android/server/pm/PackageDexOptimizer.java +++ b/services/core/java/com/android/server/pm/PackageDexOptimizer.java @@ -127,7 +127,7 @@ public class PackageDexOptimizer { *

Calls to {@link com.android.server.pm.Installer#dexopt} on {@link #mInstaller} are * synchronized on {@link #mInstallLock}. */ - int performDexOpt(PackageParser.Package pkg, List sharedLibraries, + int performDexOpt(PackageParser.Package pkg, String[] instructionSets, CompilerStats.PackageStats packageStats, PackageDexUsage.PackageUseInfo packageUseInfo, DexoptOptions options) { if (pkg.applicationInfo.uid == -1) { @@ -140,7 +140,7 @@ public class PackageDexOptimizer { synchronized (mInstallLock) { final long acquireTime = acquireWakeLockLI(pkg.applicationInfo.uid); try { - return performDexOptLI(pkg, sharedLibraries, instructionSets, + return performDexOptLI(pkg, instructionSets, packageStats, packageUseInfo, options); } finally { releaseWakeLockLI(acquireTime); @@ -154,9 +154,9 @@ public class PackageDexOptimizer { */ @GuardedBy("mInstallLock") private int performDexOptLI(PackageParser.Package pkg, - List sharedLibraries, String[] targetInstructionSets, CompilerStats.PackageStats packageStats, PackageDexUsage.PackageUseInfo packageUseInfo, DexoptOptions options) { + final List sharedLibraries = pkg.usesLibraryInfos; final String[] instructionSets = targetInstructionSets != null ? targetInstructionSets : getAppDexInstructionSets(pkg.applicationInfo); final String[] dexCodeInstructionSets = getDexCodeInstructionSets(instructionSets); diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 66fc22f396013..96441c5f7d18b 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -9452,12 +9452,12 @@ public class PackageManagerService extends IPackageManager.Stub options.getFlags() | DexoptOptions.DEXOPT_AS_SHARED_LIBRARY); for (PackageParser.Package depPackage : deps) { // TODO: Analyze and investigate if we (should) profile libraries. - pdo.performDexOpt(depPackage, null /* sharedLibraries */, instructionSets, + pdo.performDexOpt(depPackage, instructionSets, getOrCreateCompilerPackageStats(depPackage), mDexManager.getPackageUseInfoOrDefault(depPackage.packageName), libraryOptions); } } - return pdo.performDexOpt(p, p.usesLibraryInfos, instructionSets, + return pdo.performDexOpt(p, instructionSets, getOrCreateCompilerPackageStats(p), mDexManager.getPackageUseInfoOrDefault(p.packageName), options); } @@ -17806,7 +17806,7 @@ public class PackageManagerService extends IPackageManager.Stub REASON_INSTALL, DexoptOptions.DEXOPT_BOOT_COMPLETE | DexoptOptions.DEXOPT_INSTALL_WITH_DEX_METADATA_FILE); - mPackageDexOptimizer.performDexOpt(pkg, pkg.usesLibraryInfos, + mPackageDexOptimizer.performDexOpt(pkg, null /* instructionSets */, getOrCreateCompilerPackageStats(pkg), mDexManager.getPackageUseInfoOrDefault(pkg.packageName),