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 Op04StructuredStatement
analysed
private ConstantPool
cp
private Method
method
private AttributeCode
originalCodeAttribute
private static Op04StructuredStatement
POISON
private static RecoveryOptions
recover0
private static RecoveryOptions
recover0a
private static RecoveryOptions
recover1
private static RecoveryOptions
recover2
private static RecoveryOptions
recover3
private static RecoveryOptions
recover3a
private static RecoveryOptions
recoverExAgg
private static RecoveryOptions
recoverIgnoreExceptions
private static RecoveryOptions
recoverMalformed2a
private static RecoveryOptions
recoverPre1
private static RecoveryOptions[]
recoveryOptionsArr
-
Constructor Summary
Constructors Constructor Description CodeAnalyser(AttributeCode attributeCode)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
dump(Dumper d)
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)
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)
Op04StructuredStatement
getAnalysis(DCCommonState dcCommonState)
private AnalysisResult
getAnalysisInner(java.util.List<Op01WithProcessedDataAndByteJumps> instrs, DCCommonState dcCommonState, Options options, BytecodeMeta bytecodeMeta, int passIdx)
private AnalysisResult
getAnalysisOrWrapFail(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 Op01WithProcessedDataAndByteJumps
getSingleInstr(ByteData rawCode, int offset)
void
releaseCode()
void
setMethod(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()
-
-