public final class sun.java2d.marlin.MarlinCache implements sun.java2d.marlin.MarlinConst
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: sun.java2d.marlin.MarlinCache
super_class: java.lang.Object
{
static final boolean FORCE_RLE;
descriptor: Z
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final boolean FORCE_NO_RLE;
descriptor: Z
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final int RLE_MIN_WIDTH;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final int RLE_MAX_WIDTH;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 8388608
static final long INITIAL_CHUNK_ARRAY;
descriptor: J
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final byte[] ALPHA_MAP;
descriptor: [B
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final sun.java2d.marlin.OffHeapArray ALPHA_MAP_UNSAFE;
descriptor: Lsun/java2d/marlin/OffHeapArray;
flags: (0x0018) ACC_STATIC, ACC_FINAL
int bboxX0;
descriptor: I
flags: (0x0000)
int bboxY0;
descriptor: I
flags: (0x0000)
int bboxX1;
descriptor: I
flags: (0x0000)
int bboxY1;
descriptor: I
flags: (0x0000)
final long[] rowAAChunkIndex;
descriptor: [J
flags: (0x0010) ACC_FINAL
final int[] rowAAx0;
descriptor: [I
flags: (0x0010) ACC_FINAL
final int[] rowAAx1;
descriptor: [I
flags: (0x0010) ACC_FINAL
final int[] rowAAEnc;
descriptor: [I
flags: (0x0010) ACC_FINAL
final long[] rowAALen;
descriptor: [J
flags: (0x0010) ACC_FINAL
final long[] rowAAPos;
descriptor: [J
flags: (0x0010) ACC_FINAL
final sun.java2d.marlin.OffHeapArray rowAAChunk;
descriptor: Lsun/java2d/marlin/OffHeapArray;
flags: (0x0010) ACC_FINAL
long rowAAChunkPos;
descriptor: J
flags: (0x0000)
int[] touchedTile;
descriptor: [I
flags: (0x0000)
final sun.java2d.marlin.RendererContext rdrCtx;
descriptor: Lsun/java2d/marlin/RendererContext;
flags: (0x0010) ACC_FINAL
private final sun.java2d.marlin.IntArrayCache$Reference touchedTile_ref;
descriptor: Lsun/java2d/marlin/IntArrayCache$Reference;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
int tileMin;
descriptor: I
flags: (0x0000)
int tileMax;
descriptor: I
flags: (0x0000)
boolean useRLE;
descriptor: Z
flags: (0x0000)
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=5, args_size=0
0: invokestatic sun.java2d.marlin.MarlinProperties.isForceRLE:()Z
putstatic sun.java2d.marlin.MarlinCache.FORCE_RLE:Z
1: invokestatic sun.java2d.marlin.MarlinProperties.isForceNoRLE:()Z
putstatic sun.java2d.marlin.MarlinCache.FORCE_NO_RLE:Z
2: getstatic sun.java2d.marlin.MarlinCache.BLOCK_SIZE:I
invokestatic sun.java2d.marlin.MarlinProperties.getRLEMinWidth:()I
invokestatic java.lang.Math.max:(II)I
3: putstatic sun.java2d.marlin.MarlinCache.RLE_MIN_WIDTH:I
4: getstatic sun.java2d.marlin.MarlinCache.TILE_SIZE:I
getstatic sun.java2d.marlin.MarlinCache.INITIAL_PIXEL_DIM:I
imul
i2l
putstatic sun.java2d.marlin.MarlinCache.INITIAL_CHUNK_ARRAY:J
5: getstatic sun.java2d.marlin.MarlinCache.MAX_AA_ALPHA:I
invokestatic sun.java2d.marlin.MarlinCache.buildAlphaMap:(I)[B
astore 0
start local 0 6: new sun.java2d.marlin.OffHeapArray
dup
aload 0
aload 0
arraylength
i2l
invokespecial sun.java2d.marlin.OffHeapArray.<init>:(Ljava/lang/Object;J)V
putstatic sun.java2d.marlin.MarlinCache.ALPHA_MAP_UNSAFE:Lsun/java2d/marlin/OffHeapArray;
7: aload 0
putstatic sun.java2d.marlin.MarlinCache.ALPHA_MAP:[B
8: getstatic sun.java2d.marlin.OffHeapArray.UNSAFE:Ljdk/internal/misc/Unsafe;
astore 1
start local 1 9: getstatic sun.java2d.marlin.MarlinCache.ALPHA_MAP_UNSAFE:Lsun/java2d/marlin/OffHeapArray;
getfield sun.java2d.marlin.OffHeapArray.address:J
lstore 2
start local 2 10: iconst_0
istore 4
start local 4 11: goto 14
12: StackMap locals: byte[] jdk.internal.misc.Unsafe long int
StackMap stack:
aload 1
lload 2
iload 4
i2l
ladd
aload 0
iload 4
baload
invokevirtual jdk.internal.misc.Unsafe.putByte:(JB)V
13: iinc 4 1
StackMap locals:
StackMap stack:
14: iload 4
aload 0
arraylength
if_icmplt 12
end local 4 end local 2 end local 1 end local 0 15: return
LocalVariableTable:
Start End Slot Name Signature
6 15 0 _ALPHA_MAP [B
9 15 1 _unsafe Ljdk/internal/misc/Unsafe;
10 15 2 addr J
11 15 4 i I
void <init>(sun.java2d.marlin.RendererContext);
descriptor: (Lsun/java2d/marlin/RendererContext;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
getstatic sun.java2d.marlin.MarlinCache.TILE_SIZE:I
newarray 11
putfield sun.java2d.marlin.MarlinCache.rowAAChunkIndex:[J
2: aload 0
getstatic sun.java2d.marlin.MarlinCache.TILE_SIZE:I
newarray 10
putfield sun.java2d.marlin.MarlinCache.rowAAx0:[I
3: aload 0
getstatic sun.java2d.marlin.MarlinCache.TILE_SIZE:I
newarray 10
putfield sun.java2d.marlin.MarlinCache.rowAAx1:[I
4: aload 0
getstatic sun.java2d.marlin.MarlinCache.TILE_SIZE:I
newarray 10
putfield sun.java2d.marlin.MarlinCache.rowAAEnc:[I
5: aload 0
getstatic sun.java2d.marlin.MarlinCache.TILE_SIZE:I
newarray 11
putfield sun.java2d.marlin.MarlinCache.rowAALen:[J
6: aload 0
getstatic sun.java2d.marlin.MarlinCache.TILE_SIZE:I
newarray 11
putfield sun.java2d.marlin.MarlinCache.rowAAPos:[J
7: aload 0
iconst_0
putfield sun.java2d.marlin.MarlinCache.useRLE:Z
8: aload 0
aload 1
putfield sun.java2d.marlin.MarlinCache.rdrCtx:Lsun/java2d/marlin/RendererContext;
9: aload 0
aload 1
getstatic sun.java2d.marlin.MarlinCache.INITIAL_CHUNK_ARRAY:J
invokevirtual sun.java2d.marlin.RendererContext.newOffHeapArray:(J)Lsun/java2d/marlin/OffHeapArray;
putfield sun.java2d.marlin.MarlinCache.rowAAChunk:Lsun/java2d/marlin/OffHeapArray;
10: aload 0
aload 1
sipush 256
invokevirtual sun.java2d.marlin.RendererContext.newCleanIntArrayRef:(I)Lsun/java2d/marlin/IntArrayCache$Reference;
putfield sun.java2d.marlin.MarlinCache.touchedTile_ref:Lsun/java2d/marlin/IntArrayCache$Reference;
11: aload 0
aload 0
getfield sun.java2d.marlin.MarlinCache.touchedTile_ref:Lsun/java2d/marlin/IntArrayCache$Reference;
getfield sun.java2d.marlin.IntArrayCache$Reference.initial:[I
putfield sun.java2d.marlin.MarlinCache.touchedTile:[I
12: aload 0
ldc 2147483647
putfield sun.java2d.marlin.MarlinCache.tileMin:I
13: aload 0
ldc -2147483648
putfield sun.java2d.marlin.MarlinCache.tileMax:I
14: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/java2d/marlin/MarlinCache;
0 15 1 rdrCtx Lsun/java2d/marlin/RendererContext;
MethodParameters:
Name Flags
rdrCtx final
void init(int, int, int, int, int);
descriptor: (IIIII)V
flags: (0x0000)
Code:
stack=4, locals=10, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
iload 1
putfield sun.java2d.marlin.MarlinCache.bboxX0:I
1: aload 0
iload 2
putfield sun.java2d.marlin.MarlinCache.bboxY0:I
2: aload 0
iload 3
putfield sun.java2d.marlin.MarlinCache.bboxX1:I
3: aload 0
iload 4
putfield sun.java2d.marlin.MarlinCache.bboxY1:I
4: iload 3
iload 1
isub
istore 6
start local 6 5: getstatic sun.java2d.marlin.MarlinCache.FORCE_NO_RLE:Z
ifeq 8
6: aload 0
iconst_0
putfield sun.java2d.marlin.MarlinCache.useRLE:Z
7: goto 35
StackMap locals: int
StackMap stack:
8: getstatic sun.java2d.marlin.MarlinCache.FORCE_RLE:Z
ifeq 11
9: aload 0
iconst_1
putfield sun.java2d.marlin.MarlinCache.useRLE:Z
10: goto 35
11: StackMap locals:
StackMap stack:
iload 6
getstatic sun.java2d.marlin.MarlinCache.RLE_MIN_WIDTH:I
if_icmple 12
iload 6
ldc 8388608
if_icmplt 14
12: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.java2d.marlin.MarlinCache.useRLE:Z
13: goto 35
14: StackMap locals:
StackMap stack:
iload 4
iload 2
isub
getstatic sun.java2d.marlin.MarlinCache.SUBPIXEL_LG_POSITIONS_Y:I
ishl
aload 0
getfield sun.java2d.marlin.MarlinCache.rdrCtx:Lsun/java2d/marlin/RendererContext;
getfield sun.java2d.marlin.RendererContext.stroking:I
ishl
15: istore 7
start local 7 16: aload 0
iload 5
iload 7
iconst_1
ishl
if_icmple 19
17: iload 6
iload 7
imul
18: iload 5
iload 7
isub
getstatic sun.java2d.marlin.MarlinCache.BLOCK_SIZE_LG:I
ishl
if_icmpgt 19
iconst_0
goto 20
StackMap locals: sun.java2d.marlin.MarlinCache int int int int int int int
StackMap stack: sun.java2d.marlin.MarlinCache
19: iconst_1
20: StackMap locals: sun.java2d.marlin.MarlinCache int int int int int int int
StackMap stack: sun.java2d.marlin.MarlinCache int
putfield sun.java2d.marlin.MarlinCache.useRLE:Z
21: getstatic sun.java2d.marlin.MarlinCache.DO_TRACE:Z
ifeq 35
aload 0
getfield sun.java2d.marlin.MarlinCache.useRLE:Z
ifne 35
22: iload 5
i2f
iload 7
i2f
fdiv
23: fstore 8
start local 8 24: iload 6
i2f
fload 8
fconst_1
fsub
fdiv
fstore 9
start local 9 25: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "High complexity: for bbox[width = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
26: iload 6
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
27: ldc " height = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 4
iload 2
isub
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
28: ldc "] edgeSumDeltaY = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
29: ldc " heightSubPixel = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 7
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
30: ldc " meanCrossings = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
fload 8
invokevirtual java.lang.StringBuilder.append:(F)Ljava/lang/StringBuilder;
31: ldc " meanDist = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
fload 9
invokevirtual java.lang.StringBuilder.append:(F)Ljava/lang/StringBuilder;
32: ldc " width = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 6
iload 7
imul
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
33: ldc " <= criteria: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 5
iload 7
isub
getstatic sun.java2d.marlin.MarlinCache.BLOCK_SIZE_LG:I
ishl
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
34: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 9 end local 8 end local 7 35: StackMap locals:
StackMap stack:
iload 6
getstatic sun.java2d.marlin.MarlinCache.TILE_SIZE:I
iadd
getstatic sun.java2d.marlin.MarlinCache.TILE_SIZE_LG:I
ishr
istore 7
start local 7 36: iload 7
sipush 256
if_icmple 40
37: getstatic sun.java2d.marlin.MarlinCache.DO_STATS:Z
ifeq 39
38: aload 0
getfield sun.java2d.marlin.MarlinCache.rdrCtx:Lsun/java2d/marlin/RendererContext;
getfield sun.java2d.marlin.RendererContext.stats:Lsun/java2d/marlin/RendererStats;
getfield sun.java2d.marlin.RendererStats.stat_array_marlincache_touchedTile:Lsun/java2d/marlin/stats/StatLong;
iload 7
invokevirtual sun.java2d.marlin.stats.StatLong.add:(I)V
39: StackMap locals: int
StackMap stack:
aload 0
aload 0
getfield sun.java2d.marlin.MarlinCache.touchedTile_ref:Lsun/java2d/marlin/IntArrayCache$Reference;
iload 7
invokevirtual sun.java2d.marlin.IntArrayCache$Reference.getArray:(I)[I
putfield sun.java2d.marlin.MarlinCache.touchedTile:[I
40: StackMap locals:
StackMap stack:
return
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 41 0 this Lsun/java2d/marlin/MarlinCache;
0 41 1 minx I
0 41 2 miny I
0 41 3 maxx I
0 41 4 maxy I
0 41 5 edgeSumDeltaY I
5 41 6 width I
16 35 7 heightSubPixel I
24 35 8 meanCrossings F
25 35 9 meanDist F
36 41 7 nxTiles I
MethodParameters:
Name Flags
minx
miny
maxx
maxy
edgeSumDeltaY
void dispose();
descriptor: ()V
flags: (0x0000)
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokevirtual sun.java2d.marlin.MarlinCache.resetTileLine:(I)V
1: getstatic sun.java2d.marlin.MarlinCache.DO_STATS:Z
ifeq 3
2: aload 0
getfield sun.java2d.marlin.MarlinCache.rdrCtx:Lsun/java2d/marlin/RendererContext;
getfield sun.java2d.marlin.RendererContext.stats:Lsun/java2d/marlin/RendererStats;
dup
getfield sun.java2d.marlin.RendererStats.totalOffHeap:J
aload 0
getfield sun.java2d.marlin.MarlinCache.rowAAChunk:Lsun/java2d/marlin/OffHeapArray;
getfield sun.java2d.marlin.OffHeapArray.length:J
ladd
putfield sun.java2d.marlin.RendererStats.totalOffHeap:J
3: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.java2d.marlin.MarlinCache.touchedTile_ref:Lsun/java2d/marlin/IntArrayCache$Reference;
aload 0
getfield sun.java2d.marlin.MarlinCache.touchedTile:[I
iconst_0
iconst_0
invokevirtual sun.java2d.marlin.IntArrayCache$Reference.putArray:([III)[I
putfield sun.java2d.marlin.MarlinCache.touchedTile:[I
4: aload 0
getfield sun.java2d.marlin.MarlinCache.rowAAChunk:Lsun/java2d/marlin/OffHeapArray;
getfield sun.java2d.marlin.OffHeapArray.length:J
getstatic sun.java2d.marlin.MarlinCache.INITIAL_CHUNK_ARRAY:J
lcmp
ifeq 6
5: aload 0
getfield sun.java2d.marlin.MarlinCache.rowAAChunk:Lsun/java2d/marlin/OffHeapArray;
getstatic sun.java2d.marlin.MarlinCache.INITIAL_CHUNK_ARRAY:J
invokevirtual sun.java2d.marlin.OffHeapArray.resize:(J)V
6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/java2d/marlin/MarlinCache;
void resetTileLine(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield sun.java2d.marlin.MarlinCache.bboxY0:I
1: getstatic sun.java2d.marlin.MarlinCache.DO_STATS:Z
ifeq 3
2: aload 0
getfield sun.java2d.marlin.MarlinCache.rdrCtx:Lsun/java2d/marlin/RendererContext;
getfield sun.java2d.marlin.RendererContext.stats:Lsun/java2d/marlin/RendererStats;
getfield sun.java2d.marlin.RendererStats.stat_cache_rowAAChunk:Lsun/java2d/marlin/stats/StatLong;
aload 0
getfield sun.java2d.marlin.MarlinCache.rowAAChunkPos:J
invokevirtual sun.java2d.marlin.stats.StatLong.add:(J)V
3: StackMap locals:
StackMap stack:
aload 0
lconst_0
putfield sun.java2d.marlin.MarlinCache.rowAAChunkPos:J
4: aload 0
getfield sun.java2d.marlin.MarlinCache.tileMin:I
ldc 2147483647
if_icmpeq 13
5: getstatic sun.java2d.marlin.MarlinCache.DO_STATS:Z
ifeq 7
6: aload 0
getfield sun.java2d.marlin.MarlinCache.rdrCtx:Lsun/java2d/marlin/RendererContext;
getfield sun.java2d.marlin.RendererContext.stats:Lsun/java2d/marlin/RendererStats;
getfield sun.java2d.marlin.RendererStats.stat_cache_tiles:Lsun/java2d/marlin/stats/StatLong;
aload 0
getfield sun.java2d.marlin.MarlinCache.tileMax:I
aload 0
getfield sun.java2d.marlin.MarlinCache.tileMin:I
isub
invokevirtual sun.java2d.marlin.stats.StatLong.add:(I)V
7: StackMap locals:
StackMap stack:
aload 0
getfield sun.java2d.marlin.MarlinCache.tileMax:I
iconst_1
if_icmpne 10
8: aload 0
getfield sun.java2d.marlin.MarlinCache.touchedTile:[I
iconst_0
iconst_0
iastore
9: goto 11
10: StackMap locals:
StackMap stack:
aload 0
getfield sun.java2d.marlin.MarlinCache.touchedTile:[I
aload 0
getfield sun.java2d.marlin.MarlinCache.tileMin:I
aload 0
getfield sun.java2d.marlin.MarlinCache.tileMax:I
iconst_0
invokestatic sun.java2d.marlin.IntArrayCache.fill:([IIII)V
11: StackMap locals:
StackMap stack:
aload 0
ldc 2147483647
putfield sun.java2d.marlin.MarlinCache.tileMin:I
12: aload 0
ldc -2147483648
putfield sun.java2d.marlin.MarlinCache.tileMax:I
13: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/java2d/marlin/MarlinCache;
0 14 1 pminY I
MethodParameters:
Name Flags
pminY final
void clearAARow(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield sun.java2d.marlin.MarlinCache.bboxY0:I
isub
istore 2
start local 2 1: aload 0
getfield sun.java2d.marlin.MarlinCache.rowAAx0:[I
iload 2
iconst_0
iastore
2: aload 0
getfield sun.java2d.marlin.MarlinCache.rowAAx1:[I
iload 2
iconst_0
iastore
3: aload 0
getfield sun.java2d.marlin.MarlinCache.rowAAEnc:[I
iload 2
iconst_0
iastore
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/java2d/marlin/MarlinCache;
0 5 1 y I
1 5 2 row I
MethodParameters:
Name Flags
y final
void copyAARowNoRLE(int[], int, int, int);
descriptor: ([IIII)V
flags: (0x0000)
Code:
stack=8, locals=23, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 4
aload 0
getfield sun.java2d.marlin.MarlinCache.bboxX1:I
invokestatic sun.java2d.marlin.FloatMath.min:(II)I
istore 5
start local 5 1: getstatic sun.java2d.marlin.MarlinCache.DO_LOG_BOUNDS:Z
ifeq 5
2: new java.lang.StringBuilder
dup
ldc "row = ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " ... "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
3: ldc " ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ") [ for y="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
4: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.java2d.marlin.MarlinUtils.logInfo:(Ljava/lang/String;)V
5: StackMap locals: int
StackMap stack:
iload 2
aload 0
getfield sun.java2d.marlin.MarlinCache.bboxY0:I
isub
istore 6
start local 6 6: aload 0
getfield sun.java2d.marlin.MarlinCache.rowAAx0:[I
iload 6
iload 3
iastore
7: aload 0
getfield sun.java2d.marlin.MarlinCache.rowAAx1:[I
iload 6
iload 5
iastore
8: aload 0
getfield sun.java2d.marlin.MarlinCache.rowAAEnc:[I
iload 6
iconst_0
iastore
9: aload 0
getfield sun.java2d.marlin.MarlinCache.rowAAChunkPos:J
lstore 7
start local 7 10: aload 0
getfield sun.java2d.marlin.MarlinCache.rowAAChunkIndex:[J
iload 6
lload 7
lastore
11: lload 7
iload 5
iload 3
isub
iconst_3
iadd
bipush -4
iand
i2l
ladd
lstore 9
start local 9 12: aload 0
lload 9
putfield sun.java2d.marlin.MarlinCache.rowAAChunkPos:J
13: aload 0
getfield sun.java2d.marlin.MarlinCache.rowAAChunk:Lsun/java2d/marlin/OffHeapArray;
astore 11
start local 11 14: aload 11
getfield sun.java2d.marlin.OffHeapArray.length:J
lload 9
lcmp
ifge 16
15: aload 0
lload 9
invokevirtual sun.java2d.marlin.MarlinCache.expandRowAAChunk:(J)V
16: StackMap locals: sun.java2d.marlin.MarlinCache int[] int int int int int long long sun.java2d.marlin.OffHeapArray
StackMap stack:
getstatic sun.java2d.marlin.MarlinCache.DO_STATS:Z
ifeq 18
17: aload 0
getfield sun.java2d.marlin.MarlinCache.rdrCtx:Lsun/java2d/marlin/RendererContext;
getfield sun.java2d.marlin.RendererContext.stats:Lsun/java2d/marlin/RendererStats;
getfield sun.java2d.marlin.RendererStats.stat_cache_rowAA:Lsun/java2d/marlin/stats/StatLong;
iload 5
iload 3
isub
invokevirtual sun.java2d.marlin.stats.StatLong.add:(I)V
18: StackMap locals:
StackMap stack:
aload 0
getfield sun.java2d.marlin.MarlinCache.touchedTile:[I
astore 12
start local 12 19: getstatic sun.java2d.marlin.MarlinCache.TILE_SIZE_LG:I
istore 13
start local 13 20: iload 3
aload 0
getfield sun.java2d.marlin.MarlinCache.bboxX0:I
isub
istore 14
start local 14 21: iload 5
aload 0
getfield sun.java2d.marlin.MarlinCache.bboxX0:I
isub
istore 15
start local 15 22: getstatic sun.java2d.marlin.OffHeapArray.UNSAFE:Ljdk/internal/misc/Unsafe;
astore 16
start local 16 23: getstatic sun.java2d.marlin.MarlinCache.ALPHA_MAP_UNSAFE:Lsun/java2d/marlin/OffHeapArray;
getfield sun.java2d.marlin.OffHeapArray.address:J
lstore 17
start local 17 24: aload 11
getfield sun.java2d.marlin.OffHeapArray.address:J
lload 7
ladd
lstore 19
start local 19 25: iload 14
istore 21
start local 21 26: iconst_0
istore 22
start local 22 27: goto 36
28: StackMap locals: sun.java2d.marlin.MarlinCache int[] int int int int int long long sun.java2d.marlin.OffHeapArray int[] int int int jdk.internal.misc.Unsafe long long int int
StackMap stack:
iload 22
aload 1
iload 21
iaload
iadd
istore 22
29: iload 22
ifne 32
30: aload 16
lload 19
iconst_0
invokevirtual jdk.internal.misc.Unsafe.putByte:(JB)V
31: goto 34
32: StackMap locals:
StackMap stack:
aload 16
lload 19
aload 16
lload 17
iload 22
i2l
ladd
invokevirtual jdk.internal.misc.Unsafe.getByte:(J)B
invokevirtual jdk.internal.misc.Unsafe.putByte:(JB)V
33: aload 12
iload 21
iload 13
ishr
dup2
iaload
iload 22
iadd
iastore
34: StackMap locals:
StackMap stack:
lload 19
lconst_1
ladd
lstore 19
35: iinc 21 1
StackMap locals:
StackMap stack:
36: iload 21
iload 15
if_icmplt 28
end local 22 end local 21 37: iload 14
iload 13
ishr
istore 21
start local 21 38: iload 21
aload 0
getfield sun.java2d.marlin.MarlinCache.tileMin:I
if_icmpge 40
39: aload 0
iload 21
putfield sun.java2d.marlin.MarlinCache.tileMin:I
40: StackMap locals:
StackMap stack:
iload 15
iconst_1
isub
iload 13
ishr
iconst_1
iadd
istore 21
41: iload 21
aload 0
getfield sun.java2d.marlin.MarlinCache.tileMax:I
if_icmple 43
42: aload 0
iload 21
putfield sun.java2d.marlin.MarlinCache.tileMax:I
43: StackMap locals:
StackMap stack:
getstatic sun.java2d.marlin.MarlinCache.DO_LOG_BOUNDS:Z
ifeq 45
44: new java.lang.StringBuilder
dup
ldc "clear = ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 14
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " ... "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 15
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.java2d.marlin.MarlinUtils.logInfo:(Ljava/lang/String;)V
45: StackMap locals:
StackMap stack:
aload 1
iload 14
iload 4
aload 0
getfield sun.java2d.marlin.MarlinCache.bboxX0:I
isub
iconst_0
invokestatic sun.java2d.marlin.IntArrayCache.fill:([IIII)V
46: return
end local 21 end local 19 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 9 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 47 0 this Lsun/java2d/marlin/MarlinCache;
0 47 1 alphaRow [I
0 47 2 y I
0 47 3 px0 I
0 47 4 px1 I
1 47 5 px_bbox1 I
6 47 6 row I
10 47 7 pos J
12 47 9 needSize J
14 47 11 _rowAAChunk Lsun/java2d/marlin/OffHeapArray;
19 47 12 _touchedTile [I
20 47 13 _TILE_SIZE_LG I
21 47 14 from I
22 47 15 to I
23 47 16 _unsafe Ljdk/internal/misc/Unsafe;
24 47 17 addr_alpha J
25 47 19 addr_off J
26 37 21 x I
27 37 22 val I
38 47 21 tx I
MethodParameters:
Name Flags
alphaRow final
y final
px0 final
px1 final
void copyAARowRLE_WithBlockFlags(int[], int[], int, int, int);
descriptor: ([I[IIII)V
flags: (0x0000)
Code:
stack=9, locals=36, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
getfield sun.java2d.marlin.MarlinCache.bboxX0:I
istore 6
start local 6 1: iload 3
aload 0
getfield sun.java2d.marlin.MarlinCache.bboxY0:I
isub
istore 7
start local 7 2: iload 4
iload 6
isub
istore 8
start local 8 3: iload 5
aload 0
getfield sun.java2d.marlin.MarlinCache.bboxX1:I
invokestatic sun.java2d.marlin.FloatMath.min:(II)I
istore 9
start local 9 4: iload 9
iload 6
isub
istore 10
start local 10 5: getstatic sun.java2d.marlin.MarlinCache.DO_LOG_BOUNDS:Z
ifeq 9
6: new java.lang.StringBuilder
dup
ldc "row = ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " ... "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 9
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
7: ldc " ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ") [ for y="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
8: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.java2d.marlin.MarlinUtils.logInfo:(Ljava/lang/String;)V
9: StackMap locals: sun.java2d.marlin.MarlinCache int[] int[] int int int int int int int int
StackMap stack:
aload 0
iload 7
iload 4
iload 9
invokevirtual sun.java2d.marlin.MarlinCache.startRLERow:(III)J
lstore 11
start local 11 10: lload 11
iload 10
iload 8
isub
iconst_2
ishl
i2l
ladd
lstore 13
start local 13 11: aload 0
getfield sun.java2d.marlin.MarlinCache.rowAAChunk:Lsun/java2d/marlin/OffHeapArray;
astore 15
start local 15 12: aload 15
getfield sun.java2d.marlin.OffHeapArray.length:J
lload 13
lcmp
ifge 14
13: aload 0
lload 13
invokevirtual sun.java2d.marlin.MarlinCache.expandRowAAChunk:(J)V
14: StackMap locals: long long sun.java2d.marlin.OffHeapArray
StackMap stack:
getstatic sun.java2d.marlin.OffHeapArray.UNSAFE:Ljdk/internal/misc/Unsafe;
astore 16
start local 16 15: getstatic sun.java2d.marlin.MarlinCache.ALPHA_MAP_UNSAFE:Lsun/java2d/marlin/OffHeapArray;
getfield sun.java2d.marlin.OffHeapArray.address:J
lstore 17
start local 17 16: aload 15
getfield sun.java2d.marlin.OffHeapArray.address:J
lload 11
ladd
lstore 19
start local 19 17: aload 0
getfield sun.java2d.marlin.MarlinCache.touchedTile:[I
astore 21
start local 21 18: getstatic sun.java2d.marlin.MarlinCache.TILE_SIZE_LG:I
istore 22
start local 22 19: getstatic sun.java2d.marlin.MarlinCache.BLOCK_SIZE_LG:I
istore 23
start local 23 20: iload 8
iload 23
ishr
istore 24
start local 24 21: iload 10
iload 23
ishr
iconst_1
iadd
istore 25
start local 25 22: iconst_0
istore 26
start local 26 23: iload 8
istore 27
start local 27 24: ldc 2147483647
istore 29
start local 29 25: iconst_0
istore 30
start local 30 26: iload 24
istore 31
start local 31 27: goto 70
28: StackMap locals: sun.java2d.marlin.MarlinCache int[] int[] int int int int int int int int long long sun.java2d.marlin.OffHeapArray jdk.internal.misc.Unsafe long long int[] int int int int int int top int int int
StackMap stack:
aload 1
iload 31
iaload
ifeq 33
29: aload 1
iload 31
iconst_0
iastore
30: iload 29
ldc 2147483647
if_icmpne 69
31: iload 31
istore 29
32: goto 69
33: StackMap locals:
StackMap stack:
iload 29
ldc 2147483647
if_icmpeq 67
34: iload 29
iload 23
ishl
iload 8
invokestatic sun.java2d.marlin.FloatMath.max:(II)I
istore 32
start local 32 35: ldc 2147483647
istore 29
36: iload 31
iload 23
ishl
iconst_1
iadd
iload 10
invokestatic sun.java2d.marlin.FloatMath.min:(II)I
istore 33
start local 33 37: iload 32
istore 34
start local 34 38: goto 65
39: StackMap locals: int int int
StackMap stack:
aload 2
iload 34
iaload
dup
istore 35
start local 35 40: ifeq 64
41: aload 2
iload 34
iconst_0
iastore
42: iload 34
iload 27
if_icmpeq 63
43: iload 34
iload 27
isub
istore 28
start local 28 44: iload 26
ifne 49
45: aload 16
lload 19
46: iload 6
iload 34
iadd
bipush 8
ishl
47: invokevirtual jdk.internal.misc.Unsafe.putInt:(JI)V
48: goto 58
49: StackMap locals: sun.java2d.marlin.MarlinCache int[] int[] int int int int int int int int long long sun.java2d.marlin.OffHeapArray jdk.internal.misc.Unsafe long long int[] int int int int int int int int int int int int int int
StackMap stack:
aload 16
lload 19
50: iload 6
iload 34
iadd
bipush 8
ishl
51: aload 16
lload 17
iload 26
i2l
ladd
invokevirtual jdk.internal.misc.Unsafe.getByte:(J)B
sipush 255
iand
52: ior
53: invokevirtual jdk.internal.misc.Unsafe.putInt:(JI)V
54: iload 28
iconst_1
if_icmpne 57
55: aload 21
iload 27
iload 22
ishr
dup2
iaload
iload 26
iadd
iastore
56: goto 58
57: StackMap locals:
StackMap stack:
aload 0
iload 27
iload 26
iload 34
iload 28
aload 21
invokevirtual sun.java2d.marlin.MarlinCache.touchTile:(IIII[I)V
58: StackMap locals:
StackMap stack:
lload 19
ldc 4
ladd
lstore 19
59: getstatic sun.java2d.marlin.MarlinCache.DO_STATS:Z
ifeq 62
60: aload 0
getfield sun.java2d.marlin.MarlinCache.rdrCtx:Lsun/java2d/marlin/RendererContext;
getfield sun.java2d.marlin.RendererContext.stats:Lsun/java2d/marlin/RendererStats;
getfield sun.java2d.marlin.RendererStats.hist_tile_generator_encoding_runLen:Lsun/java2d/marlin/stats/Histogram;
61: iload 28
invokevirtual sun.java2d.marlin.stats.Histogram.add:(I)V
62: StackMap locals:
StackMap stack:
iload 34
istore 27
end local 28 63: StackMap locals: sun.java2d.marlin.MarlinCache int[] int[] int int int int int int int int long long sun.java2d.marlin.OffHeapArray jdk.internal.misc.Unsafe long long int[] int int int int int int top int int int int int int int
StackMap stack:
iload 26
iload 35
iadd
istore 26
64: StackMap locals:
StackMap stack:
iinc 34 1
end local 35 StackMap locals:
StackMap stack:
65: iload 34
iload 33
if_icmplt 39
66: goto 69
end local 34 end local 33 end local 32 StackMap locals:
StackMap stack:
67: getstatic sun.java2d.marlin.MarlinCache.DO_STATS:Z
ifeq 69
68: iinc 30 1
69: StackMap locals:
StackMap stack:
iinc 31 1
StackMap locals:
StackMap stack:
70: iload 31
iload 25
if_icmple 28
end local 31 71: iload 10
iload 27
isub
istore 28
start local 28 72: iload 26
ifne 77
73: aload 16
lload 19
74: iload 6
iload 10
iadd
bipush 8
ishl
75: invokevirtual jdk.internal.misc.Unsafe.putInt:(JI)V
76: goto 86
77: StackMap locals: sun.java2d.marlin.MarlinCache int[] int[] int int int int int int int int long long sun.java2d.marlin.OffHeapArray jdk.internal.misc.Unsafe long long int[] int int int int int int int int int
StackMap stack:
aload 16
lload 19
78: iload 6
iload 10
iadd
bipush 8
ishl
79: aload 16
lload 17
iload 26
i2l
ladd
invokevirtual jdk.internal.misc.Unsafe.getByte:(J)B
sipush 255
iand
80: ior
81: invokevirtual jdk.internal.misc.Unsafe.putInt:(JI)V
82: iload 28
iconst_1
if_icmpne 85
83: aload 21
iload 27
iload 22
ishr
dup2
iaload
iload 26
iadd
iastore
84: goto 86
85: StackMap locals:
StackMap stack:
aload 0
iload 27
iload 26
iload 10
iload 28
aload 21
invokevirtual sun.java2d.marlin.MarlinCache.touchTile:(IIII[I)V
86: StackMap locals:
StackMap stack:
lload 19
ldc 4
ladd
lstore 19
87: getstatic sun.java2d.marlin.MarlinCache.DO_STATS:Z
ifeq 89
88: aload 0
getfield sun.java2d.marlin.MarlinCache.rdrCtx:Lsun/java2d/marlin/RendererContext;
getfield sun.java2d.marlin.RendererContext.stats:Lsun/java2d/marlin/RendererStats;
getfield sun.java2d.marlin.RendererStats.hist_tile_generator_encoding_runLen:Lsun/java2d/marlin/stats/Histogram;
iload 28
invokevirtual sun.java2d.marlin.stats.Histogram.add:(I)V
89: StackMap locals:
StackMap stack:
lload 19
aload 15
getfield sun.java2d.marlin.OffHeapArray.address:J
lsub
lstore 31
start local 31 90: aload 0
getfield sun.java2d.marlin.MarlinCache.rowAALen:[J
iload 7
lload 31
lload 11
lsub
lastore
91: aload 0
lload 31
putfield sun.java2d.marlin.MarlinCache.rowAAChunkPos:J
92: getstatic sun.java2d.marlin.MarlinCache.DO_STATS:Z
ifeq 97
93: aload 0
getfield sun.java2d.marlin.MarlinCache.rdrCtx:Lsun/java2d/marlin/RendererContext;
getfield sun.java2d.marlin.RendererContext.stats:Lsun/java2d/marlin/RendererStats;
getfield sun.java2d.marlin.RendererStats.stat_cache_rowAA:Lsun/java2d/marlin/stats/StatLong;
aload 0
getfield sun.java2d.marlin.MarlinCache.rowAALen:[J
iload 7
laload
invokevirtual sun.java2d.marlin.stats.StatLong.add:(J)V
94: aload 0
getfield sun.java2d.marlin.MarlinCache.rdrCtx:Lsun/java2d/marlin/RendererContext;
getfield sun.java2d.marlin.RendererContext.stats:Lsun/java2d/marlin/RendererStats;
getfield sun.java2d.marlin.RendererStats.hist_tile_generator_encoding_ratio:Lsun/java2d/marlin/stats/Histogram;
95: bipush 100
iload 30
imul
iload 25
iload 24
isub
idiv
96: invokevirtual sun.java2d.marlin.stats.Histogram.add:(I)V
97: StackMap locals: long
StackMap stack:
iload 8
iload 22
ishr
istore 33
start local 33 98: iload 33
aload 0
getfield sun.java2d.marlin.MarlinCache.tileMin:I
if_icmpge 100
99: aload 0
iload 33
putfield sun.java2d.marlin.MarlinCache.tileMin:I
100: StackMap locals: int
StackMap stack:
iload 10
iconst_1
isub
iload 22
ishr
iconst_1
iadd
istore 33
101: iload 33
aload 0
getfield sun.java2d.marlin.MarlinCache.tileMax:I
if_icmple 103
102: aload 0
iload 33
putfield sun.java2d.marlin.MarlinCache.tileMax:I
103: StackMap locals:
StackMap stack:
iload 5
aload 0
getfield sun.java2d.marlin.MarlinCache.bboxX1:I
if_icmple 106
104: aload 2
iload 10
iconst_0
iastore
105: aload 2
iload 10
iconst_1
iadd
iconst_0
iastore
106: StackMap locals:
StackMap stack:
getstatic sun.java2d.marlin.MarlinCache.DO_CHECKS:Z
ifeq 109
107: aload 1
iload 24
iload 25
iconst_0
invokestatic sun.java2d.marlin.IntArrayCache.check:([IIII)V
108: aload 2
iload 8
iload 5
aload 0
getfield sun.java2d.marlin.MarlinCache.bboxX0:I
isub
iconst_0
invokestatic sun.java2d.marlin.IntArrayCache.check:([IIII)V
109: StackMap locals:
StackMap stack:
return
end local 33 end local 31 end local 30 end local 29 end local 28 end local 27 end local 26 end local 25 end local 24 end local 23 end local 22 end local 21 end local 19 end local 17 end local 16 end local 15 end local 13 end local 11 end local 10 end local 9 end local 8 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 110 0 this Lsun/java2d/marlin/MarlinCache;
0 110 1 blkFlags [I
0 110 2 alphaRow [I
0 110 3 y I
0 110 4 px0 I
0 110 5 px1 I
1 110 6 _bboxX0 I
2 110 7 row I
3 110 8 from I
4 110 9 px_bbox1 I
5 110 10 to I
10 110 11 initialPos J
11 110 13 needSize J
12 110 15 _rowAAChunk Lsun/java2d/marlin/OffHeapArray;
15 110 16 _unsafe Ljdk/internal/misc/Unsafe;
16 110 17 addr_alpha J
17 110 19 addr_off J
18 110 21 _touchedTile [I
19 110 22 _TILE_SIZE_LG I
20 110 23 _BLK_SIZE_LG I
21 110 24 blkW I
22 110 25 blkE I
23 110 26 val I
24 110 27 cx0 I
44 63 28 runLen I
72 110 28 runLen I
25 110 29 last_t0 I
26 110 30 skip I
27 71 31 t I
35 67 32 blk_x0 I
37 67 33 blk_x1 I
38 67 34 cx I
40 65 35 delta I
90 110 31 len J
98 110 33 tx I
MethodParameters:
Name Flags
blkFlags final
alphaRow final
y final
px0 final
px1 final
long startRLERow(int, int, int);
descriptor: (III)J
flags: (0x0000)
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield sun.java2d.marlin.MarlinCache.rowAAx0:[I
iload 1
iload 2
iastore
1: aload 0
getfield sun.java2d.marlin.MarlinCache.rowAAx1:[I
iload 1
iload 3
iastore
2: aload 0
getfield sun.java2d.marlin.MarlinCache.rowAAEnc:[I
iload 1
iconst_1
iastore
3: aload 0
getfield sun.java2d.marlin.MarlinCache.rowAAPos:[J
iload 1
lconst_0
lastore
4: aload 0
getfield sun.java2d.marlin.MarlinCache.rowAAChunkIndex:[J
iload 1
aload 0
getfield sun.java2d.marlin.MarlinCache.rowAAChunkPos:J
dup2_x2
lastore
lreturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/java2d/marlin/MarlinCache;
0 5 1 row I
0 5 2 x0 I
0 5 3 x1 I
MethodParameters:
Name Flags
row final
x0 final
x1 final
private void expandRowAAChunk(long);
descriptor: (J)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: getstatic sun.java2d.marlin.MarlinCache.DO_STATS:Z
ifeq 2
1: aload 0
getfield sun.java2d.marlin.MarlinCache.rdrCtx:Lsun/java2d/marlin/RendererContext;
getfield sun.java2d.marlin.RendererContext.stats:Lsun/java2d/marlin/RendererStats;
getfield sun.java2d.marlin.RendererStats.stat_array_marlincache_rowAAChunk:Lsun/java2d/marlin/stats/StatLong;
lload 1
invokevirtual sun.java2d.marlin.stats.StatLong.add:(J)V
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.java2d.marlin.MarlinCache.rowAAChunk:Lsun/java2d/marlin/OffHeapArray;
getfield sun.java2d.marlin.OffHeapArray.length:J
3: lload 1
4: invokestatic sun.java2d.marlin.ArrayCacheConst.getNewLargeSize:(JJ)J
lstore 3
start local 3 5: aload 0
getfield sun.java2d.marlin.MarlinCache.rowAAChunk:Lsun/java2d/marlin/OffHeapArray;
lload 3
invokevirtual sun.java2d.marlin.OffHeapArray.resize:(J)V
6: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/java2d/marlin/MarlinCache;
0 7 1 needSize J
5 7 3 newSize J
MethodParameters:
Name Flags
needSize final
private void touchTile(int, int, int, int, int[]);
descriptor: (IIII[I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=12, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: getstatic sun.java2d.marlin.MarlinCache.TILE_SIZE_LG:I
istore 6
start local 6 1: iload 1
iload 6
ishr
istore 7
start local 7 2: iload 7
iload 3
iload 6
ishr
if_icmpne 5
3: aload 5
iload 7
dup2
iaload
iload 2
iload 4
imul
iadd
iastore
4: return
5: StackMap locals: int int
StackMap stack:
iload 3
iconst_1
isub
iload 6
ishr
istore 8
start local 8 6: iload 7
iload 8
if_icmpgt 9
7: iload 7
iconst_1
iadd
iload 6
ishl
istore 9
start local 9 8: aload 5
iload 7
iinc 7 1
dup2
iaload
iload 2
iload 9
iload 1
isub
imul
iadd
iastore
end local 9 9: StackMap locals: int
StackMap stack:
iload 7
iload 8
if_icmpge 15
10: iload 2
iload 6
ishl
istore 9
start local 9 11: goto 14
12: StackMap locals: int
StackMap stack:
aload 5
iload 7
dup2
iaload
iload 9
iadd
iastore
13: iinc 7 1
StackMap locals:
StackMap stack:
14: iload 7
iload 8
if_icmplt 12
end local 9 15: StackMap locals:
StackMap stack:
iload 7
iload 8
if_icmpne 22
16: iload 7
iload 6
ishl
istore 9
start local 9 17: iload 7
iconst_1
iadd
iload 6
ishl
istore 10
start local 10 18: iload 10
iload 3
if_icmpgt 19
iload 10
goto 20
StackMap locals: int int
StackMap stack:
19: iload 3
StackMap locals:
StackMap stack: int
20: istore 11
start local 11 21: aload 5
iload 7
dup2
iaload
iload 2
iload 11
iload 9
isub
imul
iadd
iastore
end local 11 end local 10 end local 9 22: StackMap locals:
StackMap stack:
return
end local 8 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 23 0 this Lsun/java2d/marlin/MarlinCache;
0 23 1 x0 I
0 23 2 val I
0 23 3 x1 I
0 23 4 runLen I
0 23 5 _touchedTile [I
1 23 6 _TILE_SIZE_LG I
2 23 7 tx I
6 23 8 tx1 I
8 9 9 nextTileXCoord I
11 15 9 tileVal I
17 22 9 txXCoord I
18 22 10 nextTileXCoord I
21 22 11 lastXCoord I
MethodParameters:
Name Flags
x0 final
val final
x1 final
runLen final
_touchedTile final
int alphaSumInTile(int);
descriptor: (I)I
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.java2d.marlin.MarlinCache.touchedTile:[I
iload 1
aload 0
getfield sun.java2d.marlin.MarlinCache.bboxX0:I
isub
getstatic sun.java2d.marlin.MarlinCache.TILE_SIZE_LG:I
ishr
iaload
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/java2d/marlin/MarlinCache;
0 1 1 x I
MethodParameters:
Name Flags
x final
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "bbox = ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
1: aload 0
getfield sun.java2d.marlin.MarlinCache.bboxX0:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.java2d.marlin.MarlinCache.bboxY0:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " => "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: aload 0
getfield sun.java2d.marlin.MarlinCache.bboxX1:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.java2d.marlin.MarlinCache.bboxY1:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "]\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/java2d/marlin/MarlinCache;
private static byte[] buildAlphaMap(int);
descriptor: (I)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: iload 0
iconst_1
ishl
newarray 8
astore 1
start local 1 1: iload 0
iconst_2
ishr
istore 2
start local 2 2: iconst_0
istore 3
start local 3 3: goto 6
4: StackMap locals: byte[] int int
StackMap stack:
aload 1
iload 3
iload 3
sipush 255
imul
iload 2
iadd
iload 0
idiv
i2b
bastore
5: iinc 3 1
StackMap locals:
StackMap stack:
6: iload 3
iload 0
if_icmple 4
end local 3 7: aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 maxalpha I
1 8 1 alMap [B
2 8 2 halfmaxalpha I
3 7 3 i I
MethodParameters:
Name Flags
maxalpha final
}
SourceFile: "MarlinCache.java"
InnerClasses:
final Reference = sun.java2d.marlin.IntArrayCache$Reference of sun.java2d.marlin.IntArrayCache