proguard.shrink
Class ShortestUsageMarker

java.lang.Object
  extended by proguard.classfile.util.SimplifiedVisitor
      extended by proguard.shrink.ShortestUsageMarker
All Implemented Interfaces:
StackMapFrameVisitor, VerificationTypeVisitor, AttributeVisitor, ExceptionInfoVisitor, InnerClassesInfoVisitor, LocalVariableInfoVisitor, LocalVariableTypeInfoVisitor, ConstantVisitor, InstructionVisitor, ClassVisitor, MemberVisitor

public class ShortestUsageMarker
extends SimplifiedVisitor

This ClassVisitor and MemberVisitor recursively marks all classes and class elements that are being used. For each element, it finds the shortest chain of dependencies.

See Also:
ClassShrinker

Constructor Summary
ShortestUsageMarker()
           
 
Method Summary
protected  proguard.shrink.ShortestUsageMark getShortestUsageMark(VisitorAccepter visitorAccepter)
           
protected  boolean isPossiblyUsed(VisitorAccepter visitorAccepter)
          Returns whether the given visitor accepter has been marked as possibly being used.
protected  boolean isUsed(VisitorAccepter visitorAccepter)
          Returns whether the given visitor accepter has been marked as being used.
protected  void markAsPossiblyUsed(VisitorAccepter visitorAccepter)
          Marks the given visitor accepter as possibly being used.
protected  void markAsUnused(VisitorAccepter visitorAccepter)
          Clears any usage marks from the given visitor accepter.
protected  void markAsUsed(VisitorAccepter visitorAccepter)
          Marks the given visitor accepter as being used.
protected  void markMethodHierarchy(Clazz clazz, Method method)
          Marks the hierarchy of implementing or overriding methods corresponding to the given method, if any.
protected  void markProgramClassBody(ProgramClass programClass)
           
protected  void markProgramFieldBody(ProgramClass programClass, ProgramField programField)
           
protected  void markProgramMethodBody(ProgramClass programClass, ProgramMethod programMethod)
           
protected  boolean shouldBeMarkedAsPossiblyUsed(VisitorAccepter visitorAccepter)
          Returns whether the given visitor accepter should still be marked as possibly being used.
protected  boolean shouldBeMarkedAsUsed(VisitorAccepter visitorAccepter)
          Returns whether the given visitor accepter should still be marked as being used.
 void visitAnnotationDefaultAttribute(Clazz clazz, Method method, AnnotationDefaultAttribute annotationDefaultAttribute)
           
 void visitAnyAnnotationsAttribute(Clazz clazz, AnnotationsAttribute annotationsAttribute)
          Visits any type of AnnotationsAttribute of a class.
 void visitAnyInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, Instruction instruction)
          Visits any type of Instruction.
 void visitAnyParameterAnnotationsAttribute(Clazz clazz, Method method, ParameterAnnotationsAttribute parameterAnnotationsAttribute)
          Visits any type of ParameterAnnotationsAttribute.
 void visitAnyRefConstant(Clazz clazz, RefConstant refConstant)
          Visits any type of RefConstant of the given class.
 void visitAnyStackMapFrame(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, StackMapFrame stackMapFrame)
          Visits any type of VerificationType.
 void visitAnyVerificationType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, VerificationType verificationType)
          Visits any type of VerificationType.
 void visitClassConstant(Clazz clazz, ClassConstant classConstant)
           
 void visitCodeAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute)
           
 void visitConstantInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, ConstantInstruction constantInstruction)
           
 void visitConstantValueAttribute(Clazz clazz, Field field, ConstantValueAttribute constantValueAttribute)
           
 void visitDeprecatedAttribute(Clazz clazz, DeprecatedAttribute deprecatedAttribute)
           
 void visitDoubleConstant(Clazz clazz, DoubleConstant doubleConstant)
           
 void visitEnclosingMethodAttribute(Clazz clazz, EnclosingMethodAttribute enclosingMethodAttribute)
           
 void visitExceptionInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, ExceptionInfo exceptionInfo)
           
 void visitExceptionsAttribute(Clazz clazz, Method method, ExceptionsAttribute exceptionsAttribute)
           
 void visitFloatConstant(Clazz clazz, FloatConstant floatConstant)
           
 void visitFullFrame(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, FullFrame fullFrame)
           
 void visitInnerClassesAttribute(Clazz clazz, InnerClassesAttribute innerClassesAttribute)
           
 void visitInnerClassesInfo(Clazz clazz, InnerClassesInfo innerClassesInfo)
           
 void visitIntegerConstant(Clazz clazz, IntegerConstant integerConstant)
           
 void visitLibraryClass(LibraryClass libraryClass)
           
 void visitLibraryField(LibraryClass programClass, LibraryField programField)
           
 void visitLibraryMethod(LibraryClass libraryClass, LibraryMethod libraryMethod)
           
 void visitLineNumberTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LineNumberTableAttribute lineNumberTableAttribute)
           
 void visitLocalVariableInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableInfo localVariableInfo)
           
 void visitLocalVariableTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTableAttribute localVariableTableAttribute)
           
 void visitLocalVariableTypeInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTypeInfo localVariableTypeInfo)
           
 void visitLocalVariableTypeTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTypeTableAttribute localVariableTypeTableAttribute)
           
 void visitLongConstant(Clazz clazz, LongConstant longConstant)
           
 void visitMoreZeroFrame(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, MoreZeroFrame moreZeroFrame)
           
 void visitNameAndTypeConstant(Clazz clazz, NameAndTypeConstant nameAndTypeConstant)
           
 void visitObjectType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, ObjectType objectType)
           
 void visitProgramClass(ProgramClass programClass)
           
 void visitProgramField(ProgramClass programClass, ProgramField programField)
           
 void visitProgramMethod(ProgramClass programClass, ProgramMethod programMethod)
           
 void visitSameOneFrame(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, SameOneFrame sameOneFrame)
           
 void visitSignatureAttribute(Clazz clazz, SignatureAttribute signatureAttribute)
           
 void visitSourceDirAttribute(Clazz clazz, SourceDirAttribute sourceDirAttribute)
           
 void visitSourceFileAttribute(Clazz clazz, SourceFileAttribute sourceFileAttribute)
           
 void visitStackMapAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, StackMapAttribute stackMapAttribute)
           
 void visitStackMapTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, StackMapTableAttribute stackMapTableAttribute)
           
 void visitStringConstant(Clazz clazz, StringConstant stringConstant)
           
 void visitSyntheticAttribute(Clazz clazz, SyntheticAttribute syntheticAttribute)
           
 void visitUnknownAttribute(Clazz clazz, UnknownAttribute unknownAttribute)
           
 void visitUtf8Constant(Clazz clazz, Utf8Constant utf8Constant)
           
 
Methods inherited from class proguard.classfile.util.SimplifiedVisitor
visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotationElementValue, visitAnyAttribute, visitAnyClass, visitAnyConstant, visitAnyElementValue, visitAnyMember, visitAnyMethodrefConstant, visitAnySwitchInstruction, visitArrayElementValue, visitBranchInstruction, visitClassElementValue, visitConstantElementValue, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDoubleType, visitEnumConstantElementValue, visitFieldrefConstant, visitFloatType, visitIntegerType, visitInterfaceMethodrefConstant, visitLessZeroFrame, visitLibraryMember, visitLongType, visitLookUpSwitchInstruction, visitMethodrefConstant, visitNullType, visitProgramMember, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleParameterAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleParameterAnnotationsAttribute, visitSameZeroFrame, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSimpleInstruction, visitStackDoubleType, visitStackFloatType, visitStackIntegerType, visitStackLongType, visitStackNullType, visitStackObjectType, visitStackTopType, visitStackUninitializedThisType, visitStackUninitializedType, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitTableSwitchInstruction, visitTopType, visitUninitializedThisType, visitUninitializedType, visitVariableInstruction, visitVariablesDoubleType, visitVariablesFloatType, visitVariablesIntegerType, visitVariablesLongType, visitVariablesNullType, visitVariablesObjectType, visitVariablesTopType, visitVariablesUninitializedThisType, visitVariablesUninitializedType
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface proguard.classfile.constant.visitor.ConstantVisitor
visitFieldrefConstant, visitInterfaceMethodrefConstant, visitMethodrefConstant
 
Methods inherited from interface proguard.classfile.attribute.visitor.AttributeVisitor
visitDeprecatedAttribute, visitDeprecatedAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleParameterAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleParameterAnnotationsAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSyntheticAttribute, visitSyntheticAttribute
 
