class java.lang.constant.ConstantUtils
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: java.lang.constant.ConstantUtils
super_class: java.lang.Object
{
public static final java.lang.constant.ConstantDesc[] EMPTY_CONSTANTDESC;
descriptor: [Ljava/lang/constant/ConstantDesc;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
static final java.lang.constant.Constable[] EMPTY_CONSTABLE;
descriptor: [Ljava/lang/constant/Constable;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final int MAX_ARRAY_TYPE_DESC_DIMENSIONS;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 255
private static final java.util.Set<java.lang.String> pointyNames;
descriptor: Ljava/util/Set;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
private static final char JVM_SIGNATURE_ARRAY;
descriptor: C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 91
private static final char JVM_SIGNATURE_BYTE;
descriptor: C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 66
private static final char JVM_SIGNATURE_CHAR;
descriptor: C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 67
private static final char JVM_SIGNATURE_CLASS;
descriptor: C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 76
private static final char JVM_SIGNATURE_ENDCLASS;
descriptor: C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 59
private static final char JVM_SIGNATURE_ENUM;
descriptor: C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 69
private static final char JVM_SIGNATURE_FLOAT;
descriptor: C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 70
private static final char JVM_SIGNATURE_DOUBLE;
descriptor: C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 68
private static final char JVM_SIGNATURE_FUNC;
descriptor: C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 40
private static final char JVM_SIGNATURE_ENDFUNC;
descriptor: C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 41
private static final char JVM_SIGNATURE_INT;
descriptor: C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 73
private static final char JVM_SIGNATURE_LONG;
descriptor: C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 74
private static final char JVM_SIGNATURE_SHORT;
descriptor: C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 83
private static final char JVM_SIGNATURE_VOID;
descriptor: C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 86
private static final char JVM_SIGNATURE_BOOLEAN;
descriptor: C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 90
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: iconst_0
anewarray java.lang.constant.ConstantDesc
putstatic java.lang.constant.ConstantUtils.EMPTY_CONSTANTDESC:[Ljava/lang/constant/ConstantDesc;
1: iconst_0
anewarray java.lang.constant.Constable
putstatic java.lang.constant.ConstantUtils.EMPTY_CONSTABLE:[Ljava/lang/constant/Constable;
2: ldc "<init>"
ldc "<clinit>"
invokestatic java.util.Set.of:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set;
putstatic java.lang.constant.ConstantUtils.pointyNames:Ljava/util/Set;
3: return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/constant/ConstantUtils;
static java.lang.String validateBinaryClassName(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 6
2: StackMap locals: int
StackMap stack:
aload 0
iload 1
invokevirtual java.lang.String.charAt:(I)C
istore 2
start local 2 3: iload 2
bipush 59
if_icmpeq 4
iload 2
bipush 91
if_icmpeq 4
iload 2
bipush 47
if_icmpne 5
4: StackMap locals: int
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Invalid class name: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 2 5: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
6: iload 1
aload 0
invokevirtual java.lang.String.length:()I
if_icmplt 2
end local 1 7: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 name Ljava/lang/String;
1 7 1 i I
3 5 2 ch C
MethodParameters:
Name Flags
name
public static java.lang.String validateMemberName(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
invokevirtual java.lang.String.length:()I
ifne 3
2: new java.lang.IllegalArgumentException
dup
ldc "zero-length member name"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 4: goto 12
5: StackMap locals: int
StackMap stack:
aload 0
iload 2
invokevirtual java.lang.String.charAt:(I)C
istore 3
start local 3 6: iload 3
bipush 46
if_icmpeq 7
iload 3
bipush 59
if_icmpeq 7
iload 3
bipush 91
if_icmpeq 7
iload 3
bipush 47
if_icmpne 8
7: StackMap locals: int
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Invalid member name: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
iload 1
ifeq 11
iload 3
bipush 60
if_icmpeq 9
iload 3
bipush 62
if_icmpne 11
9: StackMap locals:
StackMap stack:
getstatic java.lang.constant.ConstantUtils.pointyNames:Ljava/util/Set;
aload 0
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 11
10: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Invalid member name: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 3 11: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
12: iload 2
aload 0
invokevirtual java.lang.String.length:()I
if_icmplt 5
end local 2 13: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 name Ljava/lang/String;
0 14 1 method Z
4 13 2 i I
6 11 3 ch C
MethodParameters:
Name Flags
name
method
static void validateClassOrInterface(java.lang.constant.ClassDesc);
descriptor: (Ljava/lang/constant/ClassDesc;)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface java.lang.constant.ClassDesc.isClassOrInterface:()Z
ifne 2
1: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "not a class or interface type: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 classDesc Ljava/lang/constant/ClassDesc;
MethodParameters:
Name Flags
classDesc
static int arrayDepth(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 3
2: StackMap locals: int
StackMap stack:
iinc 1 1
3: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual java.lang.String.charAt:(I)C
bipush 91
if_icmpeq 2
4: iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 descriptorString Ljava/lang/String;
1 5 1 depth I
MethodParameters:
Name Flags
descriptorString
static java.lang.String binaryToInternal(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
bipush 46
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 name Ljava/lang/String;
MethodParameters:
Name Flags
name
static java.lang.String internalToBinary(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
bipush 47
bipush 46
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 name Ljava/lang/String;
MethodParameters:
Name Flags
name
static java.lang.String dropLastChar(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
aload 0
invokevirtual java.lang.String.length:()I
iconst_1
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 s Ljava/lang/String;
MethodParameters:
Name Flags
s
static java.lang.String dropFirstAndLastChar(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
aload 0
invokevirtual java.lang.String.length:()I
iconst_1
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 s Ljava/lang/String;
MethodParameters:
Name Flags
s
static java.util.List<java.lang.String> parseMethodDescriptor(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/List;
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=5, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
invokevirtual java.lang.String.length:()I
istore 2
start local 2 2: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 3: iload 1
iload 2
if_icmpge 4
aload 0
iload 1
invokevirtual java.lang.String.charAt:(I)C
bipush 40
if_icmpeq 5
4: StackMap locals: int int java.util.ArrayList
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Bad method descriptor: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
iinc 1 1
6: goto 12
7: StackMap locals:
StackMap stack:
aload 0
iload 1
iload 2
iconst_0
invokestatic java.lang.constant.ConstantUtils.skipOverFieldSignature:(Ljava/lang/String;IIZ)I
istore 4
start local 4 8: iload 4
ifne 10
9: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Bad method descriptor: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals: int
StackMap stack:
aload 3
aload 0
iload 1
iload 1
iload 4
iadd
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
11: iload 1
iload 4
iadd
istore 1
end local 4 12: StackMap locals:
StackMap stack:
iload 1
iload 2
if_icmpge 13
aload 0
iload 1
invokevirtual java.lang.String.charAt:(I)C
bipush 41
if_icmpne 7
13: StackMap locals:
StackMap stack:
iload 1
iload 2
if_icmplt 15
14: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Bad method descriptor: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack:
iinc 1 1
16: aload 0
iload 1
iload 2
iconst_1
invokestatic java.lang.constant.ConstantUtils.skipOverFieldSignature:(Ljava/lang/String;IIZ)I
istore 4
start local 4 17: iload 4
ifeq 18
iload 1
iload 4
iadd
iload 2
if_icmpeq 19
18: StackMap locals: int
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Bad method descriptor: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
19: StackMap locals:
StackMap stack:
aload 3
iconst_0
aload 0
iload 1
iload 1
iload 4
iadd
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual java.util.ArrayList.add:(ILjava/lang/Object;)V
20: aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 descriptor Ljava/lang/String;
1 21 1 cur I
2 21 2 end I
3 21 3 ptypes Ljava/util/ArrayList<Ljava/lang/String;>;
8 12 4 len I
17 21 4 rLen I
Signature: (Ljava/lang/String;)Ljava/util/List<Ljava/lang/String;>;
MethodParameters:
Name Flags
descriptor
static int skipOverFieldSignature(java.lang.String, int, int, boolean);
descriptor: (Ljava/lang/String;IIZ)I
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 4
start local 4 1: iload 1
istore 5
start local 5 2: goto 24
3: StackMap locals: int int
StackMap stack:
aload 0
iload 5
invokevirtual java.lang.String.charAt:(I)C
tableswitch { // 66 - 91
66: 5
67: 5
68: 5
69: 23
70: 5
71: 23
72: 23
73: 5
74: 5
75: 23
76: 6
77: 23
78: 23
79: 23
80: 23
81: 23
82: 23
83: 5
84: 23
85: 23
86: 4
87: 23
88: 23
89: 23
90: 5
91: 15
default: 23
}
4: StackMap locals:
StackMap stack:
iload 3
ifne 5
iload 5
ireturn
5: StackMap locals:
StackMap stack:
iload 5
iload 1
isub
iconst_1
iadd
ireturn
6: StackMap locals:
StackMap stack:
iinc 5 1
7: aload 0
bipush 59
iload 5
invokevirtual java.lang.String.indexOf:(II)I
istore 6
start local 6 8: iload 6
iconst_m1
if_icmpeq 14
9: aload 0
iload 5
iload 6
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 7
start local 7 10: aload 7
invokestatic java.lang.constant.ConstantUtils.verifyUnqualifiedClassName:(Ljava/lang/String;)Z
istore 8
start local 8 11: iload 8
ifne 13
12: iconst_0
ireturn
13: StackMap locals: int java.lang.String int
StackMap stack:
iload 5
iload 1
isub
aload 7
invokevirtual java.lang.String.length:()I
iadd
iconst_1
iadd
ireturn
end local 8 end local 7 14: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 6 15: StackMap locals:
StackMap stack:
iinc 4 1
16: iload 4
sipush 255
if_icmple 20
17: new java.lang.IllegalArgumentException
dup
ldc "Cannot create an array type descriptor with more than %d dimensions"
iconst_1
anewarray java.lang.Object
dup
iconst_0
18: sipush 255
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
19: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
20: StackMap locals:
StackMap stack:
iinc 5 1
21: iconst_0
istore 3
22: goto 24
23: StackMap locals:
StackMap stack:
iconst_0
ireturn
24: StackMap locals:
StackMap stack:
iload 5
iload 2
if_icmplt 3
25: iconst_0
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 descriptor Ljava/lang/String;
0 26 1 start I
0 26 2 end I
0 26 3 voidOK Z
1 26 4 arrayDim I
2 26 5 index I
8 15 6 indexOfSemi I
10 14 7 unqualifiedName Ljava/lang/String;
11 14 8 legal Z
MethodParameters:
Name Flags
descriptor
start
end
voidOK
static boolean verifyUnqualifiedClassName(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 11
2: StackMap locals: int
StackMap stack:
aload 0
iload 1
invokevirtual java.lang.String.charAt:(I)C
istore 2
start local 2 3: iload 2
sipush 128
if_icmpge 9
4: iload 2
bipush 46
if_icmpeq 5
iload 2
bipush 59
if_icmpeq 5
iload 2
bipush 91
if_icmpne 6
5: StackMap locals: int
StackMap stack:
iconst_0
ireturn
6: StackMap locals:
StackMap stack:
iload 2
bipush 47
if_icmpne 10
7: iload 1
ifeq 8
iload 1
iconst_1
iadd
aload 0
invokevirtual java.lang.String.length:()I
if_icmpge 8
aload 0
iload 1
iconst_1
iadd
invokevirtual java.lang.String.charAt:(I)C
bipush 47
if_icmpne 10
8: StackMap locals:
StackMap stack:
iconst_0
ireturn
9: StackMap locals:
StackMap stack:
iinc 1 1
end local 2 10: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
11: iload 1
aload 0
invokevirtual java.lang.String.length:()I
if_icmplt 2
end local 1 12: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 name Ljava/lang/String;
1 12 1 index I
3 10 2 ch C
MethodParameters:
Name Flags
name
}
SourceFile: "ConstantUtils.java"