📄 utf8usagemarker.java
字号:
public void visitSourceDirAttrInfo(ClassFile classFile, SourceDirAttrInfo sourceDirAttrInfo) { markCpUtf8Entry(classFile, sourceDirAttrInfo.u2attrNameIndex); markCpUtf8Entry(classFile, sourceDirAttrInfo.u2sourceDirIndex); } public void visitDeprecatedAttrInfo(ClassFile classFile, DeprecatedAttrInfo deprecatedAttrInfo) { markCpUtf8Entry(classFile, deprecatedAttrInfo.u2attrNameIndex); } public void visitSyntheticAttrInfo(ClassFile classFile, SyntheticAttrInfo syntheticAttrInfo) { markCpUtf8Entry(classFile, syntheticAttrInfo.u2attrNameIndex); } public void visitSignatureAttrInfo(ClassFile classFile, SignatureAttrInfo signatureAttrInfo) { markCpUtf8Entry(classFile, signatureAttrInfo.u2attrNameIndex); markCpUtf8Entry(classFile, signatureAttrInfo.u2signatureIndex); } public void visitRuntimeVisibleAnnotationAttrInfo(ClassFile classFile, RuntimeVisibleAnnotationsAttrInfo runtimeVisibleAnnotationsAttrInfo) { markCpUtf8Entry(classFile, runtimeVisibleAnnotationsAttrInfo.u2attrNameIndex); // Mark the UTF-8 entries referenced by the annotations. runtimeVisibleAnnotationsAttrInfo.annotationsAccept(classFile, this); } public void visitRuntimeInvisibleAnnotationAttrInfo(ClassFile classFile, RuntimeInvisibleAnnotationsAttrInfo runtimeInvisibleAnnotationsAttrInfo) { markCpUtf8Entry(classFile, runtimeInvisibleAnnotationsAttrInfo.u2attrNameIndex); // Mark the UTF-8 entries referenced by the annotations. runtimeInvisibleAnnotationsAttrInfo.annotationsAccept(classFile, this); } public void visitRuntimeVisibleParameterAnnotationAttrInfo(ClassFile classFile, RuntimeVisibleParameterAnnotationsAttrInfo runtimeVisibleParameterAnnotationsAttrInfo) { markCpUtf8Entry(classFile, runtimeVisibleParameterAnnotationsAttrInfo.u2attrNameIndex); // Mark the UTF-8 entries referenced by the annotations. runtimeVisibleParameterAnnotationsAttrInfo.annotationsAccept(classFile, this); } public void visitRuntimeInvisibleParameterAnnotationAttrInfo(ClassFile classFile, RuntimeInvisibleParameterAnnotationsAttrInfo runtimeInvisibleParameterAnnotationsAttrInfo) { markCpUtf8Entry(classFile, runtimeInvisibleParameterAnnotationsAttrInfo.u2attrNameIndex); // Mark the UTF-8 entries referenced by the annotations. runtimeInvisibleParameterAnnotationsAttrInfo.annotationsAccept(classFile, this); } public void visitAnnotationDefaultAttrInfo(ClassFile classFile, AnnotationDefaultAttrInfo annotationDefaultAttrInfo) { markCpUtf8Entry(classFile, annotationDefaultAttrInfo.u2attrNameIndex); // Mark the UTF-8 entries referenced by the element value. annotationDefaultAttrInfo.defaultValueAccept(classFile, this); } // Implementations for InnerClassesInfoVisitor. public void visitInnerClassesInfo(ClassFile classFile, InnerClassesInfo innerClassesInfo) { if (innerClassesInfo.u2innerNameIndex != 0) { markCpUtf8Entry(classFile, innerClassesInfo.u2innerNameIndex); } } // Implementations for LocalVariableInfoVisitor. public void visitLocalVariableInfo(ClassFile classFile, MethodInfo methodInfo, CodeAttrInfo codeAttrInfo, LocalVariableInfo localVariableInfo) { markCpUtf8Entry(classFile, localVariableInfo.u2nameIndex); markCpUtf8Entry(classFile, localVariableInfo.u2descriptorIndex); } // Implementations for LocalVariableTypeInfoVisitor. public void visitLocalVariableTypeInfo(ClassFile classFile, MethodInfo methodInfo, CodeAttrInfo codeAttrInfo, LocalVariableTypeInfo localVariableTypeInfo) { markCpUtf8Entry(classFile, localVariableTypeInfo.u2nameIndex); markCpUtf8Entry(classFile, localVariableTypeInfo.u2signatureIndex); } // Implementations for AnnotationVisitor. public void visitAnnotation(ClassFile classFile, Annotation annotation) { markCpUtf8Entry(classFile, annotation.u2typeIndex); // Mark the UTF-8 entries referenced by the element values. annotation.elementValuesAccept(classFile, this); } // Implementations for ElementValueVisitor. public void visitConstantElementValue(ClassFile classFile, Annotation annotation, ConstantElementValue constantElementValue) { if (constantElementValue.u2elementName != 0) { markCpUtf8Entry(classFile, constantElementValue.u2elementName); } // Only the string constant element value refers to a UTF-8 entry. if (constantElementValue.u1tag == ClassConstants.ELEMENT_VALUE_STRING_CONSTANT) { markCpUtf8Entry(classFile, constantElementValue.u2constantValueIndex); } } public void visitEnumConstantElementValue(ClassFile classFile, Annotation annotation, EnumConstantElementValue enumConstantElementValue) { if (enumConstantElementValue.u2elementName != 0) { markCpUtf8Entry(classFile, enumConstantElementValue.u2elementName); } markCpUtf8Entry(classFile, enumConstantElementValue.u2typeNameIndex); markCpUtf8Entry(classFile, enumConstantElementValue.u2constantNameIndex); } public void visitClassElementValue(ClassFile classFile, Annotation annotation, ClassElementValue classElementValue) { if (classElementValue.u2elementName != 0) { markCpUtf8Entry(classFile, classElementValue.u2elementName); } markCpUtf8Entry(classFile, classElementValue.u2classInfoIndex); } public void visitAnnotationElementValue(ClassFile classFile, Annotation annotation, AnnotationElementValue annotationElementValue) { if (annotationElementValue.u2elementName != 0) { markCpUtf8Entry(classFile, annotationElementValue.u2elementName); } // Mark the UTF-8 entries referenced by the annotation. annotationElementValue.annotationAccept(classFile, this); } public void visitArrayElementValue(ClassFile classFile, Annotation annotation, ArrayElementValue arrayElementValue) { if (arrayElementValue.u2elementName != 0) { markCpUtf8Entry(classFile, arrayElementValue.u2elementName); } // Mark the UTF-8 entries referenced by the element values. arrayElementValue.elementValuesAccept(classFile, annotation, this); } // Small utility methods. /** * Marks the given UTF-8 constant pool entry of the given class. */ private void markCpUtf8Entry(ClassFile classFile, int index) { markAsUsed((Utf8CpInfo)((ProgramClassFile)classFile).getCpEntry(index)); } /** * Marks the given VisitorAccepter as being used. * In this context, the VisitorAccepter will be a Utf8CpInfo object. */ private static void markAsUsed(VisitorAccepter visitorAccepter) { visitorAccepter.setVisitorInfo(USED); } /** * Returns whether the given VisitorAccepter has been marked as being used. * In this context, the VisitorAccepter will be a Utf8CpInfo object. */ static boolean isUsed(VisitorAccepter visitorAccepter) { return visitorAccepter.getVisitorInfo() == USED; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -