diff options
-rw-r--r-- | services/core/java/com/android/server/pm/PackageDexOptimizer.java | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/services/core/java/com/android/server/pm/PackageDexOptimizer.java b/services/core/java/com/android/server/pm/PackageDexOptimizer.java index 1ef4a9fa5849..acdcc72c7f71 100644 --- a/services/core/java/com/android/server/pm/PackageDexOptimizer.java +++ b/services/core/java/com/android/server/pm/PackageDexOptimizer.java @@ -219,19 +219,20 @@ class PackageDexOptimizer { final String dexoptType; String oatDir = null; - switch (dexoptNeeded) { + boolean isOdexLocation = (dexoptNeeded < 0); + switch (Math.abs(dexoptNeeded)) { case DexFile.NO_DEXOPT_NEEDED: continue; - case DexFile.DEX2OAT_NEEDED: + case DexFile.DEX2OAT_FROM_SCRATCH: + case DexFile.DEX2OAT_FOR_BOOT_IMAGE: + case DexFile.DEX2OAT_FOR_FILTER: + case DexFile.DEX2OAT_FOR_RELOCATION: dexoptType = "dex2oat"; oatDir = createOatDirIfSupported(pkg, dexCodeInstructionSet); break; - case DexFile.PATCHOAT_NEEDED: + case DexFile.PATCHOAT_FOR_RELOCATION: dexoptType = "patchoat"; break; - case DexFile.SELF_PATCHOAT_NEEDED: - dexoptType = "self patchoat"; - break; default: throw new IllegalStateException("Invalid dexopt:" + dexoptNeeded); } @@ -383,7 +384,7 @@ class PackageDexOptimizer { protected int adjustDexoptNeeded(int dexoptNeeded) { // Ensure compilation, no matter the current state. // TODO: The return value is wrong when patchoat is needed. - return DexFile.DEX2OAT_NEEDED; + return DexFile.DEX2OAT_FROM_SCRATCH; } } } |