final class com.oracle.truffle.llvm.CXXDemangler
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.llvm.CXXDemangler
super_class: java.lang.Object
{
private static final java.lang.String NAMESPACE_PREFIX;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "_ZN"
private static final int NAMESPACE_PREFIX_LEN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String SULONG_NAMESPACE_PREFIX;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "___sulong_import_"
private static final java.lang.String SULONG_BASE64_NAMESPACE_SUFFIX;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "base64"
private static final java.lang.String SULONG_BASE64_NAMESPACE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "___sulong_import_base64"
private int idx;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/llvm/CXXDemangler;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic com.oracle.truffle.llvm.CXXDemangler.$assertionsDisabled:Z
3: ldc "_ZN"
invokevirtual java.lang.String.length:()I
putstatic com.oracle.truffle.llvm.CXXDemangler.NAMESPACE_PREFIX_LEN:I
4: return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 1
ldc "_ZN"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 3
2: new com.oracle.truffle.llvm.runtime.except.LLVMLinkerException
dup
new java.lang.StringBuilder
dup
ldc "Not a mangled namespace: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial com.oracle.truffle.llvm.runtime.except.LLVMLinkerException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: com.oracle.truffle.llvm.CXXDemangler java.lang.String
StackMap stack:
aload 0
getstatic com.oracle.truffle.llvm.CXXDemangler.NAMESPACE_PREFIX_LEN:I
putfield com.oracle.truffle.llvm.CXXDemangler.idx:I
4: aload 0
aload 1
putfield com.oracle.truffle.llvm.CXXDemangler.name:Ljava/lang/String;
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/llvm/CXXDemangler;
0 6 1 name Ljava/lang/String;
MethodParameters:
Name Flags
name
private int parseNumber();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=5, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.llvm.CXXDemangler.idx:I
istore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 10
3: StackMap locals: int int
StackMap stack:
aload 0
getfield com.oracle.truffle.llvm.CXXDemangler.name:Ljava/lang/String;
aload 0
getfield com.oracle.truffle.llvm.CXXDemangler.idx:I
invokevirtual java.lang.String.charAt:(I)C
istore 3
start local 3 4: iload 3
bipush 48
if_icmplt 9
iload 3
bipush 57
if_icmpgt 9
5: iload 3
bipush 48
isub
istore 4
start local 4 6: iload 2
bipush 10
imul
iload 4
iadd
istore 2
7: aload 0
dup
getfield com.oracle.truffle.llvm.CXXDemangler.idx:I
iconst_1
iadd
putfield com.oracle.truffle.llvm.CXXDemangler.idx:I
end local 4 8: goto 10
9: StackMap locals: int
StackMap stack:
iload 2
ireturn
end local 3 10: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.llvm.CXXDemangler.idx:I
aload 0
getfield com.oracle.truffle.llvm.CXXDemangler.name:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
if_icmplt 3
11: new com.oracle.truffle.llvm.runtime.except.LLVMLinkerException
dup
ldc "Premature end of name string: %s (%d)"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.oracle.truffle.llvm.CXXDemangler.name:Ljava/lang/String;
aastore
dup
iconst_1
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial com.oracle.truffle.llvm.runtime.except.LLVMLinkerException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/llvm/CXXDemangler;
1 12 1 startIdx I
2 12 2 libnameLength I
4 10 3 c C
6 8 4 d I
private java.util.ArrayList<java.lang.String> decode();
descriptor: ()Ljava/util/ArrayList;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=4, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: goto 11
2: StackMap locals: java.util.ArrayList
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.llvm.CXXDemangler.parseNumber:()I
istore 2
start local 2 3: iload 2
ifne 6
4: aload 1
aload 0
getfield com.oracle.truffle.llvm.CXXDemangler.name:Ljava/lang/String;
aload 0
getfield com.oracle.truffle.llvm.CXXDemangler.idx:I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
5: aload 1
areturn
6: StackMap locals: int
StackMap stack:
aload 0
getfield com.oracle.truffle.llvm.CXXDemangler.idx:I
iload 2
iadd
istore 3
start local 3 7: iload 3
aload 0
getfield com.oracle.truffle.llvm.CXXDemangler.name:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
if_icmplt 9
8: new com.oracle.truffle.llvm.runtime.except.LLVMLinkerException
dup
ldc "Premature end of name string: %s (%d)"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.oracle.truffle.llvm.CXXDemangler.name:Ljava/lang/String;
aastore
dup
iconst_1
aload 0
getfield com.oracle.truffle.llvm.CXXDemangler.idx:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial com.oracle.truffle.llvm.runtime.except.LLVMLinkerException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals: int
StackMap stack:
aload 1
aload 0
getfield com.oracle.truffle.llvm.CXXDemangler.name:Ljava/lang/String;
aload 0
getfield com.oracle.truffle.llvm.CXXDemangler.idx:I
iload 3
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
10: aload 0
iload 3
putfield com.oracle.truffle.llvm.CXXDemangler.idx:I
end local 3 end local 2 11: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.llvm.CXXDemangler.idx:I
aload 0
getfield com.oracle.truffle.llvm.CXXDemangler.name:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
if_icmplt 2
12: new com.oracle.truffle.llvm.runtime.except.LLVMLinkerException
dup
ldc "Unterminated name %s (%d)"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.oracle.truffle.llvm.CXXDemangler.name:Ljava/lang/String;
aastore
dup
iconst_1
aload 0
getfield com.oracle.truffle.llvm.CXXDemangler.idx:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial com.oracle.truffle.llvm.runtime.except.LLVMLinkerException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/oracle/truffle/llvm/CXXDemangler;
1 13 1 namespaces Ljava/util/ArrayList<Ljava/lang/String;>;
3 11 2 length I
7 11 3 newIdx I
Signature: ()Ljava/util/ArrayList<Ljava/lang/String;>;
static boolean isRenamedNamespaceSymbol(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc "_ZN"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 1
aload 0
ldc "___sulong_import_"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 name Ljava/lang/String;
MethodParameters:
Name Flags
name
static java.util.ArrayList<java.lang.String> decodeNamespace(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/ArrayList;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new com.oracle.truffle.llvm.CXXDemangler
dup
aload 0
invokespecial com.oracle.truffle.llvm.CXXDemangler.<init>:(Ljava/lang/String;)V
invokevirtual com.oracle.truffle.llvm.CXXDemangler.decode:()Ljava/util/ArrayList;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 name Ljava/lang/String;
Signature: (Ljava/lang/String;)Ljava/util/ArrayList<Ljava/lang/String;>;
MethodParameters:
Name Flags
name
static java.lang.String getAndRemoveLibraryName(java.util.ArrayList<java.lang.String>);
descriptor: (Ljava/util/ArrayList;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=6, args_size=1
start local 0 0: aload 0
invokevirtual java.util.ArrayList.size:()I
iconst_1
isub
istore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 16
3: StackMap locals: int int
StackMap stack:
aload 0
iload 2
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 4: aload 3
ldc "___sulong_import_"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 15
5: iload 2
iconst_1
iadd
istore 4
start local 4 6: iload 4
iload 1
if_icmplt 8
7: new com.oracle.truffle.llvm.runtime.except.LLVMLinkerException
dup
ldc "No library name to decode: "
iconst_1
anewarray java.lang.Object
dup
iconst_0
ldc "::"
aload 0
invokestatic java.lang.String.join:(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial com.oracle.truffle.llvm.runtime.except.LLVMLinkerException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals: java.lang.String int
StackMap stack:
aload 0
iload 4
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.lang.String
astore 5
start local 5 9: aload 0
iload 2
aconst_null
invokevirtual java.util.ArrayList.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
10: aload 0
iload 4
aconst_null
invokevirtual java.util.ArrayList.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
11: aload 3
ldc "___sulong_import_"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 13
12: aload 5
areturn
13: StackMap locals: java.lang.String
StackMap stack:
aload 3
ldc "___sulong_import_base64"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 15
14: new java.lang.String
dup
aload 5
invokestatic com.oracle.truffle.llvm.CXXDemangler.decodeBase64:(Ljava/lang/CharSequence;)[B
invokespecial java.lang.String.<init>:([B)V
areturn
end local 5 end local 4 end local 3 15: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
16: iload 2
iload 1
if_icmplt 3
end local 2 17: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 namespaces Ljava/util/ArrayList<Ljava/lang/String;>;
1 18 1 numNamespaces I
2 17 2 i I
4 15 3 namespace Ljava/lang/String;
6 15 4 libIdx I
9 15 5 rawLibname Ljava/lang/String;
Signature: (Ljava/util/ArrayList<Ljava/lang/String;>;)Ljava/lang/String;
MethodParameters:
Name Flags
namespaces
static byte[] decodeBase64(java.lang.CharSequence);
descriptor: (Ljava/lang/CharSequence;)[B
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
invokeinterface java.lang.CharSequence.length:()I
newarray 8
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 8
3: StackMap locals: byte[] int
StackMap stack:
aload 0
iload 2
invokeinterface java.lang.CharSequence.charAt:(I)C
istore 3
start local 3 4: getstatic com.oracle.truffle.llvm.CXXDemangler.$assertionsDisabled:Z
ifne 6
iload 3
iflt 5
iload 3
bipush 127
if_icmple 6
StackMap locals: int
StackMap stack:
5: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
aload 1
iload 2
iload 3
i2b
bastore
end local 3 7: iinc 2 1
StackMap locals:
StackMap stack:
8: iload 2
aload 1
arraylength
if_icmplt 3
end local 2 9: invokestatic java.util.Base64.getDecoder:()Ljava/util/Base64$Decoder;
aload 1
invokevirtual java.util.Base64$Decoder.decode:([B)[B
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 charSequence Ljava/lang/CharSequence;
1 10 1 result [B
2 9 2 i I
4 7 3 ch C
MethodParameters:
Name Flags
charSequence
static java.lang.String encodeNamespace(java.util.ArrayList<java.lang.String>);
descriptor: (Ljava/util/ArrayList;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=5, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1
start local 1 1: aload 1
ldc "_ZN"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
2: aload 0
invokevirtual java.util.ArrayList.size:()I
iconst_1
isub
istore 2
start local 2 3: iconst_0
istore 3
start local 3 4: goto 10
5: StackMap locals: java.lang.StringBuilder int int
StackMap stack:
aload 0
iload 3
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 6: aload 4
ifnull 9
7: aload 1
aload 4
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
8: aload 1
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 4 9: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
10: iload 3
iload 2
if_icmplt 5
end local 3 11: aload 1
aload 0
iload 2
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 namespaces Ljava/util/ArrayList<Ljava/lang/String;>;
1 13 1 sb Ljava/lang/StringBuilder;
3 13 2 numNamespaces I
4 11 3 i I
6 9 4 namespace Ljava/lang/String;
Signature: (Ljava/util/ArrayList<Ljava/lang/String;>;)Ljava/lang/String;
MethodParameters:
Name Flags
namespaces
}
SourceFile: "CXXDemangler.java"
InnerClasses:
public Decoder = java.util.Base64$Decoder of java.util.Base64