public void visitLineNumberTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LineNumberTableAttribute lineNumberTableAttribute) { markAsUsed(lineNumberTableAttribute); markConstant(clazz, lineNumberTableAttribute.u2attributeNameIndex); }
public void visitUnknownAttribute(Clazz clazz, UnknownAttribute unknownAttribute) { // This is the best we can do for unknown attributes. markAsUsed(unknownAttribute); markConstant(clazz, unknownAttribute.u2attributeNameIndex); }
public void visitDeprecatedAttribute(Clazz clazz, DeprecatedAttribute deprecatedAttribute) { markAsUsed(deprecatedAttribute); markConstant(clazz, deprecatedAttribute.u2attributeNameIndex); }
public void visitExceptionInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, ExceptionInfo exceptionInfo) { markAsUsed(exceptionInfo); if (exceptionInfo.u2catchType != 0) { markConstant(clazz, exceptionInfo.u2catchType); } }
public void visitIntegerConstant(Clazz clazz, IntegerConstant integerConstant) { if (shouldBeMarkedAsUsed(integerConstant)) { markAsUsed(integerConstant); } }
public void visitUtf8Constant(Clazz clazz, Utf8Constant utf8Constant) { if (!usageMarker.isUsed(utf8Constant)) { usageMarker.markAsUsed(utf8Constant); } } }
public void visitLongConstant(Clazz clazz, LongConstant longConstant) { if (shouldBeMarkedAsUsed(longConstant)) { markAsUsed(longConstant); } }
public void visitProgramClass(ProgramClass programClass) { if (shouldBeMarkedAsUsed(programClass)) { // Mark this class. markAsUsed(programClass); markProgramClassBody(programClass); } }
public void visitLibraryMethod(LibraryClass libraryClass, LibraryMethod libraryMethod) { if (shouldBeMarkedAsUsed(libraryMethod)) { markAsUsed(libraryMethod); // Mark the method hierarchy. markMethodHierarchy(libraryClass, libraryMethod); } }
public void visitExceptionsAttribute(Clazz clazz, Method method, ExceptionsAttribute exceptionsAttribute) { markAsUsed(exceptionsAttribute); markConstant(clazz, exceptionsAttribute.u2attributeNameIndex); // Mark the constant pool entries referenced by the exceptions. exceptionsAttribute.exceptionEntriesAccept((ProgramClass)clazz, this); }
public void visitStackMapTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, StackMapTableAttribute stackMapTableAttribute) { markAsUsed(stackMapTableAttribute); markConstant(clazz, stackMapTableAttribute.u2attributeNameIndex); // Mark the constant pool entries referenced by the stack map frames. stackMapTableAttribute.stackMapFramesAccept(clazz, method, codeAttribute, this); }
public void visitConstantValueAttribute(Clazz clazz, Field field, ConstantValueAttribute constantValueAttribute) { markAsUsed(constantValueAttribute); markConstant(clazz, constantValueAttribute.u2attributeNameIndex); markConstant(clazz, constantValueAttribute.u2constantValueIndex); }
public void visitLocalVariableTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTableAttribute localVariableTableAttribute) { markAsUsed(localVariableTableAttribute); markConstant(clazz, localVariableTableAttribute.u2attributeNameIndex); // Mark the constant pool entries referenced by the local variables. localVariableTableAttribute.localVariablesAccept(clazz, method, codeAttribute, this); }
public void visitLocalVariableTypeTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTypeTableAttribute localVariableTypeTableAttribute) { markAsUsed(localVariableTypeTableAttribute); markConstant(clazz, localVariableTypeTableAttribute.u2attributeNameIndex); // Mark the constant pool entries referenced by the local variable types. localVariableTypeTableAttribute.localVariablesAccept(clazz, method, codeAttribute, this); }
public void visitAnnotationDefaultAttribute(Clazz clazz, Method method, AnnotationDefaultAttribute annotationDefaultAttribute) { // Mark the necessary annotation information in any annotation elements. annotationDefaultAttribute.defaultValueAccept(clazz, this); // Always mark annotation defaults. usageMarker.markAsUsed(annotationDefaultAttribute); markConstant(clazz, annotationDefaultAttribute.u2attributeNameIndex); }
public void visitSourceFileAttribute(Clazz clazz, SourceFileAttribute sourceFileAttribute) { markAsUsed(sourceFileAttribute); markConstant(clazz, sourceFileAttribute.u2attributeNameIndex); markConstant(clazz, sourceFileAttribute.u2sourceFileIndex); }
public void visitSourceDirAttribute(Clazz clazz, SourceDirAttribute sourceDirAttribute) { markAsUsed(sourceDirAttribute); markConstant(clazz, sourceDirAttribute.u2attributeNameIndex); markConstant(clazz, sourceDirAttribute.u2sourceDirIndex); }
public void visitConstantElementValue(Clazz clazz, Annotation annotation, ConstantElementValue constantElementValue) { if (isReferencedMethodUsed(constantElementValue)) { // Mark the element value as being used. usageMarker.markAsUsed(constantElementValue); markConstant(clazz, constantElementValue.u2elementNameIndex); markConstant(clazz, constantElementValue.u2constantValueIndex); // The return value. elementValueUsed = true; } }
public void visitEnclosingMethodAttribute(Clazz clazz, EnclosingMethodAttribute enclosingMethodAttribute) { markAsUsed(enclosingMethodAttribute); markConstant(clazz, enclosingMethodAttribute.u2attributeNameIndex); markConstant(clazz, enclosingMethodAttribute.u2classIndex); if (enclosingMethodAttribute.u2nameAndTypeIndex != 0) { markConstant(clazz, enclosingMethodAttribute.u2nameAndTypeIndex); } }
public void visitNameAndTypeConstant(Clazz clazz, NameAndTypeConstant nameAndTypeConstant) { if (shouldBeMarkedAsUsed(nameAndTypeConstant)) { markAsUsed(nameAndTypeConstant); markConstant(clazz, nameAndTypeConstant.u2nameIndex); markConstant(clazz, nameAndTypeConstant.u2descriptorIndex); } }