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 // com.oracle.objectfile.ObjectFile$SizeTiebreakComparator this
        start local 1 // java.util.Map alreadyDecided
        start local 2 // boolean nullsToTail
         0: .line 671
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 672
            aload 0 /* this */
            aload 1 /* alreadyDecided */
            putfield com.oracle.objectfile.ObjectFile$SizeTiebreakComparator.alreadyDecided:Ljava/util/Map;
         2: .line 673
            aload 0 /* this */
            iload 2 /* nullsToTail */
            putfield com.oracle.objectfile.ObjectFile$SizeTiebreakComparator.nullsToTail:Z
         3: .line 674
            return
        end local 2 // boolean nullsToTail
        end local 1 // java.util.Map alreadyDecided
        end local 0 // com.oracle.objectfile.ObjectFile$SizeTiebreakComparator this
      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 // com.oracle.objectfile.ObjectFile$SizeTiebreakComparator this
        start local 1 // com.oracle.objectfile.LayoutDecision d0
        start local 2 // com.oracle.objectfile.LayoutDecision d1
         0: .line 679
            aload 1 /* d0 */
            ifnonnull 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile$SizeTiebreakComparator.alreadyDecided:Ljava/util/Map;
            aload 1 /* d0 */
            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 /* sizeDecision0 */
        start local 3 // com.oracle.objectfile.LayoutDecision sizeDecision0
         3: .line 680
            aload 2 /* d1 */
            ifnonnull 4
            aconst_null
            goto 5
      StackMap locals: com.oracle.objectfile.LayoutDecision
      StackMap stack:
         4: aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile$SizeTiebreakComparator.alreadyDecided:Ljava/util/Map;
            aload 2 /* d1 */
            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 /* sizeDecision1 */
        start local 4 // com.oracle.objectfile.LayoutDecision sizeDecision1
         6: .line 682
            aload 0 /* this */
            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 /* defaultValue */
        start local 5 // int defaultValue
         9: .line 683
            aload 3 /* sizeDecision0 */
            ifnull 10
            aload 3 /* sizeDecision0 */
            invokevirtual com.oracle.objectfile.LayoutDecision.isTaken:()Z
            ifne 11
      StackMap locals: int
      StackMap stack:
        10: iload 5 /* defaultValue */
            goto 12
      StackMap locals:
      StackMap stack:
        11: aload 3 /* sizeDecision0 */
            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 /* s0 */
        start local 6 // int s0
        13: .line 684
            aload 4 /* sizeDecision1 */
            ifnull 14
            aload 4 /* sizeDecision1 */
            invokevirtual com.oracle.objectfile.LayoutDecision.isTaken:()Z
            ifne 15
      StackMap locals: int
      StackMap stack:
        14: iload 5 /* defaultValue */
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 4 /* sizeDecision1 */
            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 /* s1 */
        start local 7 // int s1
        17: .line 686
            iload 6 /* s0 */
            iload 7 /* s1 */
            invokestatic java.lang.Integer.compare:(II)I
            ireturn
        end local 7 // int s1
        end local 6 // int s0
        end local 5 // int defaultValue
        end local 4 // com.oracle.objectfile.LayoutDecision sizeDecision1
        end local 3 // com.oracle.objectfile.LayoutDecision sizeDecision0
        end local 2 // com.oracle.objectfile.LayoutDecision d1
        end local 1 // com.oracle.objectfile.LayoutDecision d0
        end local 0 // com.oracle.objectfile.ObjectFile$SizeTiebreakComparator this
      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: .line 1
            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