类 ParameterUsageMarker

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

    public class ParameterUsageMarker
    extends java.lang.Object
    implements proguard.classfile.visitor.MemberVisitor, proguard.classfile.attribute.visitor.AttributeVisitor, proguard.classfile.instruction.visitor.InstructionVisitor
    This MemberVisitor counts the parameters and marks the used parameters of the methods that it visits. It also marks the 'this' parameters of methods that have hierarchies.
    • 构造器概要

      构造器 
      构造器 说明
      ParameterUsageMarker()
      Creates a new ParameterUsageMarker.
      ParameterUsageMarker​(boolean markThisParameter, boolean markAllParameters)
      Creates a new ParameterUsageMarker that optionally marks all parameters.
      ParameterUsageMarker​(boolean markThisParameter, boolean markAllParameters, boolean analyzeCode)
      Creates a new ParameterUsageMarker that optionally marks all parameters.
    • 方法概要

      所有方法 静态方法 实例方法 具体方法 
      修饰符和类型 方法 说明
      static int getParameterSize​(proguard.classfile.Method method)
      Returns the total size of the parameters.
      static long getUsedParameters​(proguard.classfile.Method method)
      Returns which parameters are being used.
      static boolean hasUnusedParameters​(proguard.classfile.Method method)
      Returns whether the given method has any unused parameters.
      static boolean isParameterUsed​(proguard.classfile.Method method, int variableIndex)
      Returns whether the given parameter is being used.
      static void markParameterUsed​(proguard.classfile.Method method, int variableIndex)
      Marks the given parameter as being used.
      void visitAnyAttribute​(proguard.classfile.Clazz clazz, proguard.classfile.attribute.Attribute attribute)  
      void visitAnyInstruction​(proguard.classfile.Clazz clazz, proguard.classfile.Method method, proguard.classfile.attribute.CodeAttribute codeAttribute, int offset, proguard.classfile.instruction.Instruction instruction)  
      void visitCodeAttribute​(proguard.classfile.Clazz clazz, proguard.classfile.Method method, proguard.classfile.attribute.CodeAttribute codeAttribute)  
      void visitLibraryMethod​(proguard.classfile.LibraryClass libraryClass, proguard.classfile.LibraryMethod libraryMethod)  
      void visitProgramMethod​(proguard.classfile.ProgramClass programClass, proguard.classfile.ProgramMethod programMethod)  
      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

        visitAnySwitchInstruction, visitBranchInstruction, visitConstantInstruction, visitLookUpSwitchInstruction, visitSimpleInstruction, visitTableSwitchInstruction
      • 从接口继承的方法 proguard.classfile.visitor.MemberVisitor

        visitAnyMember, visitLibraryField, visitLibraryMember, visitProgramField, visitProgramMember
    • 构造器详细资料

      • ParameterUsageMarker

        public ParameterUsageMarker()
        Creates a new ParameterUsageMarker.
      • ParameterUsageMarker

        public ParameterUsageMarker​(boolean markThisParameter,
                                    boolean markAllParameters)
        Creates a new ParameterUsageMarker that optionally marks all parameters.
        参数:
        markThisParameter - specifies whether all 'this' parameters should be marked as being used.
        markAllParameters - specifies whether all other parameters should be marked as being used.
      • ParameterUsageMarker

        public ParameterUsageMarker​(boolean markThisParameter,
                                    boolean markAllParameters,
                                    boolean analyzeCode)
        Creates a new ParameterUsageMarker that optionally marks all parameters.
        参数:
        markThisParameter - specifies whether all 'this' parameters should be marked as being used.
        markAllParameters - specifies whether all other parameters should be marked as being used.
        analyzeCode - specifies whether the code of visited methods should be analyzed for used parameters.
    • 方法详细资料

      • visitProgramMethod

        public void visitProgramMethod​(proguard.classfile.ProgramClass programClass,
                                       proguard.classfile.ProgramMethod programMethod)
        指定者:
        visitProgramMethod 在接口中 proguard.classfile.visitor.MemberVisitor
      • visitLibraryMethod

        public void visitLibraryMethod​(proguard.classfile.LibraryClass libraryClass,
                                       proguard.classfile.LibraryMethod libraryMethod)
        指定者:
        visitLibraryMethod 在接口中 proguard.classfile.visitor.MemberVisitor
      • 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
      • 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
      • getParameterSize

        public static int getParameterSize​(proguard.classfile.Method method)
        Returns the total size of the parameters.
      • markParameterUsed

        public static void markParameterUsed​(proguard.classfile.Method method,
                                             int variableIndex)
        Marks the given parameter as being used.
      • hasUnusedParameters

        public static boolean hasUnusedParameters​(proguard.classfile.Method method)
        Returns whether the given method has any unused parameters.
      • isParameterUsed

        public static boolean isParameterUsed​(proguard.classfile.Method method,
                                              int variableIndex)
        Returns whether the given parameter is being used.
      • getUsedParameters

        public static long getUsedParameters​(proguard.classfile.Method method)
        Returns which parameters are being used.