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.RendererStats rdrStats;
descriptor: Lsun/java2d/marlin/RendererStats;
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_H:I
getstatic sun.java2d.marlin.MarlinCache.INITIAL_PIXEL_WIDTH:I
imul
iconst_2
ishr
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_H:I
newarray 11
putfield sun.java2d.marlin.MarlinCache.rowAAChunkIndex:[J
2: aload 0
getstatic sun.java2d.marlin.MarlinCache.TILE_H:I
newarray 10
putfield sun.java2d.marlin.MarlinCache.rowAAx0:[I
3: aload 0
getstatic sun.java2d.marlin.MarlinCache.TILE_H:I
newarray 10
putfield sun.java2d.marlin.MarlinCache.rowAAx1:[I
4: aload 0
getstatic sun.java2d.marlin.MarlinCache.TILE_H:I
newarray 10
putfield sun.java2d.marlin.MarlinCache.rowAAEnc:[I
5: aload 0
getstatic sun.java2d.marlin.MarlinCache.TILE_H:I
newarray 11
putfield sun.java2d.marlin.MarlinCache.rowAALen:[J
6: aload 0
getstatic sun.java2d.marlin.MarlinCache.TILE_H: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
invokevirtual sun.java2d.marlin.RendererContext.stats:()Lsun/java2d/marlin/RendererStats;
putfield sun.java2d.marlin.MarlinCache.rdrStats:Lsun/java2d/marlin/RendererStats;
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);
descriptor: (IIII)V
flags: (0x0000)
Code:
stack=3, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 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 5
start local 5 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 14
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 14
11: StackMap locals:
StackMap stack:
aload 0
iload 5
getstatic sun.java2d.marlin.MarlinCache.RLE_MIN_WIDTH:I
if_icmple 12
iload 5
ldc 8388608
if_icmpge 12
iconst_1
goto 13
StackMap locals:
StackMap stack: sun.java2d.marlin.MarlinCache
12: iconst_0
StackMap locals: sun.java2d.marlin.MarlinCache int int int int int
StackMap stack: sun.java2d.marlin.MarlinCache int
13: putfield sun.java2d.marlin.MarlinCache.useRLE:Z
14: StackMap locals:
StackMap stack:
iload 5
getstatic sun.java2d.marlin.MarlinCache.TILE_W:I
iadd
getstatic sun.java2d.marlin.MarlinCache.TILE_W_LG:I
ishr
istore 6
start local 6 15: iload 6
sipush 256
if_icmple 19
16: getstatic sun.java2d.marlin.MarlinCache.DO_STATS:Z
ifeq 18
17: aload 0
getfield sun.java2d.marlin.MarlinCache.rdrStats:Lsun/java2d/marlin/RendererStats;
getfield sun.java2d.marlin.RendererStats.stat_array_marlincache_touchedTile:Lsun/java2d/marlin/stats/StatLong;
iload 6
invokevirtual sun.java2d.marlin.stats.StatLong.add:(I)V
18: StackMap locals: int
StackMap stack:
aload 0
aload 0
getfield sun.java2d.marlin.MarlinCache.touchedTile_ref:Lsun/java2d/marlin/IntArrayCache$Reference;
iload 6
invokevirtual sun.java2d.marlin.IntArrayCache$Reference.getArray:(I)[I
putfield sun.java2d.marlin.MarlinCache.touchedTile:[I
19: StackMap locals:
StackMap stack:
return
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 20 0 this Lsun/java2d/marlin/MarlinCache;
0 20 1 minx I
0 20 2 miny I
0 20 3 maxx I
0 20 4 maxy I
5 20 5 width I
15 20 6 nxTiles I
MethodParameters:
Name Flags
minx
miny
maxx
maxy
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.rdrStats: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.rdrStats: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.rdrStats: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.rdrStats: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_W_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
iconst_1
iadd
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_W_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: aload 1
iload 25
iconst_0
iastore
23: iconst_0
istore 26
start local 26 24: iload 8
istore 27
start local 27 25: ldc 2147483647
istore 29
start local 29 26: iconst_0
istore 30
start local 30 27: iload 24
istore 31
start local 31 28: goto 71
29: 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 34
30: aload 1
iload 31
iconst_0
iastore
31: iload 29
ldc 2147483647
if_icmpne 70
32: iload 31
istore 29
33: goto 70
34: StackMap locals:
StackMap stack:
iload 29
ldc 2147483647
if_icmpeq 68
35: iload 29
iload 23
ishl
iload 8
invokestatic sun.java2d.marlin.FloatMath.max:(II)I
istore 32
start local 32 36: ldc 2147483647
istore 29
37: iload 31
iload 23
ishl
iconst_1
iadd
iload 10
invokestatic sun.java2d.marlin.FloatMath.min:(II)I
istore 33
start local 33 38: iload 32
istore 34
start local 34 39: goto 66
40: StackMap locals: int int int
StackMap stack:
aload 2
iload 34
iaload
dup
istore 35
start local 35 41: ifeq 65
42: aload 2
iload 34
iconst_0
iastore
43: iload 34
iload 27
if_icmpeq 64
44: iload 34
iload 27
isub
istore 28
start local 28 45: iload 26
ifne 50
46: aload 16
lload 19
47: iload 6
iload 34
iadd
bipush 8
ishl
48: invokevirtual jdk.internal.misc.Unsafe.putInt:(JI)V
49: goto 59
50: 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
51: iload 6
iload 34
iadd
bipush 8
ishl
52: aload 16
lload 17
iload 26
i2l
ladd
invokevirtual jdk.internal.misc.Unsafe.getByte:(J)B
sipush 255
iand
53: ior
54: invokevirtual jdk.internal.misc.Unsafe.putInt:(JI)V
55: iload 28
iconst_1
if_icmpne 58
56: aload 21
iload 27
iload 22
ishr
dup2
iaload
iload 26
iadd
iastore
57: goto 59
58: 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
59: StackMap locals:
StackMap stack:
lload 19
ldc 4
ladd
lstore 19
60: getstatic sun.java2d.marlin.MarlinCache.DO_STATS:Z
ifeq 63
61: aload 0
getfield sun.java2d.marlin.MarlinCache.rdrStats:Lsun/java2d/marlin/RendererStats;
getfield sun.java2d.marlin.RendererStats.hist_tile_generator_encoding_runLen:Lsun/java2d/marlin/stats/Histogram;
62: iload 28
invokevirtual sun.java2d.marlin.stats.Histogram.add:(I)V
63: StackMap locals:
StackMap stack:
iload 34
istore 27
end local 28 64: 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
65: StackMap locals:
StackMap stack:
iinc 34 1
end local 35 StackMap locals:
StackMap stack:
66: iload 34
iload 33
if_icmplt 40
67: goto 70
end local 34 end local 33 end local 32 StackMap locals:
StackMap stack:
68: getstatic sun.java2d.marlin.MarlinCache.DO_STATS:Z
ifeq 70
69: iinc 30 1
70: StackMap locals:
StackMap stack:
iinc 31 1
StackMap locals:
StackMap stack:
71: iload 31
iload 25
if_icmple 29
end local 31 72: iload 10
iload 27
isub
istore 28
start local 28 73: iload 26
ifne 78
74: aload 16
lload 19
75: iload 6
iload 10
iadd
bipush 8
ishl
76: invokevirtual jdk.internal.misc.Unsafe.putInt:(JI)V
77: goto 87
78: 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
79: iload 6
iload 10
iadd
bipush 8
ishl
80: aload 16
lload 17
iload 26
i2l
ladd
invokevirtual jdk.internal.misc.Unsafe.getByte:(J)B
sipush 255
iand
81: ior
82: invokevirtual jdk.internal.misc.Unsafe.putInt:(JI)V
83: iload 28
iconst_1
if_icmpne 86
84: aload 21
iload 27
iload 22
ishr
dup2
iaload
iload 26
iadd
iastore
85: goto 87
86: 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
87: StackMap locals:
StackMap stack:
lload 19
ldc 4
ladd
lstore 19
88: getstatic sun.java2d.marlin.MarlinCache.DO_STATS:Z
ifeq 90
89: aload 0
getfield sun.java2d.marlin.MarlinCache.rdrStats: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
90: StackMap locals:
StackMap stack:
lload 19
aload 15
getfield sun.java2d.marlin.OffHeapArray.address:J
lsub
lstore 31
start local 31 91: aload 0
getfield sun.java2d.marlin.MarlinCache.rowAALen:[J
iload 7
lload 31
lload 11
lsub
lastore
92: aload 0
lload 31
putfield sun.java2d.marlin.MarlinCache.rowAAChunkPos:J
93: getstatic sun.java2d.marlin.MarlinCache.DO_STATS:Z
ifeq 98
94: aload 0
getfield sun.java2d.marlin.MarlinCache.rdrStats: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
95: aload 0
getfield sun.java2d.marlin.MarlinCache.rdrStats:Lsun/java2d/marlin/RendererStats;
getfield sun.java2d.marlin.RendererStats.hist_tile_generator_encoding_ratio:Lsun/java2d/marlin/stats/Histogram;
96: bipush 100
iload 30
imul
iload 25
iload 24
isub
idiv
97: invokevirtual sun.java2d.marlin.stats.Histogram.add:(I)V
98: StackMap locals: long
StackMap stack:
iload 8
iload 22
ishr
istore 33
start local 33 99: iload 33
aload 0
getfield sun.java2d.marlin.MarlinCache.tileMin:I
if_icmpge 101
100: aload 0
iload 33
putfield sun.java2d.marlin.MarlinCache.tileMin:I
101: StackMap locals: int
StackMap stack:
iload 10
iconst_1
isub
iload 22
ishr
iconst_1
iadd
istore 33
102: iload 33
aload 0
getfield sun.java2d.marlin.MarlinCache.tileMax:I
if_icmple 104
103: aload 0
iload 33
putfield sun.java2d.marlin.MarlinCache.tileMax:I
104: StackMap locals:
StackMap stack:
aload 2
iload 10
iconst_0
iastore
105: getstatic sun.java2d.marlin.MarlinCache.DO_CHECKS:Z
ifeq 108
106: aload 1
iload 24
iload 25
iconst_0
invokestatic sun.java2d.marlin.IntArrayCache.check:([IIII)V
107: aload 2
iload 8
iload 5
iconst_1
iadd
aload 0
getfield sun.java2d.marlin.MarlinCache.bboxX0:I
isub
iconst_0
invokestatic sun.java2d.marlin.IntArrayCache.check:([IIII)V
108: 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 109 0 this Lsun/java2d/marlin/MarlinCache;
0 109 1 blkFlags [I
0 109 2 alphaRow [I
0 109 3 y I
0 109 4 px0 I
0 109 5 px1 I
1 109 6 _bboxX0 I
2 109 7 row I
3 109 8 from I
4 109 9 px_bbox1 I
5 109 10 to I
10 109 11 initialPos J
11 109 13 needSize J
12 109 15 _rowAAChunk Lsun/java2d/marlin/OffHeapArray;
15 109 16 _unsafe Ljdk/internal/misc/Unsafe;
16 109 17 addr_alpha J
17 109 19 addr_off J
18 109 21 _touchedTile [I
19 109 22 _TILE_SIZE_LG I
20 109 23 _BLK_SIZE_LG I
21 109 24 blkW I
22 109 25 blkE I
24 109 26 val I
25 109 27 cx0 I
45 64 28 runLen I
73 109 28 runLen I
26 109 29 last_t0 I
27 109 30 skip I
28 72 31 t I
36 68 32 blk_x0 I
38 68 33 blk_x1 I
39 68 34 cx I
41 66 35 delta I
91 109 31 len J
99 109 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.rdrStats: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_W_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_W_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