From 79c9e063204185b508c32e18e49a5baaa98df4be Mon Sep 17 00:00:00 2001 From: Nicolas Geoffray Date: Fri, 25 Nov 2016 09:50:29 +0000 Subject: [PATCH] Use the new refined DexOptNeeded codes. bug: 30937355 Test: device boots, messages are printed correctly Change-Id: Ia5274e3659471c2a52244d5838d207d407e79023 --- .../android/server/pm/PackageDexOptimizer.java | 15 ++++++++------- 1 file 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 1ef4a9fa58490..acdcc72c7f716 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; } } }