public final class jdk.internal.vm.compiler.libgraal.OptionsEncoder
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: jdk.internal.vm.compiler.libgraal.OptionsEncoder
super_class: java.lang.Object
{
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/vm/compiler/libgraal/OptionsEncoder;
public static boolean isValueSupported(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
astore 1
start local 1 3: aload 1
ldc Ljava/lang/Boolean;
if_acmpeq 14
4: aload 1
ldc Ljava/lang/Byte;
if_acmpeq 14
5: aload 1
ldc Ljava/lang/Short;
if_acmpeq 14
6: aload 1
ldc Ljava/lang/Character;
if_acmpeq 14
7: aload 1
ldc Ljava/lang/Integer;
if_acmpeq 14
8: aload 1
ldc Ljava/lang/Long;
if_acmpeq 14
9: aload 1
ldc Ljava/lang/Float;
if_acmpeq 14
10: aload 1
ldc Ljava/lang/Double;
if_acmpeq 14
11: aload 1
ldc Ljava/lang/String;
if_acmpeq 14
12: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.isEnum:()Z
ifne 14
13: iconst_0
ireturn
StackMap locals: java.lang.Class
StackMap stack:
14: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 value Ljava/lang/Object;
3 15 1 valueClass Ljava/lang/Class<*>;
MethodParameters:
Name Flags
value
public static byte[] encode(java.util.Map<java.lang.String, java.lang.Object>);
descriptor: (Ljava/util/Map;)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=12, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
astore 3
start local 3 2: aconst_null
astore 4
aconst_null
astore 5
3: new java.io.DataOutputStream
dup
aload 3
invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 6
start local 6 4: aload 6
aload 0
invokeinterface java.util.Map.size:()I
invokevirtual java.io.DataOutputStream.writeInt:(I)V
5: aload 0
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 8
goto 52
StackMap locals: java.util.Map java.lang.Throwable java.lang.Throwable java.io.ByteArrayOutputStream java.lang.Throwable java.lang.Throwable java.io.DataOutputStream top java.util.Iterator
StackMap stack:
6: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 7
start local 7 7: aload 7
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
astore 9
start local 9 8: aload 6
aload 9
invokevirtual java.io.DataOutputStream.writeUTF:(Ljava/lang/String;)V
9: aload 7
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
astore 10
start local 10 10: aload 10
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
astore 11
start local 11 11: aload 11
ldc Ljava/lang/Boolean;
if_acmpne 15
12: aload 6
bipush 90
invokevirtual java.io.DataOutputStream.writeByte:(I)V
13: aload 6
aload 10
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
invokevirtual java.io.DataOutputStream.writeBoolean:(Z)V
14: goto 52
StackMap locals: java.util.Map java.lang.Throwable java.lang.Throwable java.io.ByteArrayOutputStream java.lang.Throwable java.lang.Throwable java.io.DataOutputStream java.util.Map$Entry java.util.Iterator java.lang.String java.lang.Object java.lang.Class
StackMap stack:
15: aload 11
ldc Ljava/lang/Byte;
if_acmpne 19
16: aload 6
bipush 66
invokevirtual java.io.DataOutputStream.writeByte:(I)V
17: aload 6
aload 10
checkcast java.lang.Byte
invokevirtual java.lang.Byte.byteValue:()B
invokevirtual java.io.DataOutputStream.writeByte:(I)V
18: goto 52
StackMap locals:
StackMap stack:
19: aload 11
ldc Ljava/lang/Short;
if_acmpne 23
20: aload 6
bipush 83
invokevirtual java.io.DataOutputStream.writeByte:(I)V
21: aload 6
aload 10
checkcast java.lang.Short
invokevirtual java.lang.Short.shortValue:()S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
22: goto 52
StackMap locals:
StackMap stack:
23: aload 11
ldc Ljava/lang/Character;
if_acmpne 27
24: aload 6
bipush 67
invokevirtual java.io.DataOutputStream.writeByte:(I)V
25: aload 6
aload 10
checkcast java.lang.Character
invokevirtual java.lang.Character.charValue:()C
invokevirtual java.io.DataOutputStream.writeChar:(I)V
26: goto 52
StackMap locals:
StackMap stack:
27: aload 11
ldc Ljava/lang/Integer;
if_acmpne 31
28: aload 6
bipush 73
invokevirtual java.io.DataOutputStream.writeByte:(I)V
29: aload 6
aload 10
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
invokevirtual java.io.DataOutputStream.writeInt:(I)V
30: goto 52
StackMap locals:
StackMap stack:
31: aload 11
ldc Ljava/lang/Long;
if_acmpne 35
32: aload 6
bipush 74
invokevirtual java.io.DataOutputStream.writeByte:(I)V
33: aload 6
aload 10
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
invokevirtual java.io.DataOutputStream.writeLong:(J)V
34: goto 52
StackMap locals:
StackMap stack:
35: aload 11
ldc Ljava/lang/Float;
if_acmpne 39
36: aload 6
bipush 70
invokevirtual java.io.DataOutputStream.writeByte:(I)V
37: aload 6
aload 10
checkcast java.lang.Float
invokevirtual java.lang.Float.floatValue:()F
invokevirtual java.io.DataOutputStream.writeFloat:(F)V
38: goto 52
StackMap locals:
StackMap stack:
39: aload 11
ldc Ljava/lang/Double;
if_acmpne 43
40: aload 6
bipush 68
invokevirtual java.io.DataOutputStream.writeByte:(I)V
41: aload 6
aload 10
checkcast java.lang.Double
invokevirtual java.lang.Double.doubleValue:()D
invokevirtual java.io.DataOutputStream.writeDouble:(D)V
42: goto 52
StackMap locals:
StackMap stack:
43: aload 11
ldc Ljava/lang/String;
if_acmpne 47
44: aload 6
bipush 85
invokevirtual java.io.DataOutputStream.writeByte:(I)V
45: aload 6
aload 10
checkcast java.lang.String
invokevirtual java.io.DataOutputStream.writeUTF:(Ljava/lang/String;)V
46: goto 52
StackMap locals:
StackMap stack:
47: aload 11
invokevirtual java.lang.Class.isEnum:()Z
ifeq 51
48: aload 6
bipush 85
invokevirtual java.io.DataOutputStream.writeByte:(I)V
49: aload 6
aload 10
checkcast java.lang.Enum
invokevirtual java.lang.Enum.name:()Ljava/lang/String;
invokevirtual java.io.DataOutputStream.writeUTF:(Ljava/lang/String;)V
50: goto 52
51: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "Key: %s, Value: %s, Value type: %s"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 9
aastore
dup
iconst_1
aload 10
aastore
dup
iconst_2
aload 11
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 11 end local 10 end local 9 end local 7 52: StackMap locals: java.util.Map java.lang.Throwable java.lang.Throwable java.io.ByteArrayOutputStream java.lang.Throwable java.lang.Throwable java.io.DataOutputStream top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
53: aload 6
ifnull 59
aload 6
invokevirtual java.io.DataOutputStream.close:()V
goto 59
StackMap locals: java.util.Map java.lang.Throwable java.lang.Throwable java.io.ByteArrayOutputStream java.lang.Throwable java.lang.Throwable java.io.DataOutputStream
StackMap stack: java.lang.Throwable
54: astore 4
aload 6
ifnull 55
aload 6
invokevirtual java.io.DataOutputStream.close:()V
end local 6 StackMap locals:
StackMap stack:
55: aload 4
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
56: astore 5
aload 4
ifnonnull 57
aload 5
astore 4
goto 58
StackMap locals:
StackMap stack:
57: aload 4
aload 5
if_acmpeq 58
aload 4
aload 5
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
58: aload 4
athrow
59: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
60: aload 3
ifnull 61
aload 3
invokevirtual java.io.ByteArrayOutputStream.close:()V
61: StackMap locals:
StackMap stack: byte[]
areturn
StackMap locals:
StackMap stack: java.lang.Throwable
62: astore 1
63: aload 3
ifnull 64
aload 3
invokevirtual java.io.ByteArrayOutputStream.close:()V
end local 3 StackMap locals:
StackMap stack:
64: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
65: astore 2
aload 1
ifnonnull 66
aload 2
astore 1
goto 67
StackMap locals:
StackMap stack:
66: aload 1
aload 2
if_acmpeq 67
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
67: aload 1
athrow
StackMap locals: java.util.Map
StackMap stack: java.io.IOException
68: astore 1
start local 1 69: new java.lang.IllegalArgumentException
dup
aload 1
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 70 0 options Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
2 64 3 baout Ljava/io/ByteArrayOutputStream;
4 55 6 out Ljava/io/DataOutputStream;
7 52 7 e Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Object;>;
8 52 9 key Ljava/lang/String;
10 52 10 value Ljava/lang/Object;
11 52 11 valueClz Ljava/lang/Class<*>;
69 70 1 ioe Ljava/io/IOException;
Exception table:
from to target type
4 53 54 any
3 56 56 any
2 60 62 any
1 61 65 any
62 65 65 any
0 61 68 Class java.io.IOException
62 68 68 Class java.io.IOException
Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)[B
MethodParameters:
Name Flags
options final
public static java.util.Map<java.lang.String, java.lang.Object> decode(byte[]);
descriptor: ([B)Ljava/util/Map;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=10, args_size=1
start local 0 0: new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
astore 1
start local 1 1: aconst_null
astore 2
aconst_null
astore 3
2: new java.io.DataInputStream
dup
new java.io.ByteArrayInputStream
dup
aload 0
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
astore 4
start local 4 3: aload 4
invokevirtual java.io.DataInputStream.readInt:()I
istore 5
start local 5 4: iconst_0
istore 6
start local 6 5: goto 30
6: StackMap locals: byte[] java.util.Map java.lang.Throwable java.lang.Throwable java.io.DataInputStream int int
StackMap stack:
aload 4
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 7
start local 7 7: aload 4
invokevirtual java.io.DataInputStream.readByte:()B
istore 9
start local 9 8: iload 9
lookupswitch { // 9
66: 11
67: 15
68: 23
70: 21
73: 17
74: 19
83: 13
85: 25
90: 9
default: 27
}
9: StackMap locals: byte[] java.util.Map java.lang.Throwable java.lang.Throwable java.io.DataInputStream int int java.lang.String top int
StackMap stack:
aload 4
invokevirtual java.io.DataInputStream.readBoolean:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
astore 8
start local 8 10: goto 28
end local 8 11: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.io.DataInputStream.readByte:()B
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
astore 8
start local 8 12: goto 28
end local 8 13: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.io.DataInputStream.readShort:()S
invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
astore 8
start local 8 14: goto 28
end local 8 15: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.io.DataInputStream.readChar:()C
invokestatic java.lang.Character.valueOf:(C)Ljava/lang/Character;
astore 8
start local 8 16: goto 28
end local 8 17: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.io.DataInputStream.readInt:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
astore 8
start local 8 18: goto 28
end local 8 19: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.io.DataInputStream.readLong:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
astore 8
start local 8 20: goto 28
end local 8 21: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.io.DataInputStream.readFloat:()F
invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
astore 8
start local 8 22: goto 28
end local 8 23: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.io.DataInputStream.readDouble:()D
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
astore 8
start local 8 24: goto 28
end local 8 25: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 8
start local 8 26: goto 28
end local 8 27: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported value type: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 9
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
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
start local 8 28: StackMap locals: byte[] java.util.Map java.lang.Throwable java.lang.Throwable java.io.DataInputStream int int java.lang.String java.lang.Object int
StackMap stack:
aload 1
aload 7
aload 8
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 9 end local 8 end local 7 29: iinc 6 1
StackMap locals:
StackMap stack:
30: iload 6
iload 5
if_icmplt 6
end local 6 31: aload 4
invokevirtual java.io.DataInputStream.available:()I
ifeq 33
32: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
aload 4
invokevirtual java.io.DataInputStream.available:()I
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " undecoded bytes"
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 5 33: StackMap locals:
StackMap stack:
aload 4
ifnull 41
aload 4
invokevirtual java.io.DataInputStream.close:()V
goto 41
StackMap locals:
StackMap stack: java.lang.Throwable
34: astore 2
aload 4
ifnull 35
aload 4
invokevirtual java.io.DataInputStream.close:()V
end local 4 StackMap locals:
StackMap stack:
35: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
36: astore 3
aload 2
ifnonnull 37
aload 3
astore 2
goto 38
StackMap locals:
StackMap stack:
37: aload 2
aload 3
if_acmpeq 38
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
38: aload 2
athrow
StackMap locals: byte[] java.util.Map
StackMap stack: java.io.IOException
39: astore 2
start local 2 40: new java.lang.IllegalArgumentException
dup
aload 2
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 41: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 input [B
1 42 1 res Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
3 35 4 in Ljava/io/DataInputStream;
4 33 5 size I
5 31 6 i I
7 29 7 key Ljava/lang/String;
10 11 8 value Ljava/lang/Object;
12 13 8 value Ljava/lang/Object;
14 15 8 value Ljava/lang/Object;
16 17 8 value Ljava/lang/Object;
18 19 8 value Ljava/lang/Object;
20 21 8 value Ljava/lang/Object;
22 23 8 value Ljava/lang/Object;
24 25 8 value Ljava/lang/Object;
26 27 8 value Ljava/lang/Object;
28 29 8 value Ljava/lang/Object;
8 29 9 type B
40 41 2 ioe Ljava/io/IOException;
Exception table:
from to target type
3 33 34 any
2 36 36 any
1 39 39 Class java.io.IOException
Signature: ([B)Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
MethodParameters:
Name Flags
input
}
SourceFile: "OptionsEncoder.java"
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map