Package org.jf.dexlib2.analysis
Class MethodAnalyzer
- java.lang.Object
-
- org.jf.dexlib2.analysis.MethodAnalyzer
-
public class MethodAnalyzer extends java.lang.Object
The MethodAnalyzer performs several functions. It "analyzes" the instructions and infers the register types for each register, it can deodex odexed instructions, and it can verify the bytecode. The analysis and verification are done in two separate passes, because the analysis has to process instructions multiple times in some cases, and there's no need to perform the verification multiple times, so we wait until the method is fully analyzed and then verify it. Before calling the analyze() method, you must have initialized the ClassPath by calling ClassPath.InitializeClassPath
-
-
Constructor Summary
Constructors Constructor Description MethodAnalyzer(ClassPath classPath, Method method, InlineMethodResolver inlineResolver, boolean normalizeVirtualMethods)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description AnalysisException
getAnalysisException()
java.util.List<AnalyzedInstruction>
getAnalyzedInstructions()
ClassPath
getClassPath()
int
getInstructionAddress(AnalyzedInstruction instruction)
java.util.List<Instruction>
getInstructions()
int
getParamRegisterCount()
static boolean
isNotWideningConversion(RegisterType originalType, RegisterType newType)
-
-
-
Constructor Detail
-
MethodAnalyzer
public MethodAnalyzer(@Nonnull ClassPath classPath, @Nonnull Method method, @Nullable InlineMethodResolver inlineResolver, boolean normalizeVirtualMethods)
-
-
Method Detail
-
getClassPath
@Nonnull public ClassPath getClassPath()
-
getAnalyzedInstructions
public java.util.List<AnalyzedInstruction> getAnalyzedInstructions()
-
getInstructions
public java.util.List<Instruction> getInstructions()
-
getAnalysisException
@Nullable public AnalysisException getAnalysisException()
-
getParamRegisterCount
public int getParamRegisterCount()
-
getInstructionAddress
public int getInstructionAddress(@Nonnull AnalyzedInstruction instruction)
-
isNotWideningConversion
public static boolean isNotWideningConversion(RegisterType originalType, RegisterType newType)
-
-