Methods inherited from interface proguard.classfile.attribute.preverification.visitor.StackMapFrameVisitor
visitLessZeroFrame, visitSameZeroFrame
 
Methods inherited from interface proguard.classfile.attribute.preverification.visitor.VerificationTypeVisitor
visitDoubleType, visitFloatType, visitIntegerType, visitLongType, visitNullType, visitStackDoubleType, visitStackFloatType, visitStackIntegerType, visitStackLongType, visitStackNullType, visitStackObjectType, visitStackTopType, visitStackUninitializedThisType, visitStackUninitializedType, visitTopType, visitUninitializedThisType, visitUninitializedType, visitVariablesDoubleType, visitVariablesFloatType, visitVariablesIntegerType, visitVariablesLongType, visitVariablesNullType, visitVariablesObjectType, visitVariablesTopType, visitVariablesUninitializedThisType, visitVariablesUninitializedType
 
Methods inherited from interface proguard.classfile.instruction.visitor.InstructionVisitor
visitBranchInstruction, visitLookUpSwitchInstruction, visitSimpleInstruction, visitTableSwitchInstruction, visitVariableInstruction
 

Constructor Detail

ShortestUsageMarker

public ShortestUsageMarker()
Method Detail

markProgramClassBody

protected void markProgramClassBody(ProgramClass programClass)

markProgramFieldBody

protected void markProgramFieldBody(ProgramClass programClass,
                                    ProgramField programField)

markProgramMethodBody

protected void markProgramMethodBody(ProgramClass programClass,
                                     ProgramMethod programMethod)

markMethodHierarchy

protected void markMethodHierarchy(Clazz clazz,
                                   Method method)
Marks the hierarchy of implementing or overriding methods corresponding to the given method, if any.


markAsUsed

protected void markAsUsed(VisitorAccepter visitorAccepter)
Marks the given visitor accepter as being used.


shouldBeMarkedAsUsed

protected boolean shouldBeMarkedAsUsed(VisitorAccepter visitorAccepter)
Returns whether the given visitor accepter should still be marked as being used.


isUsed

protected boolean isUsed(VisitorAccepter visitorAccepter)
Returns whether the given visitor accepter has been marked as being used.


markAsPossiblyUsed

protected void markAsPossiblyUsed(VisitorAccepter visitorAccepter)
Marks the given visitor accepter as possibly being used.


shouldBeMarkedAsPossiblyUsed

protected boolean shouldBeMarkedAsPossiblyUsed(VisitorAccepter visitorAccepter)
Returns whether the given visitor accepter should still be marked as possibly being used.


isPossiblyUsed

protected boolean isPossiblyUsed(VisitorAccepter visitorAccepter)
Returns whether the given visitor accepter has been marked as possibly being used.


getShortestUsageMark

protected proguard.shrink.ShortestUsageMark getShortestUsageMark(VisitorAccepter visitorAccepter)

visitProgramClass

public void visitProgramClass(ProgramClass programClass)
Specified by:
visitProgramClass in interface ClassVisitor
Overrides:
visitProgramClass in class SimplifiedVisitor

visitLibraryClass

public void visitLibraryClass(LibraryClass libraryClass)
Specified by:
visitLibraryClass in interface ClassVisitor
Overrides:
visitLibraryClass in class SimplifiedVisitor

visitProgramField

public void visitProgramField(ProgramClass programClass,
                              ProgramField programField)
Specified by:
visitProgramField in interface MemberVisitor
Overrides:
visitProgramField in class SimplifiedVisitor

visitProgramMethod

public void visitProgramMethod(ProgramClass programClass,
                               ProgramMethod programMethod)
Specified by:
visitProgramMethod in interface MemberVisitor
Overrides:
visitProgramMethod in class SimplifiedVisitor

visitLibraryField

public void visitLibraryField(LibraryClass programClass,
                              LibraryField programField)
Specified by:
visitLibraryField in interface MemberVisitor
Overrides:
visitLibraryField in class SimplifiedVisitor

visitLibraryMethod

public void visitLibraryMethod(LibraryClass libraryClass,
                               LibraryMethod libraryMethod)
