类 ReachableCodeMarker

  • 所有已实现的接口:
    proguard.classfile.attribute.visitor.AttributeVisitor, proguard.classfile.attribute.visitor.ExceptionInfoVisitor, proguard.classfile.instruction.visitor.InstructionVisitor

    public class ReachableCodeMarker
    extends java.lang.Object
    implements proguard.classfile.attribute.visitor.AttributeVisitor, proguard.classfile.instruction.visitor.InstructionVisitor, proguard.classfile.attribute.visitor.ExceptionInfoVisitor
    This AttributeVisitor finds all instruction offsets, branch targets, and exception targets in the CodeAttribute objects that it visits.
    • 方法概要

      所有方法 实例方法 具体方法 
      修饰符和类型 方法 说明
      boolean isReachable​(int offset)
      Returns whether the instruction at the given offset is reachable in the CodeAttribute that was visited most recently.
      boolean isReachable​(int startOffset, int endOffset)
      Returns whether any of the instructions at the given offsets are reachable in the CodeAttribute that was visited most recently.
      void visitAnyAttribute​(proguard.classfile.Clazz clazz, proguard.classfile.attribute.Attribute attribute)  
      void visitAnySwitchInstruction​(proguard.classfile.Clazz clazz, proguard.classfile.Method method, proguard.classfile.attribute.CodeAttribute codeAttribute, int offset, proguard.classfile.instruction.SwitchInstruction switchInstruction)  
      void visitBranchInstruction​(proguard.classfile.Clazz clazz, proguard.classfile.Method method, proguard.classfile.attribute.CodeAttribute codeAttribute, int offset, proguard.classfile.instruction.BranchInstruction branchInstruction)  
      void visitCodeAttribute​(proguard.classfile.Clazz clazz, proguard.classfile.Method method, proguard.classfile.attribute.CodeAttribute codeAttribute)  
      void visitConstantInstruction​(proguard.classfile.Clazz clazz, proguard.classfile.Method method, proguard.classfile.attribute.CodeAttribute codeAttribute, int offset, proguard.classfile.instruction.ConstantInstruction constantInstruction)  
      void visitExceptionInfo​(proguard.classfile.Clazz clazz, proguard.classfile.Method method, proguard.classfile.attribute.CodeAttribute codeAttribute, proguard.classfile.attribute.ExceptionInfo exceptionInfo)  
      void visitSimpleInstruction​(proguard.classfile.Clazz clazz, proguard.classfile.Method method, proguard.classfile.attribute.CodeAttribute codeAttribute, int offset, proguard.classfile.instruction.SimpleInstruction simpleInstruction)  
      void visitVariableInstruction​(proguard.classfile.Clazz clazz, proguard.classfile.Method method, proguard.classfile.attribute.CodeAttribute codeAttribute, int offset, proguard.classfile.instruction.VariableInstruction variableInstruction)  
      • 从类继承的方法 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • 从接口继承的方法 proguard.classfile.attribute.visitor.AttributeVisitor

        visitAnnotationDefaultAttribute, visitAnyAnnotationsAttribute, visitAnyParameterAnnotationsAttribute, visitAnyTypeAnnotationsAttribute, visitBootstrapMethodsAttribute, visitConstantValueAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitEnclosingMethodAttribute, visitExceptionsAttribute, visitInnerClassesAttribute, visitLineNumberTableAttribute, visitLocalVariableTableAttribute, visitLocalVariableTypeTableAttribute, visitMethodParametersAttribute, visitModuleAttribute, visitModuleMainClassAttribute, visitModulePackagesAttribute, visitNestHostAttribute, visitNestMembersAttribute, visitPermittedSubclassesAttribute, visitRecordAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleParameterAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleParameterAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSourceDebugExtensionAttribute, visitSourceDirAttribute, visitSourceFileAttribute, visitStackMapAttribute, visitStackMapTableAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitUnknownAttribute
      • 从接口继承的方法 proguard.classfile.instruction.visitor.InstructionVisitor

        visitAnyInstruction, visitLookUpSwitchInstruction, visitTableSwitchInstruction
    • 构造器详细资料

      • ReachableCodeMarker

        public ReachableCodeMarker()
    • 方法详细资料

      • isReachable

        public boolean isReachable​(int offset)
        Returns whether the instruction at the given offset is reachable in the CodeAttribute that was visited most recently.
      • isReachable

        public boolean isReachable​(int startOffset,
                                   int endOffset)
        Returns whether any of the instructions at the given offsets are reachable in the CodeAttribute that was visited most recently.
      • visitAnyAttribute

        public void visitAnyAttribute​(proguard.classfile.Clazz clazz,
                                      proguard.classfile.attribute.Attribute attribute)
        指定者:
        visitAnyAttribute 在接口中 proguard.classfile.attribute.visitor.AttributeVisitor
      • visitCodeAttribute

        public void visitCodeAttribute​(proguard.classfile.Clazz clazz,
                                       proguard.classfile.Method method,
                                       proguard.classfile.attribute.CodeAttribute codeAttribute)
        指定者:
        visitCodeAttribute 在接口中 proguard.classfile.attribute.visitor.AttributeVisitor
      • visitSimpleInstruction

        public void visitSimpleInstruction​(proguard.classfile.Clazz clazz,
                                           proguard.classfile.Method method,
                                           proguard.classfile.attribute.CodeAttribute codeAttribute,
                                           int offset,
                                           proguard.classfile.instruction.SimpleInstruction simpleInstruction)
        指定者:
        visitSimpleInstruction 在接口中 proguard.classfile.instruction.visitor.InstructionVisitor
      • visitConstantInstruction

        public void visitConstantInstruction​(proguard.classfile.Clazz clazz,
                                             proguard.classfile.Method method,
                                             proguard.classfile.attribute.CodeAttribute codeAttribute,
                                             int offset,
                                             proguard.classfile.instruction.ConstantInstruction constantInstruction)
        指定者:
        visitConstantInstruction 在接口中 proguard.classfile.instruction.visitor.InstructionVisitor
      • visitVariableInstruction

        public void visitVariableInstruction​(proguard.classfile.Clazz clazz,
                                             proguard.classfile.Method method,
                                             proguard.classfile.attribute.CodeAttribute codeAttribute,
                                             int offset,
                                             proguard.classfile.instruction.VariableInstruction variableInstruction)
        指定者:
        visitVariableInstruction 在接口中 proguard.classfile.instruction.visitor.InstructionVisitor
      • visitBranchInstruction

        public void visitBranchInstruction​(proguard.classfile.Clazz clazz,
                                           proguard.classfile.Method method,
                                           proguard.classfile.attribute.CodeAttribute codeAttribute,
                                           int offset,
                                           proguard.classfile.instruction.BranchInstruction branchInstruction)
        指定者:
        visitBranchInstruction 在接口中 proguard.classfile.instruction.visitor.InstructionVisitor
      • visitAnySwitchInstruction

        public void visitAnySwitchInstruction​(proguard.classfile.Clazz clazz,
                                              proguard.classfile.Method method,
                                              proguard.classfile.attribute.CodeAttribute codeAttribute,
                                              int offset,
                                              proguard.classfile.instruction.SwitchInstruction switchInstruction)
        指定者:
        visitAnySwitchInstruction 在接口中 proguard.classfile.instruction.visitor.InstructionVisitor
      • visitExceptionInfo

        public void visitExceptionInfo​(proguard.classfile.Clazz clazz,
                                       proguard.classfile.Method method,
                                       proguard.classfile.attribute.CodeAttribute codeAttribute,
                                       proguard.classfile.attribute.ExceptionInfo exceptionInfo)
        指定者:
        visitExceptionInfo 在接口中 proguard.classfile.attribute.visitor.ExceptionInfoVisitor