public class com.oracle.objectfile.pecoff.PECoffSymtab extends com.oracle.objectfile.ObjectFile$Element implements com.oracle.objectfile.SymbolTable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.objectfile.pecoff.PECoffSymtab
super_class: com.oracle.objectfile.ObjectFile$Element
{
private java.util.SortedSet<com.oracle.objectfile.pecoff.PECoffSymtab$Entry> entries;
descriptor: Ljava/util/SortedSet;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/SortedSet<Lcom/oracle/objectfile/pecoff/PECoffSymtab$Entry;>;
private java.util.Map<java.lang.String, com.oracle.objectfile.pecoff.PECoffSymtab$Entry> entriesByName;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/lang/String;Lcom/oracle/objectfile/pecoff/PECoffSymtab$Entry;>;
private java.util.Map<com.oracle.objectfile.pecoff.PECoffSymtab$Entry, java.lang.Integer> entriesToIndex;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Lcom/oracle/objectfile/pecoff/PECoffSymtab$Entry;Ljava/lang/Integer;>;
private com.oracle.objectfile.pecoff.PECoffSymtabStruct symtabStruct;
descriptor: Lcom/oracle/objectfile/pecoff/PECoffSymtabStruct;
flags: (0x0002) ACC_PRIVATE
public com.oracle.objectfile.ElementImpl getImpl();
descriptor: ()Lcom/oracle/objectfile/ElementImpl;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/objectfile/pecoff/PECoffSymtab;
private static int compareEntries(com.oracle.objectfile.pecoff.PECoffSymtab$Entry, com.oracle.objectfile.pecoff.PECoffSymtab$Entry);
descriptor: (Lcom/oracle/objectfile/pecoff/PECoffSymtab$Entry;Lcom/oracle/objectfile/pecoff/PECoffSymtab$Entry;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtab$Entry.isNull:()Z
aload 1
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtab$Entry.isNull:()Z
invokestatic java.lang.Boolean.compare:(ZZ)I
ineg
istore 2
start local 2 1: iload 2
ifne 3
2: aload 0
getfield com.oracle.objectfile.pecoff.PECoffSymtab$Entry.symClass:I
aload 1
getfield com.oracle.objectfile.pecoff.PECoffSymtab$Entry.symClass:I
invokestatic java.lang.Integer.compare:(II)I
istore 2
3: StackMap locals: int
StackMap stack:
iload 2
ifne 5
4: aload 0
getfield com.oracle.objectfile.pecoff.PECoffSymtab$Entry.symType:I
aload 1
getfield com.oracle.objectfile.pecoff.PECoffSymtab$Entry.symType:I
invokestatic java.lang.Integer.compare:(II)I
istore 2
5: StackMap locals:
StackMap stack:
iload 2
ifne 7
6: aload 0
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtab$Entry.isDefined:()Z
aload 1
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtab$Entry.isDefined:()Z
invokestatic java.lang.Boolean.compare:(ZZ)I
istore 2
7: StackMap locals:
StackMap stack:
iload 2
ifne 9
aload 0
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtab$Entry.isDefined:()Z
ifeq 9
8: aload 0
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtab$Entry.getDefinedOffset:()J
aload 1
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtab$Entry.getDefinedOffset:()J
lsub
invokestatic java.lang.Math.toIntExact:(J)I
istore 2
9: StackMap locals:
StackMap stack:
iload 2
ifne 11
10: aload 0
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtab$Entry.getName:()Ljava/lang/String;
aload 1
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtab$Entry.getName:()Ljava/lang/String;
invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
ireturn
11: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 a Lcom/oracle/objectfile/pecoff/PECoffSymtab$Entry;
0 12 1 b Lcom/oracle/objectfile/pecoff/PECoffSymtab$Entry;
1 12 2 cmp I
MethodParameters:
Name Flags
a
b
public void <init>(com.oracle.objectfile.pecoff.PECoffObjectFile, java.lang.String);
descriptor: (Lcom/oracle/objectfile/pecoff/PECoffObjectFile;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
aload 2
invokespecial com.oracle.objectfile.ObjectFile$Element.<init>:(Lcom/oracle/objectfile/ObjectFile;Ljava/lang/String;)V
1: aload 0
new java.util.TreeSet
dup
invokedynamic compare()Ljava/util/Comparator;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)I
com/oracle/objectfile/pecoff/PECoffSymtab.compareEntries(Lcom/oracle/objectfile/pecoff/PECoffSymtab$Entry;Lcom/oracle/objectfile/pecoff/PECoffSymtab$Entry;)I (6)
(Lcom/oracle/objectfile/pecoff/PECoffSymtab$Entry;Lcom/oracle/objectfile/pecoff/PECoffSymtab$Entry;)I
invokespecial java.util.TreeSet.<init>:(Ljava/util/Comparator;)V
putfield com.oracle.objectfile.pecoff.PECoffSymtab.entries:Ljava/util/SortedSet;
2: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield com.oracle.objectfile.pecoff.PECoffSymtab.entriesByName:Ljava/util/Map;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/objectfile/pecoff/PECoffSymtab;
0 4 1 owner Lcom/oracle/objectfile/pecoff/PECoffObjectFile;
0 4 2 name Ljava/lang/String;
MethodParameters:
Name Flags
owner
name
private com.oracle.objectfile.pecoff.PECoffSymtabStruct getNativeSymtab();
descriptor: ()Lcom/oracle/objectfile/pecoff/PECoffSymtabStruct;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=8, args_size=1
start local 0 0: aload 0
getfield com.oracle.objectfile.pecoff.PECoffSymtab.symtabStruct:Lcom/oracle/objectfile/pecoff/PECoffSymtabStruct;
ifnull 2
1: aload 0
getfield com.oracle.objectfile.pecoff.PECoffSymtab.symtabStruct:Lcom/oracle/objectfile/pecoff/PECoffSymtabStruct;
areturn
2: StackMap locals:
StackMap stack:
aload 0
new com.oracle.objectfile.pecoff.PECoffSymtabStruct
dup
invokespecial com.oracle.objectfile.pecoff.PECoffSymtabStruct.<init>:()V
putfield com.oracle.objectfile.pecoff.PECoffSymtab.symtabStruct:Lcom/oracle/objectfile/pecoff/PECoffSymtabStruct;
3: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield com.oracle.objectfile.pecoff.PECoffSymtab.entriesToIndex:Ljava/util/Map;
4: iconst_0
istore 1
start local 1 5: aload 0
getfield com.oracle.objectfile.pecoff.PECoffSymtab.entries:Ljava/util/SortedSet;
invokeinterface java.util.SortedSet.iterator:()Ljava/util/Iterator;
astore 3
goto 21
StackMap locals: com.oracle.objectfile.pecoff.PECoffSymtab int top java.util.Iterator
StackMap stack:
6: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.objectfile.pecoff.PECoffSymtab$Entry
astore 2
start local 2 7: aload 2
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtab$Entry.getReferencedSection:()Lcom/oracle/objectfile/pecoff/PECoffObjectFile$PECoffSection;
astore 4
start local 4 8: aload 4
ifnonnull 9
iconst_m1
goto 10
StackMap locals: com.oracle.objectfile.pecoff.PECoffSymtab int com.oracle.objectfile.pecoff.PECoffSymtab$Entry java.util.Iterator com.oracle.objectfile.pecoff.PECoffObjectFile$PECoffSection
StackMap stack:
9: aload 4
invokevirtual com.oracle.objectfile.pecoff.PECoffObjectFile$PECoffSection.getSectionID:()I
StackMap locals:
StackMap stack: int
10: istore 5
start local 5 11: aload 2
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtab$Entry.isDefined:()Z
ifeq 12
aload 2
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtab$Entry.getDefinedOffset:()J
goto 13
StackMap locals: int
StackMap stack:
12: lconst_0
StackMap locals:
StackMap stack: long
13: lstore 6
start local 6 14: aload 0
getfield com.oracle.objectfile.pecoff.PECoffSymtab.symtabStruct:Lcom/oracle/objectfile/pecoff/PECoffSymtabStruct;
aload 2
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtab$Entry.getName:()Ljava/lang/String;
15: aload 2
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtab$Entry.getSymType:()I
i2b
16: aload 2
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtab$Entry.getSymClass:()I
i2b
17: iload 5
i2b
18: lload 6
19: invokevirtual com.oracle.objectfile.pecoff.PECoffSymtabStruct.addSymbolEntry:(Ljava/lang/String;BBBJ)Lcom/oracle/objectfile/pecoff/PECoffSymbolStruct;
pop
20: aload 0
getfield com.oracle.objectfile.pecoff.PECoffSymtab.entriesToIndex:Ljava/util/Map;
aload 2
iload 1
iinc 1 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 6 end local 5 end local 4 end local 2 21: StackMap locals: com.oracle.objectfile.pecoff.PECoffSymtab int top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
22: aload 0
getfield com.oracle.objectfile.pecoff.PECoffSymtab.symtabStruct:Lcom/oracle/objectfile/pecoff/PECoffSymtabStruct;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lcom/oracle/objectfile/pecoff/PECoffSymtab;
5 23 1 i I
7 21 2 e Lcom/oracle/objectfile/pecoff/PECoffSymtab$Entry;
8 21 4 sect Lcom/oracle/objectfile/pecoff/PECoffObjectFile$PECoffSection;
11 21 5 sectID I
14 21 6 offset J
public byte[] getOrDecideContent(java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap>, );
descriptor: (Ljava/util/Map;[B)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtab.getNativeSymtab:()Lcom/oracle/objectfile/pecoff/PECoffSymtabStruct;
astore 3
start local 3 1: aload 0
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtab.getWrittenSize:()I
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
aload 0
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtab.getOwner:()Lcom/oracle/objectfile/ObjectFile;
invokevirtual com.oracle.objectfile.ObjectFile.getByteOrder:()Ljava/nio/ByteOrder;
invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
astore 4
start local 4 2: aload 4
invokestatic com.oracle.objectfile.io.AssemblyBuffer.createOutputAssembler:(Ljava/nio/ByteBuffer;)Lcom/oracle/objectfile/io/OutputAssembler;
astore 5
start local 5 3: aload 5
aload 3
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtabStruct.getSymtabArray:()[B
invokeinterface com.oracle.objectfile.io.OutputAssembler.writeBlob:([B)V
4: aload 5
aload 3
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtabStruct.getStrtabArray:()[B
invokeinterface com.oracle.objectfile.io.OutputAssembler.writeBlob:([B)V
5: aload 5
invokeinterface com.oracle.objectfile.io.OutputAssembler.getBlob:()[B
areturn
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 6 0 this Lcom/oracle/objectfile/pecoff/PECoffSymtab;
0 6 1 alreadyDecided Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
0 6 2 contentHint [B
1 6 3 sts Lcom/oracle/objectfile/pecoff/PECoffSymtabStruct;
2 6 4 outBuffer Ljava/nio/ByteBuffer;
3 6 5 out Lcom/oracle/objectfile/io/OutputAssembler;
Signature: (Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;[B)[B
MethodParameters:
Name Flags
alreadyDecided
contentHint
public int getOrDecideSize(java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap>, );
descriptor: (Ljava/util/Map;I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtab.getWrittenSize:()I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/objectfile/pecoff/PECoffSymtab;
0 1 1 alreadyDecided Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
0 1 2 sizeHint I
Signature: (Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;I)I
MethodParameters:
Name Flags
alreadyDecided
sizeHint
private int getWrittenSize();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtab.getNativeSymtab:()Lcom/oracle/objectfile/pecoff/PECoffSymtabStruct;
astore 1
start local 1 1: aload 1
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtabStruct.getSymtabCount:()I
getstatic com.oracle.objectfile.pecoff.PECoff$IMAGE_SYMBOL.totalsize:I
imul
aload 1
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtabStruct.getStrtabSize:()I
iadd
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/objectfile/pecoff/PECoffSymtab;
1 2 1 sts Lcom/oracle/objectfile/pecoff/PECoffSymtabStruct;
public java.lang.Iterable<com.oracle.objectfile.BuildDependency> getDependencies(java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap>);
descriptor: (Ljava/util/Map;)Ljava/lang/Iterable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
aload 1
aload 0
invokestatic com.oracle.objectfile.ObjectFile.defaultDependencies:(Ljava/util/Map;Lcom/oracle/objectfile/ObjectFile$Element;)Ljava/util/HashSet;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/objectfile/pecoff/PECoffSymtab;
0 1 1 decisions Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
Signature: (Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;)Ljava/lang/Iterable<Lcom/oracle/objectfile/BuildDependency;>;
MethodParameters:
Name Flags
decisions
public boolean isLoadable();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/objectfile/pecoff/PECoffSymtab;
public com.oracle.objectfile.ObjectFile$Symbol newDefinedEntry(java.lang.String, com.oracle.objectfile.ObjectFile$Section, long, long, boolean, boolean);
descriptor: (Ljava/lang/String;Lcom/oracle/objectfile/ObjectFile$Section;JJZZ)Lcom/oracle/objectfile/ObjectFile$Symbol;
flags: (0x0001) ACC_PUBLIC
Code:
stack=11, locals=11, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 5 start local 7 start local 8 0: iload 7
ifeq 1
iconst_2
goto 2
StackMap locals:
StackMap stack:
1: iconst_3
StackMap locals:
StackMap stack: int
2: istore 9
start local 9 3: iload 8
ifeq 4
bipush 32
goto 5
StackMap locals: int
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: istore 10
start local 10 6: aload 0
new com.oracle.objectfile.pecoff.PECoffSymtab$Entry
dup
aload 1
lload 3
lload 5
iload 9
iload 10
aload 2
checkcast com.oracle.objectfile.pecoff.PECoffObjectFile$PECoffSection
invokespecial com.oracle.objectfile.pecoff.PECoffSymtab$Entry.<init>:(Ljava/lang/String;JJIILcom/oracle/objectfile/pecoff/PECoffObjectFile$PECoffSection;)V
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtab.addEntry:(Lcom/oracle/objectfile/pecoff/PECoffSymtab$Entry;)Lcom/oracle/objectfile/pecoff/PECoffSymtab$Entry;
areturn
end local 10 end local 9 end local 8 end local 7 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/objectfile/pecoff/PECoffSymtab;
0 7 1 name Ljava/lang/String;
0 7 2 referencedSection Lcom/oracle/objectfile/ObjectFile$Section;
0 7 3 referencedOffset J
0 7 5 size J
0 7 7 isGlobal Z
0 7 8 isCode Z
3 7 9 symClass I
6 7 10 symType I
MethodParameters:
Name Flags
name
referencedSection
referencedOffset
size
isGlobal
isCode
public com.oracle.objectfile.ObjectFile$Symbol newUndefinedEntry(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)Lcom/oracle/objectfile/ObjectFile$Symbol;
flags: (0x0001) ACC_PUBLIC
Code:
stack=11, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iconst_2
istore 3
start local 3 1: iload 2
ifeq 2
bipush 32
goto 3
StackMap locals: int
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: istore 4
start local 4 4: aload 0
new com.oracle.objectfile.pecoff.PECoffSymtab$Entry
dup
aload 1
lconst_0
lconst_0
iload 3
iload 4
getstatic com.oracle.objectfile.pecoff.PECoffSymtab$PseudoSection.UNDEF:Lcom/oracle/objectfile/pecoff/PECoffSymtab$PseudoSection;
invokespecial com.oracle.objectfile.pecoff.PECoffSymtab$Entry.<init>:(Ljava/lang/String;JJIILcom/oracle/objectfile/pecoff/PECoffSymtab$PseudoSection;)V
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtab.addEntry:(Lcom/oracle/objectfile/pecoff/PECoffSymtab$Entry;)Lcom/oracle/objectfile/pecoff/PECoffSymtab$Entry;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/objectfile/pecoff/PECoffSymtab;
0 5 1 name Ljava/lang/String;
0 5 2 isCode Z
1 5 3 symClass I
4 5 4 symType I
MethodParameters:
Name Flags
name
isCode
private com.oracle.objectfile.pecoff.PECoffSymtab$Entry addEntry(com.oracle.objectfile.pecoff.PECoffSymtab$Entry);
descriptor: (Lcom/oracle/objectfile/pecoff/PECoffSymtab$Entry;)Lcom/oracle/objectfile/pecoff/PECoffSymtab$Entry;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.objectfile.pecoff.PECoffSymtab.symtabStruct:Lcom/oracle/objectfile/pecoff/PECoffSymtabStruct;
ifnull 2
1: new java.lang.IllegalStateException
dup
ldc "Symbol table content is already decided."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.objectfile.pecoff.PECoffSymtab.entries:Ljava/util/SortedSet;
aload 1
invokeinterface java.util.SortedSet.add:(Ljava/lang/Object;)Z
pop
3: aload 0
getfield com.oracle.objectfile.pecoff.PECoffSymtab.entriesByName:Ljava/util/Map;
aload 1
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtab$Entry.getName:()Ljava/lang/String;
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/objectfile/pecoff/PECoffSymtab;
0 5 1 entry Lcom/oracle/objectfile/pecoff/PECoffSymtab$Entry;
MethodParameters:
Name Flags
entry
public com.oracle.objectfile.pecoff.PECoffSymtab$Entry getNullEntry();
descriptor: ()Lcom/oracle/objectfile/pecoff/PECoffSymtab$Entry;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.objectfile.pecoff.PECoffSymtab.entries:Ljava/util/SortedSet;
invokeinterface java.util.SortedSet.iterator:()Ljava/util/Iterator;
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.objectfile.pecoff.PECoffSymtab$Entry
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/objectfile/pecoff/PECoffSymtab;
public int indexOf(com.oracle.objectfile.ObjectFile$Symbol);
descriptor: (Lcom/oracle/objectfile/ObjectFile$Symbol;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.objectfile.pecoff.PECoffSymtab.symtabStruct:Lcom/oracle/objectfile/pecoff/PECoffSymtabStruct;
ifnonnull 2
1: new java.lang.IllegalStateException
dup
ldc "Symbol table content is not decided yet."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.objectfile.pecoff.PECoffSymtab.entriesToIndex:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/objectfile/pecoff/PECoffSymtab;
0 3 1 sym Lcom/oracle/objectfile/ObjectFile$Symbol;
MethodParameters:
Name Flags
sym
public java.util.Iterator<com.oracle.objectfile.ObjectFile$Symbol> iterator();
descriptor: ()Ljava/util/Iterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.objectfile.pecoff.PECoffSymtab.entries:Ljava/util/SortedSet;
invokeinterface java.util.SortedSet.iterator:()Ljava/util/Iterator;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/objectfile/pecoff/PECoffSymtab;
Signature: ()Ljava/util/Iterator<Lcom/oracle/objectfile/ObjectFile$Symbol;>;
public com.oracle.objectfile.pecoff.PECoffSymtab$Entry getSymbol(java.lang.String);
descriptor: (Ljava/lang/String;)Lcom/oracle/objectfile/pecoff/PECoffSymtab$Entry;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.objectfile.pecoff.PECoffSymtab.entriesByName:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.objectfile.pecoff.PECoffSymtab$Entry
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/objectfile/pecoff/PECoffSymtab;
0 1 1 name Ljava/lang/String;
MethodParameters:
Name Flags
name
public int getSymbolCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtab.getNativeSymtab:()Lcom/oracle/objectfile/pecoff/PECoffSymtabStruct;
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtabStruct.getSymtabCount:()I
istore 1
start local 1 1: aload 0
getfield com.oracle.objectfile.pecoff.PECoffSymtab.entries:Ljava/util/SortedSet;
invokeinterface java.util.SortedSet.size:()I
istore 2
start local 2 2: iload 2
iload 1
if_icmpeq 4
3: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Counts don't match, entcount: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " count: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
4: StackMap locals: int int
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/objectfile/pecoff/PECoffSymtab;
1 5 1 count I
2 5 2 entcount I
public int getDirectiveSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtab.getNativeSymtab:()Lcom/oracle/objectfile/pecoff/PECoffSymtabStruct;
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtabStruct.getDirectiveSize:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/objectfile/pecoff/PECoffSymtab;
public byte[] getDirectiveArray();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtab.getNativeSymtab:()Lcom/oracle/objectfile/pecoff/PECoffSymtabStruct;
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtabStruct.getDirectiveArray:()[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/objectfile/pecoff/PECoffSymtab;
public int getOrDecideOffset(java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap>, );
descriptor: (Ljava/util/Map;I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
iload 2
invokestatic com.oracle.objectfile.ObjectFile.defaultGetOrDecideOffset:(Ljava/util/Map;Lcom/oracle/objectfile/ObjectFile$Element;I)I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/objectfile/pecoff/PECoffSymtab;
0 1 1 alreadyDecided Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
0 1 2 offsetHint I
Signature: (Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;I)I
MethodParameters:
Name Flags
alreadyDecided
offsetHint
public int getOrDecideVaddr(java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap>, );
descriptor: (Ljava/util/Map;I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
iload 2
invokestatic com.oracle.objectfile.ObjectFile.defaultGetOrDecideVaddr:(Ljava/util/Map;Lcom/oracle/objectfile/ObjectFile$Element;I)I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/objectfile/pecoff/PECoffSymtab;
0 1 1 alreadyDecided Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
0 1 2 vaddrHint I
Signature: (Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;I)I
MethodParameters:
Name Flags
alreadyDecided
vaddrHint
public com.oracle.objectfile.LayoutDecisionMap getDecisions(com.oracle.objectfile.LayoutDecisionMap);
descriptor: (Lcom/oracle/objectfile/LayoutDecisionMap;)Lcom/oracle/objectfile/LayoutDecisionMap;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic com.oracle.objectfile.ObjectFile.defaultDecisions:(Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;)Lcom/oracle/objectfile/LayoutDecisionMap;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/objectfile/pecoff/PECoffSymtab;
0 1 1 copyingIn Lcom/oracle/objectfile/LayoutDecisionMap;
MethodParameters:
Name Flags
copyingIn
public com.oracle.objectfile.ObjectFile$Symbol getSymbol(java.lang.String);
descriptor: (Ljava/lang/String;)Lcom/oracle/objectfile/ObjectFile$Symbol;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual com.oracle.objectfile.pecoff.PECoffSymtab.getSymbol:(Ljava/lang/String;)Lcom/oracle/objectfile/pecoff/PECoffSymtab$Entry;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "PECoffSymtab.java"
NestMembers:
com.oracle.objectfile.pecoff.PECoffSymtab$Entry com.oracle.objectfile.pecoff.PECoffSymtab$PseudoSection
InnerClasses:
public abstract Element = com.oracle.objectfile.ObjectFile$Element of com.oracle.objectfile.ObjectFile
public abstract Section = com.oracle.objectfile.ObjectFile$Section of com.oracle.objectfile.ObjectFile
public abstract Symbol = com.oracle.objectfile.ObjectFile$Symbol of com.oracle.objectfile.ObjectFile
final IMAGE_SYMBOL = com.oracle.objectfile.pecoff.PECoff$IMAGE_SYMBOL of com.oracle.objectfile.pecoff.PECoff
public abstract PECoffSection = com.oracle.objectfile.pecoff.PECoffObjectFile$PECoffSection of com.oracle.objectfile.pecoff.PECoffObjectFile
final Entry = com.oracle.objectfile.pecoff.PECoffSymtab$Entry of com.oracle.objectfile.pecoff.PECoffSymtab
public final PseudoSection = com.oracle.objectfile.pecoff.PECoffSymtab$PseudoSection of com.oracle.objectfile.pecoff.PECoffSymtab
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles