diff options
| author | 2017-11-01 20:15:44 +0000 | |
|---|---|---|
| committer | 2017-11-01 20:15:44 +0000 | |
| commit | 8952f058fff4571ab1a37fcc7a0ca51ebdf1be77 (patch) | |
| tree | d727b453e309a80b4acdfa72880ecca1fb2a26a4 | |
| parent | 973005e2084655729730f40d22ed967707a24c29 (diff) | |
| parent | 945b1dc43e897985b5532e1f676dca6ca94e226e (diff) | |
Merge "[framework] Add check that classpath is up to date to getDexOptNeeded"
am: 945b1dc43e
Change-Id: Ib9865f950f595ab840ceb3afd60ad52d33cb5c01
| -rw-r--r-- | core/java/com/android/internal/os/ZygoteInit.java | 2 | ||||
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageDexOptimizer.java | 17 |
2 files changed, 10 insertions, 9 deletions
diff --git a/core/java/com/android/internal/os/ZygoteInit.java b/core/java/com/android/internal/os/ZygoteInit.java index 429a1d901468..3cda820eb276 100644 --- a/core/java/com/android/internal/os/ZygoteInit.java +++ b/core/java/com/android/internal/os/ZygoteInit.java @@ -553,7 +553,7 @@ public class ZygoteInit { try { dexoptNeeded = DexFile.getDexOptNeeded( classPathElement, instructionSet, systemServerFilter, - false /* newProfile */, false /* downgrade */); + null /* classLoaderContext */, false /* newProfile */, false /* downgrade */); } catch (FileNotFoundException ignored) { // Do not add to the classpath. Log.w(TAG, "Missing classpath element for system server: " + classPathElement); diff --git a/services/core/java/com/android/server/pm/PackageDexOptimizer.java b/services/core/java/com/android/server/pm/PackageDexOptimizer.java index e53a08a8f3d4..68d9227ece43 100644 --- a/services/core/java/com/android/server/pm/PackageDexOptimizer.java +++ b/services/core/java/com/android/server/pm/PackageDexOptimizer.java @@ -209,9 +209,10 @@ public class PackageDexOptimizer { */ @GuardedBy("mInstallLock") private int dexOptPath(PackageParser.Package pkg, String path, String isa, - String compilerFilter, boolean profileUpdated, String sharedLibrariesPath, + String compilerFilter, boolean profileUpdated, String classLoaderContext, int dexoptFlags, int uid, CompilerStats.PackageStats packageStats, boolean downgrade) { - int dexoptNeeded = getDexoptNeeded(path, isa, compilerFilter, profileUpdated, downgrade); + int dexoptNeeded = getDexoptNeeded(path, isa, compilerFilter, classLoaderContext, + profileUpdated, downgrade); if (Math.abs(dexoptNeeded) == DexFile.NO_DEXOPT_NEEDED) { return DEX_OPT_SKIPPED; } @@ -224,8 +225,8 @@ public class PackageDexOptimizer { Log.i(TAG, "Running dexopt (dexoptNeeded=" + dexoptNeeded + ") on: " + path + " pkg=" + pkg.applicationInfo.packageName + " isa=" + isa + " dexoptFlags=" + printDexoptFlags(dexoptFlags) - + " target-filter=" + compilerFilter + " oatDir=" + oatDir - + " sharedLibraries=" + sharedLibrariesPath); + + " targetFilter=" + compilerFilter + " oatDir=" + oatDir + + " classLoaderContext=" + classLoaderContext); try { long startTime = System.currentTimeMillis(); @@ -234,7 +235,7 @@ public class PackageDexOptimizer { // installd only uses downgrade flag for secondary dex files and ignores it for // primary dex files. mInstaller.dexopt(path, uid, pkg.packageName, isa, dexoptNeeded, oatDir, dexoptFlags, - compilerFilter, pkg.volumeUuid, sharedLibrariesPath, pkg.applicationInfo.seInfo, + compilerFilter, pkg.volumeUuid, classLoaderContext, pkg.applicationInfo.seInfo, false /* downgrade*/); if (packageStats != null) { @@ -442,11 +443,11 @@ public class PackageDexOptimizer { * configuration (isa, compiler filter, profile). */ private int getDexoptNeeded(String path, String isa, String compilerFilter, - boolean newProfile, boolean downgrade) { + String classLoaderContext, boolean newProfile, boolean downgrade) { int dexoptNeeded; try { - dexoptNeeded = DexFile.getDexOptNeeded(path, isa, compilerFilter, newProfile, - downgrade); + dexoptNeeded = DexFile.getDexOptNeeded(path, isa, compilerFilter, classLoaderContext, + newProfile, downgrade); } catch (IOException ioe) { Slog.w(TAG, "IOException reading apk: " + path, ioe); return DEX_OPT_FAILED; |