Specified by:
visitLibraryMethod in interface MemberVisitor
Overrides:
visitLibraryMethod in class SimplifiedVisitor

visitIntegerConstant

public void visitIntegerConstant(Clazz clazz,
                                 IntegerConstant integerConstant)
Specified by:
visitIntegerConstant in interface ConstantVisitor
Overrides:
visitIntegerConstant in class SimplifiedVisitor

visitLongConstant

public void visitLongConstant(Clazz clazz,
                              LongConstant longConstant)
Specified by:
visitLongConstant in interface ConstantVisitor
Overrides:
visitLongConstant in class SimplifiedVisitor

visitFloatConstant

public void visitFloatConstant(Clazz clazz,
                               FloatConstant floatConstant)
Specified by:
visitFloatConstant in interface ConstantVisitor
Overrides:
visitFloatConstant in class SimplifiedVisitor

visitDoubleConstant

public void visitDoubleConstant(Clazz clazz,
                                DoubleConstant doubleConstant)
Specified by:
visitDoubleConstant in interface ConstantVisitor
Overrides:
visitDoubleConstant in class SimplifiedVisitor

visitStringConstant

public void visitStringConstant(Clazz clazz,
                                StringConstant stringConstant)
Specified by:
visitStringConstant in interface ConstantVisitor
Overrides:
visitStringConstant in class SimplifiedVisitor

visitUtf8Constant

public void visitUtf8Constant(Clazz clazz,
                              Utf8Constant utf8Constant)
Specified by:
visitUtf8Constant in interface ConstantVisitor
Overrides:
visitUtf8Constant in class SimplifiedVisitor

visitAnyRefConstant

public void visitAnyRefConstant(Clazz clazz,
                                RefConstant refConstant)
Description copied from class: SimplifiedVisitor
Visits any type of RefConstant of the given class.

Overrides:
visitAnyRefConstant in class SimplifiedVisitor

visitClassConstant

public void visitClassConstant(Clazz clazz,
                               ClassConstant classConstant)
Specified by:
visitClassConstant in interface ConstantVisitor
Overrides:
visitClassConstant in class SimplifiedVisitor

visitNameAndTypeConstant

public void visitNameAndTypeConstant(Clazz clazz,
                                     NameAndTypeConstant nameAndTypeConstant)
Specified by:
visitNameAndTypeConstant in interface ConstantVisitor
Overrides:
visitNameAndTypeConstant in class SimplifiedVisitor

visitUnknownAttribute

public void visitUnknownAttribute(Clazz clazz,
                                  UnknownAttribute unknownAttribute)
Specified by:
visitUnknownAttribute in interface AttributeVisitor
Overrides:
visitUnknownAttribute in class SimplifiedVisitor

visitSourceFileAttribute

public void visitSourceFileAttribute(Clazz clazz,
                                     SourceFileAttribute sourceFileAttribute)
Specified by:
visitSourceFileAttribute in interface AttributeVisitor
Overrides:
visitSourceFileAttribute in class SimplifiedVisitor

visitSourceDirAttribute

public void visitSourceDirAttribute(Clazz clazz,
                                    SourceDirAttribute sourceDirAttribute)
Specified by:
visitSourceDirAttribute in interface AttributeVisitor
Overrides:
visitSourceDirAttribute in class SimplifiedVisitor

visitInnerClassesAttribute

public void visitInnerClassesAttribute(Clazz clazz,
                                       InnerClassesAttribute innerClassesAttribute)
Specified by:
visitInnerClassesAttribute in interface AttributeVisitor
Overrides:
visitInnerClassesAttribute in class SimplifiedVisitor

visitEnclosingMethodAttribute

public void visitEnclosingMethodAttribute(Clazz clazz,
                                          EnclosingMethodAttribute enclosingMethodAttribute)
Specified by:
visitEnclosingMethodAttribute in interface AttributeVisitor
Overrides:
visitEnclosingMethodAttribute in class SimplifiedVisitor

visitDeprecatedAttribute

public void visitDeprecatedAttribute(Clazz clazz,
                                     DeprecatedAttribute deprecatedAttribute)
Specified by:
visitDeprecatedAttribute in interface AttributeVisitor
Overrides:
visitDeprecatedAttribute in class SimplifiedVisitor

visitSyntheticAttribute

