Package org.benf.cfr.reader.bytecode
Class CodeAnalyser
- java.lang.Object
-
- org.benf.cfr.reader.bytecode.CodeAnalyser
-
public class CodeAnalyser extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description private Op04StructuredStatementanalysedprivate ConstantPoolcpprivate Methodmethodprivate AttributeCodeoriginalCodeAttributeprivate static Op04StructuredStatementPOISONprivate static RecoveryOptionsrecover0private static RecoveryOptionsrecover0aprivate static RecoveryOptionsrecover1private static RecoveryOptionsrecover2private static RecoveryOptionsrecover3private static RecoveryOptionsrecover3aprivate static RecoveryOptionsrecoverExAggprivate static RecoveryOptionsrecoverIgnoreExceptionsprivate static RecoveryOptionsrecoverMalformed2aprivate static RecoveryOptionsrecoverPre1private static RecoveryOptions[]recoveryOptionsArr
-
Constructor Summary
Constructors Constructor Description CodeAnalyser(AttributeCode attributeCode)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddump(Dumper d)private voidgenerateUnverifiable(int x, java.util.List<Op01WithProcessedDataAndByteJumps> op1list, java.util.List<Op02WithProcessedDataAndRefs> op2list, java.util.Map<java.lang.Integer,java.lang.Integer> lutByIdx, java.util.SortedMap<java.lang.Integer,java.lang.Integer> lutByOffset, BytecodeLocFactory locFactory)private voidgenerateUnverifiableInstr(int offset, java.util.List<Op01WithProcessedDataAndByteJumps> op1list, java.util.List<Op02WithProcessedDataAndRefs> op2list, java.util.Map<java.lang.Integer,java.lang.Integer> lutByIdx, java.util.SortedMap<java.lang.Integer,java.lang.Integer> lutByOffset, BytecodeLocFactory locFactory)Op04StructuredStatementgetAnalysis(DCCommonState dcCommonState)private AnalysisResultgetAnalysisInner(java.util.List<Op01WithProcessedDataAndByteJumps> instrs, DCCommonState dcCommonState, Options options, BytecodeMeta bytecodeMeta, int passIdx)private AnalysisResultgetAnalysisOrWrapFail(int passIdx, java.util.List<Op01WithProcessedDataAndByteJumps> instrs, DCCommonState commonState, Options options, java.util.List<DecompilerComment> extraComments, BytecodeMeta bytecodeMeta)private java.util.List<Op01WithProcessedDataAndByteJumps>getInstrs()private Op01WithProcessedDataAndByteJumpsgetSingleInstr(ByteData rawCode, int offset)voidreleaseCode()voidsetMethod(Method method)
-
-
-
Field Detail
-
originalCodeAttribute
private final AttributeCode originalCodeAttribute
-
cp
private final ConstantPool cp
-
method
private Method method
-
analysed
private Op04StructuredStatement analysed
-
POISON
private static final Op04StructuredStatement POISON
-
recover0
private static final RecoveryOptions recover0
-
recoverExAgg
private static final RecoveryOptions recoverExAgg
-
recover0a
private static final RecoveryOptions recover0a
-
recoverPre1
private static final RecoveryOptions recoverPre1
-
recover1
private static final RecoveryOptions recover1
-
recover2
private static final RecoveryOptions recover2
-
recover3
private static final RecoveryOptions recover3
-
recover3a
private static final RecoveryOptions recover3a
-
recoverIgnoreExceptions
private static final RecoveryOptions recoverIgnoreExceptions
-
recoverMalformed2a
private static final RecoveryOptions recoverMalformed2a
-
recoveryOptionsArr
private static final RecoveryOptions[] recoveryOptionsArr
-
-
Constructor Detail
-
CodeAnalyser
public CodeAnalyser(AttributeCode attributeCode)
-
-
Method Detail
-
setMethod
public void setMethod(Method method)
-
getAnalysis
public Op04StructuredStatement getAnalysis(DCCommonState dcCommonState)
-
getSingleInstr
private Op01WithProcessedDataAndByteJumps getSingleInstr(ByteData rawCode, int offset)
-
getInstrs
private java.util.List<Op01WithProcessedDataAndByteJumps> getInstrs()
-
getAnalysisOrWrapFail
private AnalysisResult getAnalysisOrWrapFail(int passIdx, java.util.List<Op01WithProcessedDataAndByteJumps> instrs, DCCommonState commonState, Options options, java.util.List<DecompilerComment> extraComments, BytecodeMeta bytecodeMeta)
-
getAnalysisInner
private AnalysisResult getAnalysisInner(java.util.List<Op01WithProcessedDataAndByteJumps> instrs, DCCommonState dcCommonState, Options options, BytecodeMeta bytecodeMeta, int passIdx)
-
generateUnverifiable
private void generateUnverifiable(int x, java.util.List<Op01WithProcessedDataAndByteJumps> op1list, java.util.List<Op02WithProcessedDataAndRefs> op2list, java.util.Map<java.lang.Integer,java.lang.Integer> lutByIdx, java.util.SortedMap<java.lang.Integer,java.lang.Integer> lutByOffset, BytecodeLocFactory locFactory)
-
generateUnverifiableInstr
private void generateUnverifiableInstr(int offset, java.util.List<Op01WithProcessedDataAndByteJumps> op1list, java.util.List<Op02WithProcessedDataAndRefs> op2list, java.util.Map<java.lang.Integer,java.lang.Integer> lutByIdx, java.util.SortedMap<java.lang.Integer,java.lang.Integer> lutByOffset, BytecodeLocFactory locFactory)
-
dump
public void dump(Dumper d)
-
releaseCode
public void releaseCode()
-
-