public class com.sun.prism.impl.packrect.RectanglePacker
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.prism.impl.packrect.RectanglePacker
  super_class: java.lang.Object
{
  private com.sun.prism.Texture backingStore;
    descriptor: Lcom/sun/prism/Texture;
    flags: (0x0002) ACC_PRIVATE

  private java.util.List<com.sun.prism.impl.packrect.Level> levels;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lcom/sun/prism/impl/packrect/Level;>;

  private static final int MIN_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final int ROUND_UP;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private int recentUsedLevelIndex;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int length;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int size;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int sizeOffset;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int x;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int y;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean vertical;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  public void <init>(com.sun.prism.Texture, int, int, int, int, boolean);
    descriptor: (Lcom/sun/prism/Texture;IIIIZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=7
        start local 0 // com.sun.prism.impl.packrect.RectanglePacker this
        start local 1 // com.sun.prism.Texture backingStore
        start local 2 // int x
        start local 3 // int y
        start local 4 // int width
        start local 5 // int height
        start local 6 // boolean vertical
         0: .line 61
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 50
            aload 0 /* this */
            new java.util.ArrayList
            dup
            sipush 150
            invokespecial java.util.ArrayList.<init>:(I)V
            putfield com.sun.prism.impl.packrect.RectanglePacker.levels:Ljava/util/List;
         2: .line 53
            aload 0 /* this */
            iconst_0
            putfield com.sun.prism.impl.packrect.RectanglePacker.recentUsedLevelIndex:I
         3: .line 63
            aload 0 /* this */
            aload 1 /* backingStore */
            putfield com.sun.prism.impl.packrect.RectanglePacker.backingStore:Lcom/sun/prism/Texture;
         4: .line 64
            iload 6 /* vertical */
            ifeq 8
         5: .line 65
            aload 0 /* this */
            iload 5 /* height */
            putfield com.sun.prism.impl.packrect.RectanglePacker.length:I
         6: .line 66
            aload 0 /* this */
            iload 4 /* width */
            putfield com.sun.prism.impl.packrect.RectanglePacker.size:I
         7: .line 67
            goto 10
         8: .line 68
      StackMap locals: com.sun.prism.impl.packrect.RectanglePacker com.sun.prism.Texture int int int int int
      StackMap stack:
            aload 0 /* this */
            iload 4 /* width */
            putfield com.sun.prism.impl.packrect.RectanglePacker.length:I
         9: .line 69
            aload 0 /* this */
            iload 5 /* height */
            putfield com.sun.prism.impl.packrect.RectanglePacker.size:I
        10: .line 71
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* x */
            putfield com.sun.prism.impl.packrect.RectanglePacker.x:I
        11: .line 72
            aload 0 /* this */
            iload 3 /* y */
            putfield com.sun.prism.impl.packrect.RectanglePacker.y:I
        12: .line 73
            aload 0 /* this */
            iload 6 /* vertical */
            putfield com.sun.prism.impl.packrect.RectanglePacker.vertical:Z
        13: .line 74
            return
        end local 6 // boolean vertical
        end local 5 // int height
        end local 4 // int width
        end local 3 // int y
        end local 2 // int x
        end local 1 // com.sun.prism.Texture backingStore
        end local 0 // com.sun.prism.impl.packrect.RectanglePacker this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   14     0          this  Lcom/sun/prism/impl/packrect/RectanglePacker;
            0   14     1  backingStore  Lcom/sun/prism/Texture;
            0   14     2             x  I
            0   14     3             y  I
            0   14     4         width  I
            0   14     5        height  I
            0   14     6      vertical  Z
    MethodParameters:
              Name  Flags
      backingStore  
      x             
      y             
      width         
      height        
      vertical      

  public void <init>(com.sun.prism.Texture, int, int);
    descriptor: (Lcom/sun/prism/Texture;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // com.sun.prism.impl.packrect.RectanglePacker this
        start local 1 // com.sun.prism.Texture backingStore
        start local 2 // int width
        start local 3 // int height
         0: .line 86
            aload 0 /* this */
            aload 1 /* backingStore */
            iconst_0
            iconst_0
            iload 2 /* width */
            iload 3 /* height */
            iconst_0
            invokespecial com.sun.prism.impl.packrect.RectanglePacker.<init>:(Lcom/sun/prism/Texture;IIIIZ)V
         1: .line 87
            return
        end local 3 // int height
        end local 2 // int width
        end local 1 // com.sun.prism.Texture backingStore
        end local 0 // com.sun.prism.impl.packrect.RectanglePacker this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/sun/prism/impl/packrect/RectanglePacker;
            0    2     1  backingStore  Lcom/sun/prism/Texture;
            0    2     2         width  I
            0    2     3        height  I
    MethodParameters:
              Name  Flags
      backingStore  
      width         
      height        

  public final com.sun.prism.Texture getBackingStore();
    descriptor: ()Lcom/sun/prism/Texture;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.prism.impl.packrect.RectanglePacker this
         0: .line 94
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.backingStore:Lcom/sun/prism/Texture;
            areturn
        end local 0 // com.sun.prism.impl.packrect.RectanglePacker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/prism/impl/packrect/RectanglePacker;

  public final boolean add(com.sun.javafx.geom.Rectangle);
    descriptor: (Lcom/sun/javafx/geom/Rectangle;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=7, locals=10, args_size=2
        start local 0 // com.sun.prism.impl.packrect.RectanglePacker this
        start local 1 // com.sun.javafx.geom.Rectangle rect
         0: .line 104
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.vertical:Z
            ifeq 1
            aload 1 /* rect */
            getfield com.sun.javafx.geom.Rectangle.height:I
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* rect */
            getfield com.sun.javafx.geom.Rectangle.width:I
      StackMap locals:
      StackMap stack: int
         2: istore 2 /* requestedLength */
        start local 2 // int requestedLength
         3: .line 105
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.vertical:Z
            ifeq 4
            aload 1 /* rect */
            getfield com.sun.javafx.geom.Rectangle.width:I
            goto 5
      StackMap locals: int
      StackMap stack:
         4: aload 1 /* rect */
            getfield com.sun.javafx.geom.Rectangle.height:I
      StackMap locals:
      StackMap stack: int
         5: istore 3 /* requestedSize */
        start local 3 // int requestedSize
         6: .line 107
            iload 2 /* requestedLength */
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.length:I
            if_icmple 7
            iconst_0
            ireturn
         7: .line 108
      StackMap locals: int
      StackMap stack:
            iload 3 /* requestedSize */
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.size:I
            if_icmple 8
            iconst_0
            ireturn
         8: .line 110
      StackMap locals:
      StackMap stack:
            bipush 8
            iload 3 /* requestedSize */
            if_icmple 9
            bipush 8
            goto 10
      StackMap locals:
      StackMap stack:
         9: iload 3 /* requestedSize */
      StackMap locals:
      StackMap stack: int
        10: istore 4 /* newSize */
        start local 4 // int newSize
        11: .line 113
            iload 4 /* newSize */
            iconst_4
            iadd
            iconst_1
            isub
            iload 4 /* newSize */
            iconst_1
            isub
            iconst_4
            irem
            isub
            istore 4 /* newSize */
        12: .line 118
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.recentUsedLevelIndex:I
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.levels:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmpge 16
        13: .line 119
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.levels:Ljava/util/List;
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.recentUsedLevelIndex:I
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.sun.prism.impl.packrect.Level
            getfield com.sun.prism.impl.packrect.Level.size:I
            iload 4 /* newSize */
            if_icmpeq 16
        14: .line 120
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.levels:Ljava/util/List;
            iload 4 /* newSize */
            invokestatic com.sun.prism.impl.packrect.RectanglePacker.binarySearch:(Ljava/util/List;I)I
            istore 5 /* newIndex */
        start local 5 // int newIndex
        15: .line 121
            goto 17
        end local 5 // int newIndex
        16: .line 122
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.recentUsedLevelIndex:I
            istore 5 /* newIndex */
        start local 5 // int newIndex
        17: .line 126
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.sizeOffset:I
            iload 4 /* newSize */
            iadd
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.size:I
            if_icmpgt 18
            iconst_1
            goto 19
      StackMap locals:
      StackMap stack:
        18: iconst_0
      StackMap locals:
      StackMap stack: int
        19: istore 6 /* newLevelFlag */
        start local 6 // boolean newLevelFlag
        20: .line 130
            iload 5 /* newIndex */
            istore 7 /* i */
        start local 7 // int i
        21: aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.levels:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 8 /* max */
        start local 8 // int max
        22: goto 30
        23: .line 131
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.levels:Ljava/util/List;
            iload 7 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.sun.prism.impl.packrect.Level
            astore 9 /* level */
        start local 9 // com.sun.prism.impl.packrect.Level level
        24: .line 134
            aload 9 /* level */
            getfield com.sun.prism.impl.packrect.Level.size:I
            iload 4 /* newSize */
            bipush 8
            iadd
            if_icmple 26
            iload 6 /* newLevelFlag */
            ifeq 26
        25: .line 135
            goto 31
        26: .line 136
      StackMap locals: com.sun.prism.impl.packrect.Level
      StackMap stack:
            aload 9 /* level */
            aload 1 /* rect */
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.x:I
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.y:I
            iload 2 /* requestedLength */
            iload 3 /* requestedSize */
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.vertical:Z
            invokevirtual com.sun.prism.impl.packrect.Level.add:(Lcom/sun/javafx/geom/Rectangle;IIIIZ)Z
            ifeq 29
        27: .line 137
            aload 0 /* this */
            iload 7 /* i */
            putfield com.sun.prism.impl.packrect.RectanglePacker.recentUsedLevelIndex:I
        28: .line 138
            iconst_1
            ireturn
        end local 9 // com.sun.prism.impl.packrect.Level level
        29: .line 130
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        30: iload 7 /* i */
            iload 8 /* max */
            if_icmplt 23
        end local 8 // int max
        end local 7 // int i
        31: .line 143
      StackMap locals:
      StackMap stack:
            iload 6 /* newLevelFlag */
            ifne 33
        32: .line 144
            iconst_0
            ireturn
        33: .line 147
      StackMap locals:
      StackMap stack:
            new com.sun.prism.impl.packrect.Level
            dup
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.length:I
            iload 4 /* newSize */
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.sizeOffset:I
            invokespecial com.sun.prism.impl.packrect.Level.<init>:(III)V
            astore 7 /* newLevel */
        start local 7 // com.sun.prism.impl.packrect.Level newLevel
        34: .line 148
            aload 0 /* this */
            dup
            getfield com.sun.prism.impl.packrect.RectanglePacker.sizeOffset:I
            iload 4 /* newSize */
            iadd
            putfield com.sun.prism.impl.packrect.RectanglePacker.sizeOffset:I
        35: .line 152
            iload 5 /* newIndex */
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.levels:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmpge 39
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.levels:Ljava/util/List;
            iload 5 /* newIndex */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.sun.prism.impl.packrect.Level
            getfield com.sun.prism.impl.packrect.Level.size:I
            iload 4 /* newSize */
            if_icmpgt 39
        36: .line 153
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.levels:Ljava/util/List;
            iload 5 /* newIndex */
            iconst_1
            iadd
            aload 7 /* newLevel */
            invokeinterface java.util.List.add:(ILjava/lang/Object;)V
        37: .line 154
            aload 0 /* this */
            iload 5 /* newIndex */
            iconst_1
            iadd
            putfield com.sun.prism.impl.packrect.RectanglePacker.recentUsedLevelIndex:I
        38: .line 155
            goto 41
        39: .line 156
      StackMap locals: com.sun.prism.impl.packrect.Level
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.levels:Ljava/util/List;
            iload 5 /* newIndex */
            aload 7 /* newLevel */
            invokeinterface java.util.List.add:(ILjava/lang/Object;)V
        40: .line 157
            aload 0 /* this */
            iload 5 /* newIndex */
            putfield com.sun.prism.impl.packrect.RectanglePacker.recentUsedLevelIndex:I
        41: .line 159
      StackMap locals:
      StackMap stack:
            aload 7 /* newLevel */
            aload 1 /* rect */
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.x:I
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.y:I
            iload 2 /* requestedLength */
            iload 3 /* requestedSize */
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.vertical:Z
            invokevirtual com.sun.prism.impl.packrect.Level.add:(Lcom/sun/javafx/geom/Rectangle;IIIIZ)Z
            ireturn
        end local 7 // com.sun.prism.impl.packrect.Level newLevel
        end local 6 // boolean newLevelFlag
        end local 5 // int newIndex
        end local 4 // int newSize
        end local 3 // int requestedSize
        end local 2 // int requestedLength
        end local 1 // com.sun.javafx.geom.Rectangle rect
        end local 0 // com.sun.prism.impl.packrect.RectanglePacker this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   42     0             this  Lcom/sun/prism/impl/packrect/RectanglePacker;
            0   42     1             rect  Lcom/sun/javafx/geom/Rectangle;
            3   42     2  requestedLength  I
            6   42     3    requestedSize  I
           11   42     4          newSize  I
           15   16     5         newIndex  I
           17   42     5         newIndex  I
           20   42     6     newLevelFlag  Z
           21   31     7                i  I
           22   31     8              max  I
           24   29     9            level  Lcom/sun/prism/impl/packrect/Level;
           34   42     7         newLevel  Lcom/sun/prism/impl/packrect/Level;
    MethodParameters:
      Name  Flags
      rect  

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.prism.impl.packrect.RectanglePacker this
         0: .line 166
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.levels:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
         1: .line 167
            aload 0 /* this */
            iconst_0
            putfield com.sun.prism.impl.packrect.RectanglePacker.sizeOffset:I
         2: .line 168
            aload 0 /* this */
            iconst_0
            putfield com.sun.prism.impl.packrect.RectanglePacker.recentUsedLevelIndex:I
         3: .line 169
            return
        end local 0 // com.sun.prism.impl.packrect.RectanglePacker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/prism/impl/packrect/RectanglePacker;

  public void dispose();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.prism.impl.packrect.RectanglePacker this
         0: .line 177
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.backingStore:Lcom/sun/prism/Texture;
            ifnull 2
         1: .line 178
            aload 0 /* this */
            getfield com.sun.prism.impl.packrect.RectanglePacker.backingStore:Lcom/sun/prism/Texture;
            invokeinterface com.sun.prism.Texture.dispose:()V
         2: .line 181
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.sun.prism.impl.packrect.RectanglePacker.backingStore:Lcom/sun/prism/Texture;
         3: .line 182
            aload 0 /* this */
            aconst_null
            putfield com.sun.prism.impl.packrect.RectanglePacker.levels:Ljava/util/List;
         4: .line 183
            return
        end local 0 // com.sun.prism.impl.packrect.RectanglePacker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/prism/impl/packrect/RectanglePacker;

  private static int binarySearch(java.util.List<com.sun.prism.impl.packrect.Level>, );
    descriptor: (Ljava/util/List;I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // java.util.List levels
        start local 1 // int k
         0: .line 196
            iload 1 /* k */
            iconst_1
            iadd
            istore 2 /* key */
        start local 2 // int key
         1: .line 197
            iconst_0
            istore 3 /* from */
        start local 3 // int from
         2: aload 0 /* levels */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            istore 4 /* to */
        start local 4 // int to
         3: .line 198
            iconst_0
            istore 5 /* mid */
        start local 5 // int mid
         4: .line 199
            iconst_0
            istore 6 /* midSize */
        start local 6 // int midSize
         5: .line 201
            iload 4 /* to */
            ifge 13
         6: .line 202
            iconst_0
            ireturn
         7: .line 206
      StackMap locals: java.util.List int int int int int int
      StackMap stack:
            iload 3 /* from */
            iload 4 /* to */
            iadd
            iconst_2
            idiv
            istore 5 /* mid */
         8: .line 207
            aload 0 /* levels */
            iload 5 /* mid */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.sun.prism.impl.packrect.Level
            getfield com.sun.prism.impl.packrect.Level.size:I
            istore 6 /* midSize */
         9: .line 208
            iload 2 /* key */
            iload 6 /* midSize */
            if_icmpge 12
        10: .line 209
            iload 5 /* mid */
            iconst_1
            isub
            istore 4 /* to */
        11: .line 210
            goto 13
        12: .line 211
      StackMap locals:
      StackMap stack:
            iload 5 /* mid */
            iconst_1
            iadd
            istore 3 /* from */
        13: .line 205
      StackMap locals:
      StackMap stack:
            iload 3 /* from */
            iload 4 /* to */
            if_icmple 7
        14: .line 215
            iload 6 /* midSize */
            iload 1 /* k */
            if_icmpge 16
        15: .line 216
            iload 5 /* mid */
            iconst_1
            iadd
            ireturn
        16: .line 217
      StackMap locals:
      StackMap stack:
            iload 6 /* midSize */
            iload 1 /* k */
            if_icmple 20
        17: .line 218
            iload 5 /* mid */
            ifle 18
            iload 5 /* mid */
            iconst_1
            isub
            goto 19
      StackMap locals:
      StackMap stack:
        18: iconst_0
      StackMap locals:
      StackMap stack: int
        19: ireturn
        20: .line 220
      StackMap locals:
      StackMap stack:
            iload 5 /* mid */
            ireturn
        end local 6 // int midSize
        end local 5 // int mid
        end local 4 // int to
        end local 3 // int from
        end local 2 // int key
        end local 1 // int k
        end local 0 // java.util.List levels
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   21     0   levels  Ljava/util/List<Lcom/sun/prism/impl/packrect/Level;>;
            0   21     1        k  I
            1   21     2      key  I
            2   21     3     from  I
            3   21     4       to  I
            4   21     5      mid  I
            5   21     6  midSize  I
    Signature: (Ljava/util/List<Lcom/sun/prism/impl/packrect/Level;>;I)I
    MethodParameters:
        Name  Flags
      levels  
      k       
}
SourceFile: "RectanglePacker.java"