public void visitSyntheticAttribute(Clazz clazz,
                                    SyntheticAttribute syntheticAttribute)
Specified by:
visitSyntheticAttribute in interface AttributeVisitor
Overrides:
visitSyntheticAttribute in class SimplifiedVisitor

visitSignatureAttribute

public void visitSignatureAttribute(Clazz clazz,
                                    SignatureAttribute signatureAttribute)
Specified by:
visitSignatureAttribute in interface AttributeVisitor
Overrides:
visitSignatureAttribute in class SimplifiedVisitor

visitConstantValueAttribute

public void visitConstantValueAttribute(Clazz clazz,
                                        Field field,
                                        ConstantValueAttribute constantValueAttribute)
Specified by:
visitConstantValueAttribute in interface AttributeVisitor
Overrides:
visitConstantValueAttribute in class SimplifiedVisitor

visitExceptionsAttribute

public void visitExceptionsAttribute(Clazz clazz,
                                     Method method,
                                     ExceptionsAttribute exceptionsAttribute)
Specified by:
visitExceptionsAttribute in interface AttributeVisitor
Overrides:
visitExceptionsAttribute in class SimplifiedVisitor

visitCodeAttribute

public void visitCodeAttribute(Clazz clazz,
                               Method method,
                               CodeAttribute codeAttribute)
Specified by:
visitCodeAttribute in interface AttributeVisitor
Overrides:
visitCodeAttribute in class SimplifiedVisitor

visitStackMapAttribute

public void visitStackMapAttribute(Clazz clazz,
                                   Method method,
                                   CodeAttribute codeAttribute,
                                   StackMapAttribute stackMapAttribute)
Specified by:
visitStackMapAttribute in interface AttributeVisitor
Overrides:
visitStackMapAttribute in class SimplifiedVisitor

visitStackMapTableAttribute

public void visitStackMapTableAttribute(Clazz clazz,
                                        Method method,
                                        CodeAttribute codeAttribute,
                                        StackMapTableAttribute stackMapTableAttribute)
Specified by:
visitStackMapTableAttribute in interface AttributeVisitor
Overrides:
visitStackMapTableAttribute in class SimplifiedVisitor

visitLineNumberTableAttribute

public void visitLineNumberTableAttribute(Clazz clazz,
                                          Method method,
                                          CodeAttribute codeAttribute,
                                          LineNumberTableAttribute lineNumberTableAttribute)
Specified by:
visitLineNumberTableAttribute in interface AttributeVisitor
Overrides:
visitLineNumberTableAttribute in class SimplifiedVisitor

visitLocalVariableTableAttribute

public void visitLocalVariableTableAttribute(Clazz clazz,
                                             Method method,
                                             CodeAttribute codeAttribute,
                                             LocalVariableTableAttribute localVariableTableAttribute)
Specified by:
visitLocalVariableTableAttribute in interface AttributeVisitor
Overrides:
visitLocalVariableTableAttribute in class SimplifiedVisitor

visitLocalVariableTypeTableAttribute

public void visitLocalVariableTypeTableAttribute(Clazz clazz,
                                                 Method method,
                                                 CodeAttribute codeAttribute,
                                                 LocalVariableTypeTableAttribute localVariableTypeTableAttribute)
Specified by:
visitLocalVariableTypeTableAttribute in interface AttributeVisitor
Overrides:
visitLocalVariableTypeTableAttribute in class SimplifiedVisitor

visitAnyAnnotationsAttribute

public void visitAnyAnnotationsAttribute(Clazz clazz,
                                         AnnotationsAttribute annotationsAttribute)
Description copied from class: SimplifiedVisitor
Visits any type of AnnotationsAttribute of a class.

Overrides:
visitAnyAnnotationsAttribute in class SimplifiedVisitor

visitAnyParameterAnnotationsAttribute

public void visitAnyParameterAnnotationsAttribute(Clazz clazz,
                                                  Method method,
                                                  ParameterAnnotationsAttribute parameterAnnotationsAttribute)
Description copied from class: SimplifiedVisitor
Visits any type of ParameterAnnotationsAttribute.

Overrides:
visitAnyParameterAnnotationsAttribute in class SimplifiedVisitor

visitAnnotationDefaultAttribute

