public class com.oracle.objectfile.ObjectFile$SizeTiebreakComparator implements java.util.Comparator<com.oracle.objectfile.LayoutDecision>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.objectfile.ObjectFile$SizeTiebreakComparator
super_class: java.lang.Object
{
java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap> alreadyDecided;
descriptor: Ljava/util/Map;
flags: (0x0000)
Signature: Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
boolean nullsToTail;
descriptor: Z
flags: (0x0000)
public void <init>(java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap>, );
descriptor: (Ljava/util/Map;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.oracle.objectfile.ObjectFile$SizeTiebreakComparator.alreadyDecided:Ljava/util/Map;
2: aload 0
iload 2
putfield com.oracle.objectfile.ObjectFile$SizeTiebreakComparator.nullsToTail:Z
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/objectfile/ObjectFile$SizeTiebreakComparator;
0 4 1 alreadyDecided Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
0 4 2 nullsToTail Z
Signature: (Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;Z)V
MethodParameters:
Name Flags
alreadyDecided
nullsToTail
public int compare(com.oracle.objectfile.LayoutDecision, com.oracle.objectfile.LayoutDecision);
descriptor: (Lcom/oracle/objectfile/LayoutDecision;Lcom/oracle/objectfile/LayoutDecision;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 1
aconst_null
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield com.oracle.objectfile.ObjectFile$SizeTiebreakComparator.alreadyDecided:Ljava/util/Map;
aload 1
invokevirtual com.oracle.objectfile.LayoutDecision.getElement:()Lcom/oracle/objectfile/ObjectFile$Element;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.objectfile.LayoutDecisionMap
getstatic com.oracle.objectfile.LayoutDecision$Kind.SIZE:Lcom/oracle/objectfile/LayoutDecision$Kind;
invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
StackMap locals:
StackMap stack: com.oracle.objectfile.LayoutDecision
2: astore 3
start local 3 3: aload 2
ifnonnull 4
aconst_null
goto 5
StackMap locals: com.oracle.objectfile.LayoutDecision
StackMap stack:
4: aload 0
getfield com.oracle.objectfile.ObjectFile$SizeTiebreakComparator.alreadyDecided:Ljava/util/Map;
aload 2
invokevirtual com.oracle.objectfile.LayoutDecision.getElement:()Lcom/oracle/objectfile/ObjectFile$Element;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.objectfile.LayoutDecisionMap
getstatic com.oracle.objectfile.LayoutDecision$Kind.SIZE:Lcom/oracle/objectfile/LayoutDecision$Kind;
invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
StackMap locals:
StackMap stack: com.oracle.objectfile.LayoutDecision
5: astore 4
start local 4 6: aload 0
getfield com.oracle.objectfile.ObjectFile$SizeTiebreakComparator.nullsToTail:Z
ifeq 7
ldc 2147483647
goto 8
StackMap locals: com.oracle.objectfile.LayoutDecision
StackMap stack:
7: ldc -2147483648
StackMap locals:
StackMap stack: int
8: istore 5
start local 5 9: aload 3
ifnull 10
aload 3
invokevirtual com.oracle.objectfile.LayoutDecision.isTaken:()Z
ifne 11
StackMap locals: int
StackMap stack:
10: iload 5
goto 12
StackMap locals:
StackMap stack:
11: aload 3
invokevirtual com.oracle.objectfile.LayoutDecision.getValue:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
StackMap locals:
StackMap stack: int
12: istore 6
start local 6 13: aload 4
ifnull 14
aload 4
invokevirtual com.oracle.objectfile.LayoutDecision.isTaken:()Z
ifne 15
StackMap locals: int
StackMap stack:
14: iload 5
goto 16
StackMap locals:
StackMap stack:
15: aload 4
invokevirtual com.oracle.objectfile.LayoutDecision.getValue:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
StackMap locals:
StackMap stack: int
16: istore 7
start local 7 17: iload 6
iload 7
invokestatic java.lang.Integer.compare:(II)I
ireturn
end local 7 end local 6 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 18 0 this Lcom/oracle/objectfile/ObjectFile$SizeTiebreakComparator;
0 18 1 d0 Lcom/oracle/objectfile/LayoutDecision;
0 18 2 d1 Lcom/oracle/objectfile/LayoutDecision;
3 18 3 sizeDecision0 Lcom/oracle/objectfile/LayoutDecision;
6 18 4 sizeDecision1 Lcom/oracle/objectfile/LayoutDecision;
9 18 5 defaultValue I
13 18 6 s0 I
17 18 7 s1 I
MethodParameters:
Name Flags
d0
d1
public int compare(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)I
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
checkcast com.oracle.objectfile.LayoutDecision
aload 2
checkcast com.oracle.objectfile.LayoutDecision
invokevirtual com.oracle.objectfile.ObjectFile$SizeTiebreakComparator.compare:(Lcom/oracle/objectfile/LayoutDecision;Lcom/oracle/objectfile/LayoutDecision;)I
ireturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/lang/Object;Ljava/util/Comparator<Lcom/oracle/objectfile/LayoutDecision;>;
SourceFile: "ObjectFile.java"
NestHost: com.oracle.objectfile.ObjectFile
InnerClasses:
public final Kind = com.oracle.objectfile.LayoutDecision$Kind of com.oracle.objectfile.LayoutDecision
public abstract Element = com.oracle.objectfile.ObjectFile$Element of com.oracle.objectfile.ObjectFile
public SizeTiebreakComparator = com.oracle.objectfile.ObjectFile$SizeTiebreakComparator of com.oracle.objectfile.ObjectFile