类 LineNumberLinearizer

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

    public class LineNumberLinearizer
    extends java.lang.Object
    implements Pass, proguard.classfile.visitor.ClassVisitor, proguard.classfile.visitor.MemberVisitor, proguard.classfile.attribute.visitor.AttributeVisitor
    This pass disambiguates line numbers, in the classes that it visits. It shifts line numbers that originate from different classes (e.g. due to method inlining or class merging) to blocks that don't overlap with the main line numbers and with each other. The line numbers then uniquely identify the inlined and merged code in the classes.
    • 字段概要

      字段 
      修饰符和类型 字段 说明
      static int SHIFT_ROUNDING  
    • 方法概要

      所有方法 实例方法 具体方法 
      修饰符和类型 方法 说明
      void execute​(AppView appView)
      Disambiguates the line numbers of all program classes, after optimizations like method inlining and class merging.
      void visitAnyAttribute​(proguard.classfile.Clazz clazz, proguard.classfile.attribute.Attribute attribute)  
      void visitAnyClass​(proguard.classfile.Clazz clazz)  
      void visitCodeAttribute​(proguard.classfile.Clazz clazz, proguard.classfile.Method method, proguard.classfile.attribute.CodeAttribute codeAttribute)  
      void visitLineNumberTableAttribute​(proguard.classfile.Clazz clazz, proguard.classfile.Method method, proguard.classfile.attribute.CodeAttribute codeAttribute, proguard.classfile.attribute.LineNumberTableAttribute lineNumberTableAttribute)  
      void visitProgramClass​(proguard.classfile.ProgramClass programClass)  
      void visitProgramMethod​(proguard.classfile.ProgramClass programClass, proguard.classfile.ProgramMethod programMethod)  
      • 从类继承的方法 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, 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.visitor.ClassVisitor

        visitLibraryClass
      • 从接口继承的方法 proguard.classfile.visitor.MemberVisitor

        visitAnyMember, visitLibraryField, visitLibraryMember, visitLibraryMethod, visitProgramField, visitProgramMember
    • 字段详细资料

      • SHIFT_ROUNDING

        public static final int SHIFT_ROUNDING
        另请参阅:
        常量字段值
    • 构造器详细资料

      • LineNumberLinearizer

        public LineNumberLinearizer()
    • 方法详细资料

      • execute

        public void execute​(AppView appView)
        Disambiguates the line numbers of all program classes, after optimizations like method inlining and class merging.
        指定者:
        execute 在接口中 Pass
      • visitAnyClass

        public void visitAnyClass​(proguard.classfile.Clazz clazz)
        指定者:
        visitAnyClass 在接口中 proguard.classfile.visitor.ClassVisitor
      • visitProgramClass

        public void visitProgramClass​(proguard.classfile.ProgramClass programClass)
        指定者:
        visitProgramClass 在接口中 proguard.classfile.visitor.ClassVisitor
      • visitProgramMethod

        public void visitProgramMethod​(proguard.classfile.ProgramClass programClass,
                                       proguard.classfile.ProgramMethod programMethod)
        指定者:
        visitProgramMethod 在接口中 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
      • visitLineNumberTableAttribute

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