public class sun.java2d.jules.TileWorker implements java.lang.Runnable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.java2d.jules.TileWorker
  super_class: java.lang.Object
{
  static final int RASTERIZED_TILE_SYNC_GRANULARITY;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  final java.util.ArrayList<sun.java2d.jules.JulesTile> rasterizedTileConsumerCache;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/ArrayList<Lsun/java2d/jules/JulesTile;>;

  final java.util.LinkedList<sun.java2d.jules.JulesTile> rasterizedBuffers;
    descriptor: Ljava/util/LinkedList;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/LinkedList<Lsun/java2d/jules/JulesTile;>;

  sun.java2d.jules.IdleTileCache tileCache;
    descriptor: Lsun/java2d/jules/IdleTileCache;
    flags: (0x0000) 

  sun.java2d.jules.JulesAATileGenerator tileGenerator;
    descriptor: Lsun/java2d/jules/JulesAATileGenerator;
    flags: (0x0000) 

  int workerStartIndex;
    descriptor: I
    flags: (0x0000) 

  volatile int consumerPos;
    descriptor: I
    flags: (0x0040) ACC_VOLATILE

  int mainThreadCnt;
    descriptor: I
    flags: (0x0000) 

  int workerCnt;
    descriptor: I
    flags: (0x0000) 

  int doubled;
    descriptor: I
    flags: (0x0000) 

  public void <init>(sun.java2d.jules.JulesAATileGenerator, int, sun.java2d.jules.IdleTileCache);
    descriptor: (Lsun/java2d/jules/JulesAATileGenerator;ILsun/java2d/jules/IdleTileCache;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // sun.java2d.jules.TileWorker this
        start local 1 // sun.java2d.jules.JulesAATileGenerator tileGenerator
        start local 2 // int workerStartIndex
        start local 3 // sun.java2d.jules.IdleTileCache tileCache
         0: .line 46
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 32
            aload 0 /* this */
         2: .line 33
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield sun.java2d.jules.TileWorker.rasterizedTileConsumerCache:Ljava/util/ArrayList;
         3: .line 34
            aload 0 /* this */
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            putfield sun.java2d.jules.TileWorker.rasterizedBuffers:Ljava/util/LinkedList;
         4: .line 39
            aload 0 /* this */
            iconst_0
            putfield sun.java2d.jules.TileWorker.consumerPos:I
         5: .line 42
            aload 0 /* this */
            iconst_0
            putfield sun.java2d.jules.TileWorker.mainThreadCnt:I
         6: .line 43
            aload 0 /* this */
            iconst_0
            putfield sun.java2d.jules.TileWorker.workerCnt:I
         7: .line 44
            aload 0 /* this */
            iconst_0
            putfield sun.java2d.jules.TileWorker.doubled:I
         8: .line 47
            aload 0 /* this */
            aload 1 /* tileGenerator */
            putfield sun.java2d.jules.TileWorker.tileGenerator:Lsun/java2d/jules/JulesAATileGenerator;
         9: .line 48
            aload 0 /* this */
            iload 2 /* workerStartIndex */
            putfield sun.java2d.jules.TileWorker.workerStartIndex:I
        10: .line 49
            aload 0 /* this */
            aload 3 /* tileCache */
            putfield sun.java2d.jules.TileWorker.tileCache:Lsun/java2d/jules/IdleTileCache;
        11: .line 50
            return
        end local 3 // sun.java2d.jules.IdleTileCache tileCache
        end local 2 // int workerStartIndex
        end local 1 // sun.java2d.jules.JulesAATileGenerator tileGenerator
        end local 0 // sun.java2d.jules.TileWorker this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   12     0              this  Lsun/java2d/jules/TileWorker;
            0   12     1     tileGenerator  Lsun/java2d/jules/JulesAATileGenerator;
            0   12     2  workerStartIndex  I
            0   12     3         tileCache  Lsun/java2d/jules/IdleTileCache;
    MethodParameters:
                  Name  Flags
      tileGenerator     
      workerStartIndex  
      tileCache         

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // sun.java2d.jules.TileWorker this
         0: .line 53
            new java.util.ArrayList
            dup
            bipush 16
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 1 /* tiles */
        start local 1 // java.util.ArrayList tiles
         1: .line 55
            aload 0 /* this */
            getfield sun.java2d.jules.TileWorker.workerStartIndex:I
            istore 2 /* i */
        start local 2 // int i
         2: goto 17
         3: .line 56
      StackMap locals: java.util.ArrayList int
      StackMap stack:
            aload 0 /* this */
            getfield sun.java2d.jules.TileWorker.tileGenerator:Lsun/java2d/jules/JulesAATileGenerator;
            iload 2 /* i */
            invokevirtual sun.java2d.jules.JulesAATileGenerator.getTrapContainer:(I)Lsun/java2d/jules/TileTrapContainer;
            astore 3 /* tile */
        start local 3 // sun.java2d.jules.TileTrapContainer tile
         4: .line 58
            aload 3 /* tile */
            ifnull 15
            aload 3 /* tile */
            invokevirtual sun.java2d.jules.TileTrapContainer.getTileAlpha:()I
            bipush 127
            if_icmpne 15
         5: .line 60
            aload 0 /* this */
            getfield sun.java2d.jules.TileWorker.tileGenerator:Lsun/java2d/jules/JulesAATileGenerator;
            iload 2 /* i */
         6: .line 61
            aload 0 /* this */
            getfield sun.java2d.jules.TileWorker.tileCache:Lsun/java2d/jules/IdleTileCache;
         7: .line 62
            aload 0 /* this */
            getfield sun.java2d.jules.TileWorker.tileGenerator:Lsun/java2d/jules/JulesAATileGenerator;
            invokevirtual sun.java2d.jules.JulesAATileGenerator.getTileCount:()I
            iload 2 /* i */
            isub
            iconst_1
            isub
         8: .line 61
            invokevirtual sun.java2d.jules.IdleTileCache.getIdleTileWorker:(I)Lsun/java2d/jules/JulesTile;
         9: .line 60
            invokevirtual sun.java2d.jules.JulesAATileGenerator.rasterizeTile:(ILsun/java2d/jules/JulesTile;)Lsun/java2d/jules/JulesTile;
        10: .line 59
            astore 4 /* rasterizedTile */
        start local 4 // sun.java2d.jules.JulesTile rasterizedTile
        11: .line 63
            aload 1 /* tiles */
            aload 4 /* rasterizedTile */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        12: .line 65
            aload 1 /* tiles */
            invokevirtual java.util.ArrayList.size:()I
            bipush 8
            if_icmple 15
        13: .line 66
            aload 0 /* this */
            aload 1 /* tiles */
            invokevirtual sun.java2d.jules.TileWorker.addRasterizedTiles:(Ljava/util/ArrayList;)V
        14: .line 67
            aload 1 /* tiles */
            invokevirtual java.util.ArrayList.clear:()V
        end local 4 // sun.java2d.jules.JulesTile rasterizedTile
        15: .line 71
      StackMap locals: sun.java2d.jules.TileTrapContainer
      StackMap stack:
            iload 2 /* i */
            aload 0 /* this */
            getfield sun.java2d.jules.TileWorker.consumerPos:I
            iconst_4
            iadd
            invokestatic java.lang.Math.max:(II)I
            istore 2 /* i */
        end local 3 // sun.java2d.jules.TileTrapContainer tile
        16: .line 55
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 2 /* i */
            aload 0 /* this */
            getfield sun.java2d.jules.TileWorker.tileGenerator:Lsun/java2d/jules/JulesAATileGenerator;
            invokevirtual sun.java2d.jules.JulesAATileGenerator.getTileCount:()I
            if_icmplt 3
        end local 2 // int i
        18: .line 73
            aload 0 /* this */
            aload 1 /* tiles */
            invokevirtual sun.java2d.jules.TileWorker.addRasterizedTiles:(Ljava/util/ArrayList;)V
        19: .line 75
            aload 0 /* this */
            getfield sun.java2d.jules.TileWorker.tileCache:Lsun/java2d/jules/IdleTileCache;
            invokevirtual sun.java2d.jules.IdleTileCache.disposeRasterizerResources:()V
        20: .line 76
            return
        end local 1 // java.util.ArrayList tiles
        end local 0 // sun.java2d.jules.TileWorker this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   21     0            this  Lsun/java2d/jules/TileWorker;
            1   21     1           tiles  Ljava/util/ArrayList<Lsun/java2d/jules/JulesTile;>;
            2   18     2               i  I
            4   16     3            tile  Lsun/java2d/jules/TileTrapContainer;
           11   15     4  rasterizedTile  Lsun/java2d/jules/JulesTile;

  public sun.java2d.jules.JulesTile getPreRasterizedTile(int);
    descriptor: (I)Lsun/java2d/jules/JulesTile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // sun.java2d.jules.TileWorker this
        start local 1 // int tilePos
         0: .line 84
            aconst_null
            astore 2 /* tile */
        start local 2 // sun.java2d.jules.JulesTile tile
         1: .line 86
            aload 0 /* this */
            getfield sun.java2d.jules.TileWorker.rasterizedTileConsumerCache:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            ifne 20
         2: .line 87
            iload 1 /* tilePos */
            aload 0 /* this */
            getfield sun.java2d.jules.TileWorker.workerStartIndex:I
            if_icmplt 20
         3: .line 89
            aload 0 /* this */
            getfield sun.java2d.jules.TileWorker.rasterizedBuffers:Ljava/util/LinkedList;
            dup
            astore 3
            monitorenter
         4: .line 90
            aload 0 /* this */
            getfield sun.java2d.jules.TileWorker.rasterizedTileConsumerCache:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield sun.java2d.jules.TileWorker.rasterizedBuffers:Ljava/util/LinkedList;
            invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
            pop
         5: .line 91
            aload 0 /* this */
            getfield sun.java2d.jules.TileWorker.rasterizedBuffers:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.clear:()V
         6: .line 89
            aload 3
            monitorexit
         7: goto 20
      StackMap locals: sun.java2d.jules.TileWorker int sun.java2d.jules.JulesTile java.util.LinkedList
      StackMap stack: java.lang.Throwable
         8: aload 3
            monitorexit
         9: athrow
        10: .line 96
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.java2d.jules.TileWorker.rasterizedTileConsumerCache:Ljava/util/ArrayList;
            iconst_0
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast sun.java2d.jules.JulesTile
            astore 3 /* t */
        start local 3 // sun.java2d.jules.JulesTile t
        11: .line 98
            aload 3 /* t */
            invokevirtual sun.java2d.jules.JulesTile.getTilePos:()I
            iload 1 /* tilePos */
            if_icmple 13
        12: .line 99
            goto 21
        13: .line 102
      StackMap locals: sun.java2d.jules.JulesTile
      StackMap stack:
            aload 3 /* t */
            invokevirtual sun.java2d.jules.JulesTile.getTilePos:()I
            iload 1 /* tilePos */
            if_icmpge 16
        14: .line 103
            aload 0 /* this */
            getfield sun.java2d.jules.TileWorker.tileCache:Lsun/java2d/jules/IdleTileCache;
            aload 3 /* t */
            invokevirtual sun.java2d.jules.IdleTileCache.releaseTile:(Lsun/java2d/jules/JulesTile;)V
        15: .line 104
            aload 0 /* this */
            dup
            getfield sun.java2d.jules.TileWorker.doubled:I
            iconst_1
            iadd
            putfield sun.java2d.jules.TileWorker.doubled:I
        16: .line 107
      StackMap locals:
      StackMap stack:
            aload 3 /* t */
            invokevirtual sun.java2d.jules.JulesTile.getTilePos:()I
            iload 1 /* tilePos */
            if_icmpgt 18
        17: .line 108
            aload 0 /* this */
            getfield sun.java2d.jules.TileWorker.rasterizedTileConsumerCache:Ljava/util/ArrayList;
            iconst_0
            invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
            pop
        18: .line 111
      StackMap locals:
      StackMap stack:
            aload 3 /* t */
            invokevirtual sun.java2d.jules.JulesTile.getTilePos:()I
            iload 1 /* tilePos */
            if_icmpne 20
        19: .line 112
            aload 3 /* t */
            astore 2 /* tile */
        end local 3 // sun.java2d.jules.JulesTile t
        20: .line 95
      StackMap locals:
      StackMap stack:
            aload 2 /* tile */
            ifnonnull 21
            aload 0 /* this */
            getfield sun.java2d.jules.TileWorker.rasterizedTileConsumerCache:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            ifgt 10
        21: .line 116
      StackMap locals:
      StackMap stack:
            aload 2 /* tile */
            ifnonnull 25
        22: .line 117
            aload 0 /* this */
            dup
            getfield sun.java2d.jules.TileWorker.mainThreadCnt:I
            iconst_1
            iadd
            putfield sun.java2d.jules.TileWorker.mainThreadCnt:I
        23: .line 121
            aload 0 /* this */
            iload 1 /* tilePos */
            putfield sun.java2d.jules.TileWorker.consumerPos:I
        24: .line 122
            goto 26
        25: .line 123
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield sun.java2d.jules.TileWorker.workerCnt:I
            iconst_1
            iadd
            putfield sun.java2d.jules.TileWorker.workerCnt:I
        26: .line 126
      StackMap locals:
      StackMap stack:
            aload 2 /* tile */
            areturn
        end local 2 // sun.java2d.jules.JulesTile tile
        end local 1 // int tilePos
        end local 0 // sun.java2d.jules.TileWorker this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   27     0     this  Lsun/java2d/jules/TileWorker;
            0   27     1  tilePos  I
            1   27     2     tile  Lsun/java2d/jules/JulesTile;
           11   20     3        t  Lsun/java2d/jules/JulesTile;
      Exception table:
        from    to  target  type
           4     7       8  any
           8     9       8  any
    MethodParameters:
         Name  Flags
      tilePos  

  private void addRasterizedTiles(java.util.ArrayList<sun.java2d.jules.JulesTile>);
    descriptor: (Ljava/util/ArrayList;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.java2d.jules.TileWorker this
        start local 1 // java.util.ArrayList tiles
         0: .line 130
            aload 0 /* this */
            getfield sun.java2d.jules.TileWorker.rasterizedBuffers:Ljava/util/LinkedList;
            dup
            astore 2
            monitorenter
         1: .line 131
            aload 0 /* this */
            getfield sun.java2d.jules.TileWorker.rasterizedBuffers:Ljava/util/LinkedList;
            aload 1 /* tiles */
            invokevirtual java.util.LinkedList.addAll:(Ljava/util/Collection;)Z
            pop
         2: .line 130
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: sun.java2d.jules.TileWorker java.util.ArrayList java.util.LinkedList
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 133
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.ArrayList tiles
        end local 0 // sun.java2d.jules.TileWorker this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lsun/java2d/jules/TileWorker;
            0    7     1  tiles  Ljava/util/ArrayList<Lsun/java2d/jules/JulesTile;>;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    Signature: (Ljava/util/ArrayList<Lsun/java2d/jules/JulesTile;>;)V
    MethodParameters:
       Name  Flags
      tiles  

  public void disposeConsumerResources();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.java2d.jules.TileWorker this
         0: .line 140
            aload 0 /* this */
            getfield sun.java2d.jules.TileWorker.rasterizedBuffers:Ljava/util/LinkedList;
            dup
            astore 1
            monitorenter
         1: .line 141
            aload 0 /* this */
            getfield sun.java2d.jules.TileWorker.tileCache:Lsun/java2d/jules/IdleTileCache;
            aload 0 /* this */
            getfield sun.java2d.jules.TileWorker.rasterizedBuffers:Ljava/util/LinkedList;
            invokevirtual sun.java2d.jules.IdleTileCache.releaseTiles:(Ljava/util/List;)V
         2: .line 140
            aload 1
            monitorexit
         3: goto 6
      StackMap locals: sun.java2d.jules.TileWorker java.util.LinkedList
      StackMap stack: java.lang.Throwable
         4: aload 1
            monitorexit
         5: athrow
         6: .line 144
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.java2d.jules.TileWorker.tileCache:Lsun/java2d/jules/IdleTileCache;
            aload 0 /* this */
            getfield sun.java2d.jules.TileWorker.rasterizedTileConsumerCache:Ljava/util/ArrayList;
            invokevirtual sun.java2d.jules.IdleTileCache.releaseTiles:(Ljava/util/List;)V
         7: .line 145
            return
        end local 0 // sun.java2d.jules.TileWorker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/java2d/jules/TileWorker;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
}
SourceFile: "TileWorker.java"