Using standard InlineMethodResolver if no custom one is provided.

This commit is contained in:
Izzat Bahadirov 2013-04-22 14:00:49 -04:00
parent d6737943e1
commit 9c72df65f7
3 changed files with 9 additions and 1 deletions

View File

@ -34,6 +34,7 @@ import com.google.common.collect.Iterables;
import org.jf.baksmali.Adaptors.ClassDefinition; import org.jf.baksmali.Adaptors.ClassDefinition;
import org.jf.dexlib2.analysis.ClassPath; import org.jf.dexlib2.analysis.ClassPath;
import org.jf.dexlib2.analysis.CustomInlineMethodResolver; import org.jf.dexlib2.analysis.CustomInlineMethodResolver;
import org.jf.dexlib2.analysis.InlineMethodResolver;
import org.jf.dexlib2.dexbacked.DexBackedOdexFile; import org.jf.dexlib2.dexbacked.DexBackedOdexFile;
import org.jf.dexlib2.iface.ClassDef; import org.jf.dexlib2.iface.ClassDef;
import org.jf.dexlib2.iface.DexFile; import org.jf.dexlib2.iface.DexFile;
@ -91,6 +92,8 @@ public class baksmali {
if (inlineTable != null) { if (inlineTable != null) {
options.inlineResolver = new CustomInlineMethodResolver(options.classPath, new File(inlineTable)); options.inlineResolver = new CustomInlineMethodResolver(options.classPath, new File(inlineTable));
} else if (dexFile instanceof DexBackedOdexFile) {
options.inlineResolver = InlineMethodResolver.createInlineMethodResolver(((DexBackedOdexFile) dexFile).getVersion());
} }
} catch (Exception ex) { } catch (Exception ex) {
System.err.println("\n\nError occured while loading boot class path files. Aborting."); System.err.println("\n\nError occured while loading boot class path files. Aborting.");

View File

@ -33,6 +33,7 @@ package org.jf.dexlib2.dexbacked;
import com.google.common.io.ByteStreams; import com.google.common.io.ByteStreams;
import org.jf.dexlib2.Opcodes; import org.jf.dexlib2.Opcodes;
import org.jf.dexlib2.dexbacked.raw.HeaderItem;
import org.jf.dexlib2.dexbacked.raw.OdexHeaderItem; import org.jf.dexlib2.dexbacked.raw.OdexHeaderItem;
import org.jf.dexlib2.dexbacked.util.VariableSizeList; import org.jf.dexlib2.dexbacked.util.VariableSizeList;
@ -121,6 +122,10 @@ public class DexBackedOdexFile extends DexBackedDexFile {
} }
} }
public int getVersion() {
return HeaderItem.getVersion(getBuf(), 0);
}
public static class NotAnOdexFile extends RuntimeException { public static class NotAnOdexFile extends RuntimeException {
public NotAnOdexFile() { public NotAnOdexFile() {
} }

View File

@ -219,7 +219,7 @@ public class HeaderItem {
return "Invalid"; return "Invalid";
} }
private static int getVersion(byte[] buf, int offset) { public static int getVersion(byte[] buf, int offset) {
if (buf.length - offset < 8) { if (buf.length - offset < 8) {
return 0; return 0;
} }