Merge "Use the new refined DexOptNeeded codes."
diff --git a/services/core/java/com/android/server/pm/PackageDexOptimizer.java b/services/core/java/com/android/server/pm/PackageDexOptimizer.java
index 1ef4a9f..acdcc72 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 @@
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 @@
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;
}
}
}