类 EvaluationSimplifier

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

    public class EvaluationSimplifier
    extends java.lang.Object
    implements proguard.classfile.attribute.visitor.AttributeVisitor, proguard.classfile.instruction.visitor.InstructionVisitor
    This AttributeVisitor simplifies the code attributes that it visits, based on partial evaluation.
    • 构造器概要

      构造器 
      构造器 说明
      EvaluationSimplifier​(boolean predictNullPointerExceptions)
      Creates a new EvaluationSimplifier.
      EvaluationSimplifier​(proguard.evaluation.PartialEvaluator partialEvaluator, proguard.classfile.instruction.visitor.InstructionVisitor extraInstructionVisitor, boolean predictNullPointerExceptions)
      Creates a new EvaluationSimplifier.
    • 方法概要

      所有方法 实例方法 具体方法 
      修饰符和类型 方法 说明
      void visitAnyAttribute​(proguard.classfile.Clazz clazz, proguard.classfile.attribute.Attribute attribute)  
      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 visitCodeAttribute0​(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 visitLookUpSwitchInstruction​(proguard.classfile.Clazz clazz, proguard.classfile.Method method, proguard.classfile.attribute.CodeAttribute codeAttribute, int offset, proguard.classfile.instruction.LookUpSwitchInstruction lookUpSwitchInstruction)  
      void visitSimpleInstruction​(proguard.classfile.Clazz clazz, proguard.classfile.Method method, proguard.classfile.attribute.CodeAttribute codeAttribute, int offset, proguard.classfile.instruction.SimpleInstruction simpleInstruction)  
      void visitTableSwitchInstruction​(proguard.classfile.Clazz clazz, proguard.classfile.Method method, proguard.classfile.attribute.CodeAttribute codeAttribute, int offset, proguard.classfile.instruction.TableSwitchInstruction tableSwitchInstruction)  
      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, visitAnySwitchInstruction
    • 构造器详细资料

      • EvaluationSimplifier

        public EvaluationSimplifier​(boolean predictNullPointerExceptions)
        Creates a new EvaluationSimplifier.
        参数:
        predictNullPointerExceptions - specifies whether instructions that will always result in a NullPointerException should be replaced with an explicit NullPointerException
      • EvaluationSimplifier

        public EvaluationSimplifier​(proguard.evaluation.PartialEvaluator partialEvaluator,
                                    proguard.classfile.instruction.visitor.InstructionVisitor extraInstructionVisitor,
                                    boolean predictNullPointerExceptions)
        Creates a new EvaluationSimplifier.
        参数:
        partialEvaluator - the partial evaluator that will execute the code and provide information about the results.
        extraInstructionVisitor - an optional extra visitor for all simplified instructions.
        predictNullPointerExceptions - specifies whether instructions that will always result in a NullPointerException should be replaced with an explicit NullPointerException
    • 方法详细资料

      • 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
      • visitCodeAttribute0

        public void visitCodeAttribute0​(proguard.classfile.Clazz clazz,
                                        proguard.classfile.Method method,
                                        proguard.classfile.attribute.CodeAttribute codeAttribute)
      • 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
      • 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
      • 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
      • 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
      • visitTableSwitchInstruction

        public void visitTableSwitchInstruction​(proguard.classfile.Clazz clazz,
                                                proguard.classfile.Method method,
                                                proguard.classfile.attribute.CodeAttribute codeAttribute,
                                                int offset,
                                                proguard.classfile.instruction.TableSwitchInstruction tableSwitchInstruction)
        指定者:
        visitTableSwitchInstruction 在接口中 proguard.classfile.instruction.visitor.InstructionVisitor
      • visitLookUpSwitchInstruction

        public void visitLookUpSwitchInstruction​(proguard.classfile.Clazz clazz,
                                                 proguard.classfile.Method method,
                                                 proguard.classfile.attribute.CodeAttribute codeAttribute,
                                                 int offset,
                                                 proguard.classfile.instruction.LookUpSwitchInstruction lookUpSwitchInstruction)
        指定者:
        visitLookUpSwitchInstruction 在接口中 proguard.classfile.instruction.visitor.InstructionVisitor