public void visitAnnotationDefaultAttribute(Clazz clazz,
                                            Method method,
                                            AnnotationDefaultAttribute annotationDefaultAttribute)
Specified by:
visitAnnotationDefaultAttribute in interface AttributeVisitor
Overrides:
visitAnnotationDefaultAttribute in class SimplifiedVisitor

visitExceptionInfo

public void visitExceptionInfo(Clazz clazz,
                               Method method,
                               CodeAttribute codeAttribute,
                               ExceptionInfo exceptionInfo)
Specified by:
visitExceptionInfo in interface ExceptionInfoVisitor

visitInnerClassesInfo

public void visitInnerClassesInfo(Clazz clazz,
                                  InnerClassesInfo innerClassesInfo)
Specified by:
visitInnerClassesInfo in interface InnerClassesInfoVisitor

visitAnyStackMapFrame

public void visitAnyStackMapFrame(Clazz clazz,
                                  Method method,
                                  CodeAttribute codeAttribute,
                                  int offset,
                                  StackMapFrame stackMapFrame)
Description copied from class: SimplifiedVisitor
Visits any type of VerificationType.

Overrides:
visitAnyStackMapFrame in class SimplifiedVisitor

visitSameOneFrame

public void visitSameOneFrame(Clazz clazz,
                              Method method,
                              CodeAttribute codeAttribute,
                              int offset,
                              SameOneFrame sameOneFrame)
Specified by:
visitSameOneFrame in interface StackMapFrameVisitor
Overrides:
visitSameOneFrame in class SimplifiedVisitor

visitMoreZeroFrame

public void visitMoreZeroFrame(Clazz clazz,
                               Method method,
                               CodeAttribute codeAttribute,
                               int offset,
                               MoreZeroFrame moreZeroFrame)
Specified by:
visitMoreZeroFrame in interface StackMapFrameVisitor
Overrides:
visitMoreZeroFrame in class SimplifiedVisitor

visitFullFrame

public void visitFullFrame(Clazz clazz,
                           Method method,
                           CodeAttribute codeAttribute,
                           int offset,
                           FullFrame fullFrame)
Specified by:
visitFullFrame in interface StackMapFrameVisitor
Overrides:
visitFullFrame in class SimplifiedVisitor

visitAnyVerificationType

public void visitAnyVerificationType(Clazz clazz,
                                     Method method,
                                     CodeAttribute codeAttribute,
                                     int offset,
                                     VerificationType verificationType)
Description copied from class: SimplifiedVisitor
Visits any type of VerificationType.

Overrides:
visitAnyVerificationType in class SimplifiedVisitor

visitObjectType

public void visitObjectType(Clazz clazz,
                            Method method,
                            CodeAttribute codeAttribute,
                            int offset,
                            ObjectType objectType)
Specified by:
visitObjectType in interface VerificationTypeVisitor
Overrides:
visitObjectType in class SimplifiedVisitor

visitLocalVariableInfo

public void visitLocalVariableInfo(Clazz clazz,
                                   Method method,
                                   CodeAttribute codeAttribute,
                                   LocalVariableInfo localVariableInfo)
Specified by:
visitLocalVariableInfo in interface LocalVariableInfoVisitor

visitLocalVariableTypeInfo

public void visitLocalVariableTypeInfo(Clazz clazz,
                                       Method method,
                                       CodeAttribute codeAttribute,
                                       LocalVariableTypeInfo localVariableTypeInfo)
Specified by:
visitLocalVariableTypeInfo in interface LocalVariableTypeInfoVisitor

visitAnyInstruction

public void visitAnyInstruction(Clazz clazz,
                                Method method,
                                CodeAttribute codeAttribute,
                                int offset,
                                Instruction instruction)
Description copied from class: SimplifiedVisitor
Visits any type of Instruction.

Overrides:
visitAnyInstruction in class SimplifiedVisitor

visitConstantInstruction

public void visitConstantInstruction(Clazz clazz,
                                     Method method,
                                     CodeAttribute codeAttribute,
                                     int offset,
                                     ConstantInstruction constantInstruction)
Specified by:
visitConstantInstruction in interface InstructionVisitor
Overrides:
visitConstantInstruction in class SimplifiedVisitor

markAsUnused

protected void markAsUnused(VisitorAccepter visitorAccepter)
Clears any usage marks from the given visitor accepter.