类 ReferenceEscapeChecker

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

    public class ReferenceEscapeChecker
    extends java.lang.Object
    implements proguard.classfile.attribute.visitor.AttributeVisitor, proguard.classfile.instruction.visitor.InstructionVisitor, proguard.classfile.constant.visitor.ConstantVisitor
    This AttributeVisitor can tell whether reference parameters and instances are escaping, are modified, or are returned.
    另请参阅:
    ParameterEscapeMarker
    • 构造器概要

      构造器 
      构造器 说明
      ReferenceEscapeChecker()
      Creates a new ReferenceEscapeChecker.
      ReferenceEscapeChecker​(proguard.evaluation.PartialEvaluator partialEvaluator, boolean runPartialEvaluator)
      Creates a new ReferenceEscapeChecker.
    • 方法概要

      所有方法 实例方法 具体方法 
      修饰符和类型 方法 说明
      boolean isInstanceEscaping​(int instructionOffset)
      Returns whether the instance created or retrieved at the specified instruction offset is escaping.
      boolean isInstanceExternal​(int instructionOffset)
      Returns whether the instance created or retrieved at the specified instruction offset is external to this method and its invoked methods.
      boolean isInstanceModified​(int instructionOffset)
      Returns whether the instance created or retrieved at the specified instruction offset is being modified.
      boolean isInstanceReturned​(int instructionOffset)
      Returns whether the instance created or retrieved at the specified instruction offset is being returned.
      void visitAnyAttribute​(proguard.classfile.Clazz clazz, proguard.classfile.attribute.Attribute attribute)  
      void visitAnyConstant​(proguard.classfile.Clazz clazz, proguard.classfile.constant.Constant constant)  
      void visitAnyInstruction​(proguard.classfile.Clazz clazz, proguard.classfile.Method method, proguard.classfile.attribute.CodeAttribute codeAttribute, int offset, proguard.classfile.instruction.Instruction instruction)  
      void visitAnyMethodrefConstant​(proguard.classfile.Clazz clazz, proguard.classfile.constant.AnyMethodrefConstant anyMethodrefConstant)  
      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 visitFieldrefConstant​(proguard.classfile.Clazz clazz, proguard.classfile.constant.FieldrefConstant fieldrefConstant)  
      void visitSimpleInstruction​(proguard.classfile.Clazz clazz, proguard.classfile.Method method, proguard.classfile.attribute.CodeAttribute codeAttribute, int offset, proguard.classfile.instruction.SimpleInstruction simpleInstruction)  
      • 从类继承的方法 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.constant.visitor.ConstantVisitor

        visitAnyRefConstant, visitClassConstant, visitDoubleConstant, visitDynamicConstant, visitFloatConstant, visitIntegerConstant, visitInterfaceMethodrefConstant, visitInvokeDynamicConstant, visitLongConstant, visitMethodHandleConstant, visitMethodrefConstant, visitMethodTypeConstant, visitModuleConstant, visitNameAndTypeConstant, visitPackageConstant, visitPrimitiveArrayConstant, visitStringConstant, visitUtf8Constant
      • 从接口继承的方法 proguard.classfile.instruction.visitor.InstructionVisitor

        visitAnySwitchInstruction, visitBranchInstruction, visitLookUpSwitchInstruction, visitTableSwitchInstruction, visitVariableInstruction
    • 构造器详细资料

      • ReferenceEscapeChecker

        public ReferenceEscapeChecker()
        Creates a new ReferenceEscapeChecker.
      • ReferenceEscapeChecker

        public ReferenceEscapeChecker​(proguard.evaluation.PartialEvaluator partialEvaluator,
                                      boolean runPartialEvaluator)
        Creates a new ReferenceEscapeChecker.
        参数:
        partialEvaluator - the evaluator to be used for the analysis.
        runPartialEvaluator - specifies whether to run this evaluator on every code attribute that is visited.
    • 方法详细资料

      • isInstanceEscaping

        public boolean isInstanceEscaping​(int instructionOffset)
        Returns whether the instance created or retrieved at the specified instruction offset is escaping.
      • isInstanceReturned

        public boolean isInstanceReturned​(int instructionOffset)
        Returns whether the instance created or retrieved at the specified instruction offset is being returned.
      • isInstanceModified

        public boolean isInstanceModified​(int instructionOffset)
        Returns whether the instance created or retrieved at the specified instruction offset is being modified.
      • isInstanceExternal

        public boolean isInstanceExternal​(int instructionOffset)
        Returns whether the instance created or retrieved at the specified instruction offset is external to this method and its invoked methods.
      • 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
      • visitAnyInstruction

        public void visitAnyInstruction​(proguard.classfile.Clazz clazz,
                                        proguard.classfile.Method method,
                                        proguard.classfile.attribute.CodeAttribute codeAttribute,
                                        int offset,
                                        proguard.classfile.instruction.Instruction instruction)
        指定者:
        visitAnyInstruction 在接口中 proguard.classfile.instruction.visitor.InstructionVisitor
      • 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
      • visitAnyConstant

        public void visitAnyConstant​(proguard.classfile.Clazz clazz,
                                     proguard.classfile.constant.Constant constant)
        指定者:
        visitAnyConstant 在接口中 proguard.classfile.constant.visitor.ConstantVisitor
      • visitFieldrefConstant

        public void visitFieldrefConstant​(proguard.classfile.Clazz clazz,
                                          proguard.classfile.constant.FieldrefConstant fieldrefConstant)
        指定者:
        visitFieldrefConstant 在接口中 proguard.classfile.constant.visitor.ConstantVisitor
      • visitAnyMethodrefConstant

        public void visitAnyMethodrefConstant​(proguard.classfile.Clazz clazz,
                                              proguard.classfile.constant.AnyMethodrefConstant anyMethodrefConstant)
        指定者:
        visitAnyMethodrefConstant 在接口中 proguard.classfile.constant.visitor.ConstantVisitor