mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 19:14:38 +02:00
6867671: javap whitespace formatting issues
Reviewed-by: mcimadamore
This commit is contained in:
parent
2437247a8d
commit
22c0a5cddf
7 changed files with 297 additions and 166 deletions
|
@ -41,7 +41,6 @@ import com.sun.tools.classfile.DefaultAttribute;
|
|||
import com.sun.tools.classfile.Deprecated_attribute;
|
||||
import com.sun.tools.classfile.EnclosingMethod_attribute;
|
||||
import com.sun.tools.classfile.Exceptions_attribute;
|
||||
import com.sun.tools.classfile.Field;
|
||||
import com.sun.tools.classfile.InnerClasses_attribute;
|
||||
import com.sun.tools.classfile.LineNumberTable_attribute;
|
||||
import com.sun.tools.classfile.LocalVariableTable_attribute;
|
||||
|
@ -149,22 +148,26 @@ public class AttributeWriter extends BasicWriter
|
|||
}
|
||||
|
||||
public Void visitAnnotationDefault(AnnotationDefault_attribute attr, Void ignore) {
|
||||
println(" AnnotationDefault: ");
|
||||
print(" default_value: ");
|
||||
println("AnnotationDefault:");
|
||||
indent(+1);
|
||||
print("default_value: ");
|
||||
annotationWriter.write(attr.default_value);
|
||||
indent(-1);
|
||||
return null;
|
||||
}
|
||||
|
||||
public Void visitCharacterRangeTable(CharacterRangeTable_attribute attr, Void ignore) {
|
||||
print(" CharacterRangeTable: ");
|
||||
println("CharacterRangeTable:");
|
||||
indent(+1);
|
||||
for (int i = 0; i < attr.character_range_table.length; i++) {
|
||||
CharacterRangeTable_attribute.Entry e = attr.character_range_table[i];
|
||||
print(" " + e.start_pc + ", " +
|
||||
e.end_pc + ", " +
|
||||
Integer.toHexString(e.character_range_start) + ", " +
|
||||
Integer.toHexString(e.character_range_end) + ", " +
|
||||
Integer.toHexString(e.flags) +
|
||||
"\t// ");
|
||||
Integer.toHexString(e.flags));
|
||||
tab();
|
||||
print("// ");
|
||||
print(e.start_pc + ", " +
|
||||
e.end_pc + ", " +
|
||||
(e.character_range_start >> 10) + ":" + (e.character_range_start & 0x3ff) + ", " +
|
||||
|
@ -187,16 +190,13 @@ public class AttributeWriter extends BasicWriter
|
|||
print(", branch-true");
|
||||
if ((e.flags & CharacterRangeTable_attribute.CRT_BRANCH_FALSE) != 0)
|
||||
print(", branch-false");
|
||||
|
||||
|
||||
|
||||
}
|
||||
indent(-1);
|
||||
return null;
|
||||
}
|
||||
|
||||
public Void visitCode(Code_attribute attr, Void ignore) {
|
||||
codeWriter.write(attr, constant_pool);
|
||||
println();
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -207,25 +207,23 @@ public class AttributeWriter extends BasicWriter
|
|||
|
||||
public Void visitConstantValue(ConstantValue_attribute attr, Void ignore) {
|
||||
if (options.compat) // BUG 6622216 javap names some attributes incorrectly
|
||||
print(" Constant value: ");
|
||||
print("Constant value: ");
|
||||
else
|
||||
print(" ConstantValue: ");
|
||||
print("ConstantValue: ");
|
||||
constantWriter.write(attr.constantvalue_index);
|
||||
if (!options.compat) // BUG 6622232 javap gets whitespace confused
|
||||
println();
|
||||
println();
|
||||
return null;
|
||||
}
|
||||
|
||||
public Void visitDeprecated(Deprecated_attribute attr, Void ignore) {
|
||||
if (!(options.compat && owner instanceof Field)) // BUG 6622232 javap gets whitespace confused
|
||||
print(" ");
|
||||
println("Deprecated: true");
|
||||
return null;
|
||||
}
|
||||
|
||||
public Void visitEnclosingMethod(EnclosingMethod_attribute attr, Void ignore) {
|
||||
print(" EnclosingMethod: #" + attr.class_index + ".#" + attr.method_index
|
||||
+ "\t// " + getJavaClassName(attr));
|
||||
print("EnclosingMethod: #" + attr.class_index + ".#" + attr.method_index);
|
||||
tab();
|
||||
print("// " + getJavaClassName(attr));
|
||||
if (attr.method_index != 0)
|
||||
print("." + getMethodName(attr));
|
||||
println();
|
||||
|
@ -249,15 +247,16 @@ public class AttributeWriter extends BasicWriter
|
|||
}
|
||||
|
||||
public Void visitExceptions(Exceptions_attribute attr, Void ignore) {
|
||||
println(" Exceptions: ");
|
||||
print(" throws ");
|
||||
println("Exceptions:");
|
||||
indent(+1);
|
||||
print("throws ");
|
||||
for (int i = 0; i < attr.number_of_exceptions; i++) {
|
||||
if (i > 0)
|
||||
print(", ");
|
||||
print(getJavaException(attr, i));
|
||||
}
|
||||
if (!options.compat) // BUG 6622232 javap gets whitespace confused
|
||||
println();
|
||||
println();
|
||||
indent(-1);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -290,8 +289,7 @@ public class AttributeWriter extends BasicWriter
|
|||
writeInnerClassHeader();
|
||||
first = false;
|
||||
}
|
||||
if (!options.compat) // BUG 6622232: javap gets whitespace confused
|
||||
print(" ");
|
||||
print(" ");
|
||||
for (String name: access_flags.getInnerClassModifiers())
|
||||
print(name + " ");
|
||||
if (info.inner_name_index!=0) {
|
||||
|
@ -313,6 +311,8 @@ public class AttributeWriter extends BasicWriter
|
|||
println();
|
||||
}
|
||||
}
|
||||
if (!first)
|
||||
indent(-1);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -325,26 +325,28 @@ public class AttributeWriter extends BasicWriter
|
|||
}
|
||||
|
||||
private void writeInnerClassHeader() {
|
||||
print(" ");
|
||||
if (options.compat) // BUG 6622216: javap names some attributes incorrectly
|
||||
print("InnerClass");
|
||||
else
|
||||
print("InnerClasses");
|
||||
println(": ");
|
||||
indent(+1);
|
||||
}
|
||||
|
||||
public Void visitLineNumberTable(LineNumberTable_attribute attr, Void ignore) {
|
||||
println(" LineNumberTable: ");
|
||||
println("LineNumberTable:");
|
||||
indent(+1);
|
||||
for (LineNumberTable_attribute.Entry entry: attr.line_number_table) {
|
||||
println(" line " + entry.line_number + ": " + entry.start_pc);
|
||||
println("line " + entry.line_number + ": " + entry.start_pc);
|
||||
}
|
||||
indent(-1);
|
||||
return null;
|
||||
}
|
||||
|
||||
public Void visitLocalVariableTable(LocalVariableTable_attribute attr, Void ignore) {
|
||||
println(" LocalVariableTable: ");
|
||||
println(" Start Length Slot Name Signature");
|
||||
|
||||
println("LocalVariableTable:");
|
||||
indent(+1);
|
||||
println("Start Length Slot Name Signature");
|
||||
for (LocalVariableTable_attribute.Entry entry : attr.local_variable_table) {
|
||||
Formatter formatter = new Formatter();
|
||||
println(formatter.format("%8d %7d %5d %5s %s",
|
||||
|
@ -352,25 +354,28 @@ public class AttributeWriter extends BasicWriter
|
|||
constantWriter.stringValue(entry.name_index),
|
||||
constantWriter.stringValue(entry.descriptor_index)));
|
||||
}
|
||||
indent(-1);
|
||||
return null;
|
||||
}
|
||||
|
||||
public Void visitLocalVariableTypeTable(LocalVariableTypeTable_attribute attr, Void ignore) {
|
||||
println(" LocalVariableTypeTable: ");
|
||||
println(" Start Length Slot Name Signature");
|
||||
|
||||
println("LocalVariableTypeTable:");
|
||||
indent(+1);
|
||||
println("Start Length Slot Name Signature");
|
||||
for (LocalVariableTypeTable_attribute.Entry entry : attr.local_variable_table) {
|
||||
Formatter formatter = new Formatter();
|
||||
println(formatter.format("%8d %7d %5d %5s %s",
|
||||
println(String.format("%5d %7d %5d %5s %s",
|
||||
entry.start_pc, entry.length, entry.index,
|
||||
constantWriter.stringValue(entry.name_index),
|
||||
constantWriter.stringValue(entry.signature_index)));
|
||||
}
|
||||
indent(-1);
|
||||
return null;
|
||||
}
|
||||
|
||||
public Void visitModule(Module_attribute attr, Void ignore) {
|
||||
println(" Module: #" + attr.module_name + "\t// " + getModuleName(attr));
|
||||
print("Module: #" + attr.module_name);
|
||||
tab();
|
||||
println("// " + getModuleName(attr));
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -383,11 +388,15 @@ public class AttributeWriter extends BasicWriter
|
|||
}
|
||||
|
||||
public Void visitModuleExportTable(ModuleExportTable_attribute attr, Void ignore) {
|
||||
println(" ModuleExportTable:");
|
||||
println(" Types: (" + attr.export_type_table.length + ")");
|
||||
println("ModuleExportTable:");
|
||||
indent(+1);
|
||||
println("Types: (" + attr.export_type_table.length + ")");
|
||||
for (int i = 0; i < attr.export_type_table.length; i++) {
|
||||
println(" #" + attr.export_type_table[i] + "\t// " + getExportTypeName(attr, i));
|
||||
print("#" + attr.export_type_table[i]);
|
||||
tab();
|
||||
println("// " + getExportTypeName(attr, i));
|
||||
}
|
||||
indent(-1);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -400,11 +409,15 @@ public class AttributeWriter extends BasicWriter
|
|||
}
|
||||
|
||||
public Void visitModuleMemberTable(ModuleMemberTable_attribute attr, Void ignore) {
|
||||
println(" ModuleMemberTable:");
|
||||
println(" Packages: (" + attr.package_member_table.length + ")");
|
||||
println("ModuleMemberTable:");
|
||||
indent(+1);
|
||||
println("Packages: (" + attr.package_member_table.length + ")");
|
||||
for (int i = 0; i < attr.package_member_table.length; i++) {
|
||||
println(" #" + attr.package_member_table[i] + "\t// " + getPackageMemberName(attr, i));
|
||||
print("#" + attr.package_member_table[i]);
|
||||
tab();
|
||||
println("// " + getPackageMemberName(attr, i));
|
||||
}
|
||||
indent(-1);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -417,73 +430,91 @@ public class AttributeWriter extends BasicWriter
|
|||
}
|
||||
|
||||
public Void visitRuntimeVisibleAnnotations(RuntimeVisibleAnnotations_attribute attr, Void ignore) {
|
||||
println(" RuntimeVisibleAnnotations: ");
|
||||
println("RuntimeVisibleAnnotations:");
|
||||
indent(+1);
|
||||
for (int i = 0; i < attr.annotations.length; i++) {
|
||||
print(" " + i + ": ");
|
||||
print(i + ": ");
|
||||
annotationWriter.write(attr.annotations[i]);
|
||||
println();
|
||||
}
|
||||
indent(-1);
|
||||
return null;
|
||||
}
|
||||
|
||||
public Void visitRuntimeInvisibleAnnotations(RuntimeInvisibleAnnotations_attribute attr, Void ignore) {
|
||||
println(" RuntimeInvisibleAnnotations: ");
|
||||
println("RuntimeInvisibleAnnotations:");
|
||||
indent(+1);
|
||||
for (int i = 0; i < attr.annotations.length; i++) {
|
||||
print(" " + i + ": ");
|
||||
print(i + ": ");
|
||||
annotationWriter.write(attr.annotations[i]);
|
||||
println();
|
||||
}
|
||||
indent(-1);
|
||||
return null;
|
||||
}
|
||||
|
||||
public Void visitRuntimeVisibleTypeAnnotations(RuntimeVisibleTypeAnnotations_attribute attr, Void ignore) {
|
||||
println(" RuntimeVisibleTypeAnnotations: ");
|
||||
println("RuntimeVisibleTypeAnnotations:");
|
||||
indent(+1);
|
||||
for (int i = 0; i < attr.annotations.length; i++) {
|
||||
print(" " + i + ": ");
|
||||
print(i + ": ");
|
||||
annotationWriter.write(attr.annotations[i]);
|
||||
println();
|
||||
}
|
||||
indent(-1);
|
||||
return null;
|
||||
}
|
||||
|
||||
public Void visitRuntimeInvisibleTypeAnnotations(RuntimeInvisibleTypeAnnotations_attribute attr, Void ignore) {
|
||||
println(" RuntimeInvisibleTypeAnnotations: ");
|
||||
println("RuntimeInvisibleTypeAnnotations:");
|
||||
indent(+1);
|
||||
for (int i = 0; i < attr.annotations.length; i++) {
|
||||
print(" " + i + ": ");
|
||||
print(i + ": ");
|
||||
annotationWriter.write(attr.annotations[i]);
|
||||
println();
|
||||
}
|
||||
indent(-1);
|
||||
return null;
|
||||
}
|
||||
|
||||
public Void visitRuntimeVisibleParameterAnnotations(RuntimeVisibleParameterAnnotations_attribute attr, Void ignore) {
|
||||
println(" RuntimeVisibleParameterAnnotations: ");
|
||||
println("RuntimeVisibleParameterAnnotations:");
|
||||
indent(+1);
|
||||
for (int param = 0; param < attr.parameter_annotations.length; param++) {
|
||||
println(" parameter " + param + ": ");
|
||||
println("parameter " + param + ": ");
|
||||
indent(+1);
|
||||
for (int i = 0; i < attr.parameter_annotations[param].length; i++) {
|
||||
print(" " + i + ": ");
|
||||
print(i + ": ");
|
||||
annotationWriter.write(attr.parameter_annotations[param][i]);
|
||||
println();
|
||||
}
|
||||
indent(-1);
|
||||
}
|
||||
indent(-1);
|
||||
return null;
|
||||
}
|
||||
|
||||
public Void visitRuntimeInvisibleParameterAnnotations(RuntimeInvisibleParameterAnnotations_attribute attr, Void ignore) {
|
||||
println(" RuntimeInvisibleParameterAnnotations: ");
|
||||
println("RuntimeInvisibleParameterAnnotations:");
|
||||
indent(+1);
|
||||
for (int param = 0; param < attr.parameter_annotations.length; param++) {
|
||||
println(" " + param + ": ");
|
||||
println(param + ": ");
|
||||
indent(+1);
|
||||
for (int i = 0; i < attr.parameter_annotations[param].length; i++) {
|
||||
print(" " + i + ": ");
|
||||
print(i + ": ");
|
||||
annotationWriter.write(attr.parameter_annotations[param][i]);
|
||||
println();
|
||||
}
|
||||
indent(-1);
|
||||
}
|
||||
indent(-1);
|
||||
return null;
|
||||
}
|
||||
|
||||
public Void visitSignature(Signature_attribute attr, Void ignore) {
|
||||
println(" Signature: #" + attr.signature_index + "\t// " + getSignature(attr));
|
||||
print("Signature: #" + attr.signature_index);
|
||||
tab();
|
||||
println("// " + getSignature(attr));
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -496,12 +527,12 @@ public class AttributeWriter extends BasicWriter
|
|||
}
|
||||
|
||||
public Void visitSourceDebugExtension(SourceDebugExtension_attribute attr, Void ignore) {
|
||||
println(" SourceDebugExtension: " + attr.getValue());
|
||||
println("SourceDebugExtension: " + attr.getValue());
|
||||
return null;
|
||||
}
|
||||
|
||||
public Void visitSourceFile(SourceFile_attribute attr, Void ignore) {
|
||||
println(" SourceFile: \"" + getSourceFile(attr) + "\"");
|
||||
println("SourceFile: \"" + getSourceFile(attr) + "\"");
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -519,24 +550,26 @@ public class AttributeWriter extends BasicWriter
|
|||
}
|
||||
|
||||
public Void visitStackMap(StackMap_attribute attr, Void ignore) {
|
||||
println(" StackMap: number_of_entries = " + attr.number_of_entries);
|
||||
|
||||
println("StackMap: number_of_entries = " + attr.number_of_entries);
|
||||
indent(+1);
|
||||
StackMapTableWriter w = new StackMapTableWriter();
|
||||
for (StackMapTable_attribute.stack_map_frame entry : attr.entries) {
|
||||
w.write(entry);
|
||||
}
|
||||
println();
|
||||
indent(-1);
|
||||
return null;
|
||||
}
|
||||
|
||||
public Void visitStackMapTable(StackMapTable_attribute attr, Void ignore) {
|
||||
println(" StackMapTable: number_of_entries = " + attr.number_of_entries);
|
||||
|
||||
println("StackMapTable: number_of_entries = " + attr.number_of_entries);
|
||||
indent(+1);
|
||||
StackMapTableWriter w = new StackMapTableWriter();
|
||||
for (StackMapTable_attribute.stack_map_frame entry : attr.entries) {
|
||||
w.write(entry);
|
||||
}
|
||||
println();
|
||||
indent(-1);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -555,29 +588,37 @@ public class AttributeWriter extends BasicWriter
|
|||
public Void visit_same_locals_1_stack_item_frame(StackMapTable_attribute.same_locals_1_stack_item_frame frame, Void p) {
|
||||
printHeader(frame);
|
||||
println(" /* same_locals_1_stack_item */");
|
||||
indent(+1);
|
||||
printMap("stack", frame.stack);
|
||||
indent(-1);
|
||||
return null;
|
||||
}
|
||||
|
||||
public Void visit_same_locals_1_stack_item_frame_extended(StackMapTable_attribute.same_locals_1_stack_item_frame_extended frame, Void p) {
|
||||
printHeader(frame);
|
||||
println(" /* same_locals_1_stack_item_frame_extended */");
|
||||
println(" offset_delta = " + frame.offset_delta);
|
||||
indent(+1);
|
||||
println("offset_delta = " + frame.offset_delta);
|
||||
printMap("stack", frame.stack);
|
||||
indent(-1);
|
||||
return null;
|
||||
}
|
||||
|
||||
public Void visit_chop_frame(StackMapTable_attribute.chop_frame frame, Void p) {
|
||||
printHeader(frame);
|
||||
println(" /* chop */");
|
||||
println(" offset_delta = " + frame.offset_delta);
|
||||
indent(+1);
|
||||
println("offset_delta = " + frame.offset_delta);
|
||||
indent(-1);
|
||||
return null;
|
||||
}
|
||||
|
||||
public Void visit_same_frame_extended(StackMapTable_attribute.same_frame_extended frame, Void p) {
|
||||
printHeader(frame);
|
||||
println(" /* same_frame_extended */");
|
||||
println(" offset_delta = " + frame.offset_delta);
|
||||
indent(+1);
|
||||
println("offset_delta = " + frame.offset_delta);
|
||||
indent(-1);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -592,13 +633,16 @@ public class AttributeWriter extends BasicWriter
|
|||
public Void visit_full_frame(StackMapTable_attribute.full_frame frame, Void p) {
|
||||
printHeader(frame);
|
||||
if (frame instanceof StackMap_attribute.stack_map_frame) {
|
||||
println(" offset = " + frame.offset_delta);
|
||||
indent(+1);
|
||||
println(" offset = " + frame.offset_delta);
|
||||
} else {
|
||||
println(" /* full_frame */");
|
||||
println(" offset_delta = " + frame.offset_delta);
|
||||
indent(+1);
|
||||
println("offset_delta = " + frame.offset_delta);
|
||||
}
|
||||
printMap("locals", frame.locals);
|
||||
printMap("stack", frame.stack);
|
||||
indent(-1);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -607,7 +651,7 @@ public class AttributeWriter extends BasicWriter
|
|||
}
|
||||
|
||||
void printMap(String name, StackMapTable_attribute.verification_type_info[] map) {
|
||||
print(" " + name + " = [");
|
||||
print(name + " = [");
|
||||
for (int i = 0; i < map.length; i++) {
|
||||
StackMapTable_attribute.verification_type_info info = map[i];
|
||||
int tag = info.tag;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue