public class com.sun.tools.jdi.JNITypeParser
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.sun.tools.jdi.JNITypeParser
super_class: java.lang.Object
{
static final char SIGNATURE_ENDCLASS;
descriptor: C
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 59
static final char SIGNATURE_FUNC;
descriptor: C
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 40
static final char SIGNATURE_ENDFUNC;
descriptor: C
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 41
private java.lang.String signature;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.util.List<java.lang.String> typeNameList;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Ljava/lang/String;>;
private java.util.List<java.lang.String> signatureList;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Ljava/lang/String;>;
private int currentIndex;
descriptor: I
flags: (0x0002) ACC_PRIVATE
void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.sun.tools.jdi.JNITypeParser.signature:Ljava/lang/String;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/tools/jdi/JNITypeParser;
0 3 1 signature Ljava/lang/String;
MethodParameters:
Name Flags
signature
static java.lang.String typeNameToSignature(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: new java.lang.StringBuffer
dup
invokespecial java.lang.StringBuffer.<init>:()V
astore 1
start local 1 1: aload 0
bipush 91
invokevirtual java.lang.String.indexOf:(I)I
istore 2
start local 2 2: iload 2
istore 3
start local 3 3: goto 6
4: StackMap locals: java.lang.StringBuffer int int
StackMap stack:
aload 1
bipush 91
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
5: aload 0
bipush 91
iload 3
iconst_1
iadd
invokevirtual java.lang.String.indexOf:(II)I
istore 3
6: StackMap locals:
StackMap stack:
iload 3
iconst_m1
if_icmpne 4
7: iload 2
iconst_m1
if_icmpeq 9
8: aload 0
iconst_0
iload 2
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 0
9: StackMap locals:
StackMap stack:
aload 0
ldc "boolean"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 12
10: aload 1
bipush 90
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
11: goto 36
StackMap locals:
StackMap stack:
12: aload 0
ldc "byte"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 15
13: aload 1
bipush 66
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
14: goto 36
StackMap locals:
StackMap stack:
15: aload 0
ldc "char"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 18
16: aload 1
bipush 67
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
17: goto 36
StackMap locals:
StackMap stack:
18: aload 0
ldc "short"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 21
19: aload 1
bipush 83
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
20: goto 36
StackMap locals:
StackMap stack:
21: aload 0
ldc "int"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 24
22: aload 1
bipush 73
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
23: goto 36
StackMap locals:
StackMap stack:
24: aload 0
ldc "long"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 27
25: aload 1
bipush 74
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
26: goto 36
StackMap locals:
StackMap stack:
27: aload 0
ldc "float"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 30
28: aload 1
bipush 70
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
29: goto 36
StackMap locals:
StackMap stack:
30: aload 0
ldc "double"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 33
31: aload 1
bipush 68
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
32: goto 36
33: StackMap locals:
StackMap stack:
aload 1
bipush 76
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
34: aload 1
aload 0
bipush 46
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
35: aload 1
bipush 59
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
36: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 signature Ljava/lang/String;
1 37 1 buffer Ljava/lang/StringBuffer;
2 37 2 firstIndex I
3 37 3 index I
MethodParameters:
Name Flags
signature
java.lang.String typeName();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.sun.tools.jdi.JNITypeParser.typeNameList:()Ljava/util/List;
aload 0
invokevirtual com.sun.tools.jdi.JNITypeParser.typeNameList:()Ljava/util/List;
invokeinterface java.util.List.size:()I
iconst_1
isub
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/jdi/JNITypeParser;
java.util.List<java.lang.String> argumentTypeNames();
descriptor: ()Ljava/util/List;
flags: (0x0000)
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.sun.tools.jdi.JNITypeParser.typeNameList:()Ljava/util/List;
iconst_0
aload 0
invokevirtual com.sun.tools.jdi.JNITypeParser.typeNameList:()Ljava/util/List;
invokeinterface java.util.List.size:()I
iconst_1
isub
invokeinterface java.util.List.subList:(II)Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/jdi/JNITypeParser;
Signature: ()Ljava/util/List<Ljava/lang/String;>;
java.lang.String signature();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.sun.tools.jdi.JNITypeParser.signatureList:()Ljava/util/List;
aload 0
invokevirtual com.sun.tools.jdi.JNITypeParser.signatureList:()Ljava/util/List;
invokeinterface java.util.List.size:()I
iconst_1
isub
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/jdi/JNITypeParser;
java.util.List<java.lang.String> argumentSignatures();
descriptor: ()Ljava/util/List;
flags: (0x0000)
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.sun.tools.jdi.JNITypeParser.signatureList:()Ljava/util/List;
iconst_0
aload 0
invokevirtual com.sun.tools.jdi.JNITypeParser.signatureList:()Ljava/util/List;
invokeinterface java.util.List.size:()I
iconst_1
isub
invokeinterface java.util.List.subList:(II)Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/jdi/JNITypeParser;
Signature: ()Ljava/util/List<Ljava/lang/String;>;
int dimensionCount();
descriptor: ()I
flags: (0x0000)
Code:
stack=2, locals=3, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
invokevirtual com.sun.tools.jdi.JNITypeParser.signature:()Ljava/lang/String;
astore 2
start local 2 2: goto 4
3: StackMap locals: int java.lang.String
StackMap stack:
iinc 1 1
4: StackMap locals:
StackMap stack:
aload 2
iload 1
invokevirtual java.lang.String.charAt:(I)C
bipush 91
if_icmpeq 3
5: iload 1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/tools/jdi/JNITypeParser;
1 6 1 count I
2 6 2 signature Ljava/lang/String;
java.lang.String componentSignature(int);
descriptor: (I)Ljava/lang/String;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.sun.tools.jdi.JNITypeParser.signature:()Ljava/lang/String;
iload 1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/jdi/JNITypeParser;
0 1 1 level I
MethodParameters:
Name Flags
level
private synchronized java.util.List<java.lang.String> signatureList();
descriptor: ()Ljava/util/List;
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.jdi.JNITypeParser.signatureList:Ljava/util/List;
ifnonnull 11
1: aload 0
new java.util.ArrayList
dup
bipush 10
invokespecial java.util.ArrayList.<init>:(I)V
putfield com.sun.tools.jdi.JNITypeParser.signatureList:Ljava/util/List;
2: aload 0
iconst_0
putfield com.sun.tools.jdi.JNITypeParser.currentIndex:I
3: goto 6
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.tools.jdi.JNITypeParser.nextSignature:()Ljava/lang/String;
astore 1
start local 1 5: aload 0
getfield com.sun.tools.jdi.JNITypeParser.signatureList:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 1 6: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.jdi.JNITypeParser.currentIndex:I
aload 0
getfield com.sun.tools.jdi.JNITypeParser.signature:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
if_icmplt 4
7: aload 0
getfield com.sun.tools.jdi.JNITypeParser.signatureList:Ljava/util/List;
invokeinterface java.util.List.size:()I
ifne 11
8: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Invalid JNI signature '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
9: aload 0
getfield com.sun.tools.jdi.JNITypeParser.signature:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
10: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.jdi.JNITypeParser.signatureList:Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/sun/tools/jdi/JNITypeParser;
5 6 1 elem Ljava/lang/String;
Signature: ()Ljava/util/List<Ljava/lang/String;>;
private synchronized java.util.List<java.lang.String> typeNameList();
descriptor: ()Ljava/util/List;
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.jdi.JNITypeParser.typeNameList:Ljava/util/List;
ifnonnull 11
1: aload 0
new java.util.ArrayList
dup
bipush 10
invokespecial java.util.ArrayList.<init>:(I)V
putfield com.sun.tools.jdi.JNITypeParser.typeNameList:Ljava/util/List;
2: aload 0
iconst_0
putfield com.sun.tools.jdi.JNITypeParser.currentIndex:I
3: goto 6
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.tools.jdi.JNITypeParser.nextTypeName:()Ljava/lang/String;
astore 1
start local 1 5: aload 0
getfield com.sun.tools.jdi.JNITypeParser.typeNameList:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 1 6: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.jdi.JNITypeParser.currentIndex:I
aload 0
getfield com.sun.tools.jdi.JNITypeParser.signature:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
if_icmplt 4
7: aload 0
getfield com.sun.tools.jdi.JNITypeParser.typeNameList:Ljava/util/List;
invokeinterface java.util.List.size:()I
ifne 11
8: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Invalid JNI signature '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
9: aload 0
getfield com.sun.tools.jdi.JNITypeParser.signature:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
10: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.jdi.JNITypeParser.typeNameList:Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/sun/tools/jdi/JNITypeParser;
5 6 1 elem Ljava/lang/String;
Signature: ()Ljava/util/List<Ljava/lang/String;>;
private java.lang.String nextSignature();
descriptor: ()Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.jdi.JNITypeParser.signature:Ljava/lang/String;
aload 0
dup
getfield com.sun.tools.jdi.JNITypeParser.currentIndex:I
dup_x1
iconst_1
iadd
putfield com.sun.tools.jdi.JNITypeParser.currentIndex:I
invokevirtual java.lang.String.charAt:(I)C
istore 1
start local 1 1: iload 1
lookupswitch { // 13
40: 12
41: 12
66: 11
67: 11
68: 11
70: 11
73: 11
74: 11
76: 3
83: 11
86: 11
90: 11
91: 2
default: 13
}
2: StackMap locals: int
StackMap stack:
new java.lang.StringBuilder
dup
iload 1
invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual com.sun.tools.jdi.JNITypeParser.nextSignature:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
3: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.jdi.JNITypeParser.signature:Ljava/lang/String;
bipush 59
4: aload 0
getfield com.sun.tools.jdi.JNITypeParser.currentIndex:I
5: invokevirtual java.lang.String.indexOf:(II)I
istore 2
start local 2 6: aload 0
getfield com.sun.tools.jdi.JNITypeParser.signature:Ljava/lang/String;
aload 0
getfield com.sun.tools.jdi.JNITypeParser.currentIndex:I
iconst_1
isub
7: iload 2
iconst_1
iadd
8: invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 3
start local 3 9: aload 0
iload 2
iconst_1
iadd
putfield com.sun.tools.jdi.JNITypeParser.currentIndex:I
10: aload 3
areturn
end local 3 end local 2 11: StackMap locals:
StackMap stack:
iload 1
invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
areturn
12: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.tools.jdi.JNITypeParser.nextSignature:()Ljava/lang/String;
areturn
13: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
14: new java.lang.StringBuilder
dup
ldc "Invalid JNI signature character '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
15: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/sun/tools/jdi/JNITypeParser;
1 16 1 key C
6 11 2 endClass I
9 11 3 retVal Ljava/lang/String;
private java.lang.String nextTypeName();
descriptor: ()Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.jdi.JNITypeParser.signature:Ljava/lang/String;
aload 0
dup
getfield com.sun.tools.jdi.JNITypeParser.currentIndex:I
dup_x1
iconst_1
iadd
putfield com.sun.tools.jdi.JNITypeParser.currentIndex:I
invokevirtual java.lang.String.charAt:(I)C
istore 1
start local 1 1: iload 1
lookupswitch { // 13
40: 21
41: 21
66: 3
67: 4
68: 15
70: 14
73: 16
74: 17
76: 5
83: 18
86: 19
90: 20
91: 2
default: 22
}
2: StackMap locals: int
StackMap stack:
new java.lang.StringBuilder
dup
aload 0
invokevirtual com.sun.tools.jdi.JNITypeParser.nextTypeName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "[]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
3: StackMap locals:
StackMap stack:
ldc "byte"
areturn
4: StackMap locals:
StackMap stack:
ldc "char"
areturn
5: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.jdi.JNITypeParser.signature:Ljava/lang/String;
bipush 59
6: aload 0
getfield com.sun.tools.jdi.JNITypeParser.currentIndex:I
7: invokevirtual java.lang.String.indexOf:(II)I
istore 2
start local 2 8: aload 0
getfield com.sun.tools.jdi.JNITypeParser.signature:Ljava/lang/String;
aload 0
getfield com.sun.tools.jdi.JNITypeParser.currentIndex:I
9: iload 2
10: invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 3
start local 3 11: aload 3
bipush 47
bipush 46
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
astore 3
12: aload 0
iload 2
iconst_1
iadd
putfield com.sun.tools.jdi.JNITypeParser.currentIndex:I
13: aload 3
areturn
end local 3 end local 2 14: StackMap locals:
StackMap stack:
ldc "float"
areturn
15: StackMap locals:
StackMap stack:
ldc "double"
areturn
16: StackMap locals:
StackMap stack:
ldc "int"
areturn
17: StackMap locals:
StackMap stack:
ldc "long"
areturn
18: StackMap locals:
StackMap stack:
ldc "short"
areturn
19: StackMap locals:
StackMap stack:
ldc "void"
areturn
20: StackMap locals:
StackMap stack:
ldc "boolean"
areturn
21: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.tools.jdi.JNITypeParser.nextTypeName:()Ljava/lang/String;
areturn
22: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
23: new java.lang.StringBuilder
dup
ldc "Invalid JNI signature character '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
24: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lcom/sun/tools/jdi/JNITypeParser;
1 25 1 key C
8 14 2 endClass I
11 14 3 retVal Ljava/lang/String;
}
SourceFile: "JNITypeParser.java"