final class sun.java2d.marlin.RendererContext extends sun.java2d.ReentrantContext implements sun.java2d.marlin.MarlinConst
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.java2d.marlin.RendererContext
super_class: sun.java2d.ReentrantContext
{
private static final java.util.concurrent.atomic.AtomicInteger CTX_COUNT;
descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.lang.Object cleanerObj;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
boolean dirty;
descriptor: Z
flags: (0x0000)
final float[] float6;
descriptor: [F
flags: (0x0010) ACC_FINAL
final sun.java2d.marlin.Curve curve;
descriptor: Lsun/java2d/marlin/Curve;
flags: (0x0010) ACC_FINAL
final sun.java2d.marlin.MarlinRenderingEngine$NormalizingPathIterator nPCPathIterator;
descriptor: Lsun/java2d/marlin/MarlinRenderingEngine$NormalizingPathIterator;
flags: (0x0010) ACC_FINAL
final sun.java2d.marlin.MarlinRenderingEngine$NormalizingPathIterator nPQPathIterator;
descriptor: Lsun/java2d/marlin/MarlinRenderingEngine$NormalizingPathIterator;
flags: (0x0010) ACC_FINAL
final sun.java2d.marlin.TransformingPathConsumer2D transformerPC2D;
descriptor: Lsun/java2d/marlin/TransformingPathConsumer2D;
flags: (0x0010) ACC_FINAL
private java.lang.ref.WeakReference<java.awt.geom.Path2D$Float> refPath2D;
descriptor: Ljava/lang/ref/WeakReference;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/lang/ref/WeakReference<Ljava/awt/geom/Path2D$Float;>;
final sun.java2d.marlin.Renderer renderer;
descriptor: Lsun/java2d/marlin/Renderer;
flags: (0x0010) ACC_FINAL
final sun.java2d.marlin.Stroker stroker;
descriptor: Lsun/java2d/marlin/Stroker;
flags: (0x0010) ACC_FINAL
final sun.java2d.marlin.CollinearSimplifier simplifier;
descriptor: Lsun/java2d/marlin/CollinearSimplifier;
flags: (0x0010) ACC_FINAL
final sun.java2d.marlin.Dasher dasher;
descriptor: Lsun/java2d/marlin/Dasher;
flags: (0x0010) ACC_FINAL
final sun.java2d.marlin.MarlinTileGenerator ptg;
descriptor: Lsun/java2d/marlin/MarlinTileGenerator;
flags: (0x0010) ACC_FINAL
final sun.java2d.marlin.MarlinCache cache;
descriptor: Lsun/java2d/marlin/MarlinCache;
flags: (0x0010) ACC_FINAL
int stroking;
descriptor: I
flags: (0x0000)
private final sun.java2d.marlin.IntArrayCache cleanIntCache;
descriptor: Lsun/java2d/marlin/IntArrayCache;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final sun.java2d.marlin.IntArrayCache dirtyIntCache;
descriptor: Lsun/java2d/marlin/IntArrayCache;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final sun.java2d.marlin.FloatArrayCache dirtyFloatCache;
descriptor: Lsun/java2d/marlin/FloatArrayCache;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final sun.java2d.marlin.ByteArrayCache dirtyByteCache;
descriptor: Lsun/java2d/marlin/ByteArrayCache;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final sun.java2d.marlin.RendererStats stats;
descriptor: Lsun/java2d/marlin/RendererStats;
flags: (0x0010) ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: new java.util.concurrent.atomic.AtomicInteger
dup
iconst_1
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
putstatic sun.java2d.marlin.RendererContext.CTX_COUNT:Ljava/util/concurrent/atomic/AtomicInteger;
return
LocalVariableTable:
Start End Slot Name Signature
static sun.java2d.marlin.RendererContext createContext();
descriptor: ()Lsun/java2d/marlin/RendererContext;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=0, args_size=0
0: new sun.java2d.marlin.RendererContext
dup
new java.lang.StringBuilder
dup
ldc "ctx"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
1: getstatic sun.java2d.marlin.RendererContext.CTX_COUNT:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.getAndIncrement:()I
invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
2: invokespecial sun.java2d.marlin.RendererContext.<init>:(Ljava/lang/String;)V
areturn
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial sun.java2d.ReentrantContext.<init>:()V
1: aload 0
iconst_0
putfield sun.java2d.marlin.RendererContext.dirty:Z
2: aload 0
bipush 6
newarray 6
putfield sun.java2d.marlin.RendererContext.float6:[F
3: aload 0
new sun.java2d.marlin.Curve
dup
invokespecial sun.java2d.marlin.Curve.<init>:()V
putfield sun.java2d.marlin.RendererContext.curve:Lsun/java2d/marlin/Curve;
4: aload 0
aconst_null
putfield sun.java2d.marlin.RendererContext.refPath2D:Ljava/lang/ref/WeakReference;
5: aload 0
new sun.java2d.marlin.CollinearSimplifier
dup
invokespecial sun.java2d.marlin.CollinearSimplifier.<init>:()V
putfield sun.java2d.marlin.RendererContext.simplifier:Lsun/java2d/marlin/CollinearSimplifier;
6: aload 0
iconst_0
putfield sun.java2d.marlin.RendererContext.stroking:I
7: aload 0
new sun.java2d.marlin.IntArrayCache
dup
iconst_1
iconst_5
invokespecial sun.java2d.marlin.IntArrayCache.<init>:(ZI)V
putfield sun.java2d.marlin.RendererContext.cleanIntCache:Lsun/java2d/marlin/IntArrayCache;
8: aload 0
new sun.java2d.marlin.IntArrayCache
dup
iconst_0
iconst_4
invokespecial sun.java2d.marlin.IntArrayCache.<init>:(ZI)V
putfield sun.java2d.marlin.RendererContext.dirtyIntCache:Lsun/java2d/marlin/IntArrayCache;
9: aload 0
new sun.java2d.marlin.FloatArrayCache
dup
iconst_0
iconst_3
invokespecial sun.java2d.marlin.FloatArrayCache.<init>:(ZI)V
putfield sun.java2d.marlin.RendererContext.dirtyFloatCache:Lsun/java2d/marlin/FloatArrayCache;
10: aload 0
new sun.java2d.marlin.ByteArrayCache
dup
iconst_0
iconst_1
invokespecial sun.java2d.marlin.ByteArrayCache.<init>:(ZI)V
putfield sun.java2d.marlin.RendererContext.dirtyByteCache:Lsun/java2d/marlin/ByteArrayCache;
11: getstatic sun.java2d.marlin.RendererContext.LOG_CREATE_CONTEXT:Z
ifeq 13
12: new java.lang.StringBuilder
dup
ldc "new RendererContext = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
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
13: StackMap locals: sun.java2d.marlin.RendererContext java.lang.String
StackMap stack:
aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.java2d.marlin.RendererContext.cleanerObj:Ljava/lang/Object;
14: getstatic sun.java2d.marlin.RendererContext.DO_STATS:Z
ifeq 20
15: aload 0
aload 0
getfield sun.java2d.marlin.RendererContext.cleanerObj:Ljava/lang/Object;
aload 1
invokestatic sun.java2d.marlin.RendererStats.createInstance:(Ljava/lang/Object;Ljava/lang/String;)Lsun/java2d/marlin/RendererStats;
putfield sun.java2d.marlin.RendererContext.stats:Lsun/java2d/marlin/RendererStats;
16: aload 0
getfield sun.java2d.marlin.RendererContext.stats:Lsun/java2d/marlin/RendererStats;
iconst_4
anewarray sun.java2d.marlin.ArrayCacheConst$CacheStats
dup
iconst_0
aload 0
getfield sun.java2d.marlin.RendererContext.cleanIntCache:Lsun/java2d/marlin/IntArrayCache;
getfield sun.java2d.marlin.IntArrayCache.stats:Lsun/java2d/marlin/ArrayCacheConst$CacheStats;
aastore
dup
iconst_1
17: aload 0
getfield sun.java2d.marlin.RendererContext.dirtyIntCache:Lsun/java2d/marlin/IntArrayCache;
getfield sun.java2d.marlin.IntArrayCache.stats:Lsun/java2d/marlin/ArrayCacheConst$CacheStats;
aastore
dup
iconst_2
aload 0
getfield sun.java2d.marlin.RendererContext.dirtyFloatCache:Lsun/java2d/marlin/FloatArrayCache;
getfield sun.java2d.marlin.FloatArrayCache.stats:Lsun/java2d/marlin/ArrayCacheConst$CacheStats;
aastore
dup
iconst_3
aload 0
getfield sun.java2d.marlin.RendererContext.dirtyByteCache:Lsun/java2d/marlin/ByteArrayCache;
getfield sun.java2d.marlin.ByteArrayCache.stats:Lsun/java2d/marlin/ArrayCacheConst$CacheStats;
aastore
18: putfield sun.java2d.marlin.RendererStats.cacheStats:[Lsun/java2d/marlin/ArrayCacheConst$CacheStats;
19: goto 21
20: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield sun.java2d.marlin.RendererContext.stats:Lsun/java2d/marlin/RendererStats;
21: StackMap locals:
StackMap stack:
aload 0
new sun.java2d.marlin.MarlinRenderingEngine$NormalizingPathIterator$NearestPixelCenter
dup
aload 0
getfield sun.java2d.marlin.RendererContext.float6:[F
invokespecial sun.java2d.marlin.MarlinRenderingEngine$NormalizingPathIterator$NearestPixelCenter.<init>:([F)V
putfield sun.java2d.marlin.RendererContext.nPCPathIterator:Lsun/java2d/marlin/MarlinRenderingEngine$NormalizingPathIterator;
22: aload 0
new sun.java2d.marlin.MarlinRenderingEngine$NormalizingPathIterator$NearestPixelQuarter
dup
aload 0
getfield sun.java2d.marlin.RendererContext.float6:[F
invokespecial sun.java2d.marlin.MarlinRenderingEngine$NormalizingPathIterator$NearestPixelQuarter.<init>:([F)V
putfield sun.java2d.marlin.RendererContext.nPQPathIterator:Lsun/java2d/marlin/MarlinRenderingEngine$NormalizingPathIterator;
23: aload 0
new sun.java2d.marlin.TransformingPathConsumer2D
dup
invokespecial sun.java2d.marlin.TransformingPathConsumer2D.<init>:()V
putfield sun.java2d.marlin.RendererContext.transformerPC2D:Lsun/java2d/marlin/TransformingPathConsumer2D;
24: aload 0
new sun.java2d.marlin.MarlinCache
dup
aload 0
invokespecial sun.java2d.marlin.MarlinCache.<init>:(Lsun/java2d/marlin/RendererContext;)V
putfield sun.java2d.marlin.RendererContext.cache:Lsun/java2d/marlin/MarlinCache;
25: aload 0
new sun.java2d.marlin.Renderer
dup
aload 0
invokespecial sun.java2d.marlin.Renderer.<init>:(Lsun/java2d/marlin/RendererContext;)V
putfield sun.java2d.marlin.RendererContext.renderer:Lsun/java2d/marlin/Renderer;
26: aload 0
new sun.java2d.marlin.MarlinTileGenerator
dup
aload 0
getfield sun.java2d.marlin.RendererContext.renderer:Lsun/java2d/marlin/Renderer;
invokespecial sun.java2d.marlin.MarlinTileGenerator.<init>:(Lsun/java2d/marlin/Renderer;)V
putfield sun.java2d.marlin.RendererContext.ptg:Lsun/java2d/marlin/MarlinTileGenerator;
27: aload 0
new sun.java2d.marlin.Stroker
dup
aload 0
invokespecial sun.java2d.marlin.Stroker.<init>:(Lsun/java2d/marlin/RendererContext;)V
putfield sun.java2d.marlin.RendererContext.stroker:Lsun/java2d/marlin/Stroker;
28: aload 0
new sun.java2d.marlin.Dasher
dup
aload 0
invokespecial sun.java2d.marlin.Dasher.<init>:(Lsun/java2d/marlin/RendererContext;)V
putfield sun.java2d.marlin.RendererContext.dasher:Lsun/java2d/marlin/Dasher;
29: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lsun/java2d/marlin/RendererContext;
0 30 1 name Ljava/lang/String;
MethodParameters:
Name Flags
name final
void dispose();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic sun.java2d.marlin.RendererContext.DO_STATS:Z
ifeq 4
1: aload 0
getfield sun.java2d.marlin.RendererContext.stats:Lsun/java2d/marlin/RendererStats;
getfield sun.java2d.marlin.RendererStats.totalOffHeap:J
aload 0
getfield sun.java2d.marlin.RendererContext.stats:Lsun/java2d/marlin/RendererStats;
getfield sun.java2d.marlin.RendererStats.totalOffHeapMax:J
lcmp
ifle 3
2: aload 0
getfield sun.java2d.marlin.RendererContext.stats:Lsun/java2d/marlin/RendererStats;
aload 0
getfield sun.java2d.marlin.RendererContext.stats:Lsun/java2d/marlin/RendererStats;
getfield sun.java2d.marlin.RendererStats.totalOffHeap:J
putfield sun.java2d.marlin.RendererStats.totalOffHeapMax:J
3: StackMap locals:
StackMap stack:
aload 0
getfield sun.java2d.marlin.RendererContext.stats:Lsun/java2d/marlin/RendererStats;
lconst_0
putfield sun.java2d.marlin.RendererStats.totalOffHeap:J
4: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.java2d.marlin.RendererContext.stroking:I
5: aload 0
getfield sun.java2d.marlin.RendererContext.dirty:Z
ifeq 11
6: aload 0
getfield sun.java2d.marlin.RendererContext.nPCPathIterator:Lsun/java2d/marlin/MarlinRenderingEngine$NormalizingPathIterator;
invokevirtual sun.java2d.marlin.MarlinRenderingEngine$NormalizingPathIterator.dispose:()V
7: aload 0
getfield sun.java2d.marlin.RendererContext.nPQPathIterator:Lsun/java2d/marlin/MarlinRenderingEngine$NormalizingPathIterator;
invokevirtual sun.java2d.marlin.MarlinRenderingEngine$NormalizingPathIterator.dispose:()V
8: aload 0
getfield sun.java2d.marlin.RendererContext.dasher:Lsun/java2d/marlin/Dasher;
invokevirtual sun.java2d.marlin.Dasher.dispose:()V
9: aload 0
getfield sun.java2d.marlin.RendererContext.stroker:Lsun/java2d/marlin/Stroker;
invokevirtual sun.java2d.marlin.Stroker.dispose:()V
10: aload 0
iconst_0
putfield sun.java2d.marlin.RendererContext.dirty:Z
11: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/java2d/marlin/RendererContext;
java.awt.geom.Path2D$Float getPath2D();
descriptor: ()Ljava/awt/geom/Path2D$Float;
flags: (0x0000)
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.java2d.marlin.RendererContext.refPath2D:Ljava/lang/ref/WeakReference;
ifnull 1
aload 0
getfield sun.java2d.marlin.RendererContext.refPath2D:Ljava/lang/ref/WeakReference;
invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
checkcast java.awt.geom.Path2D$Float
goto 2
StackMap locals:
StackMap stack:
1: aconst_null
2: StackMap locals:
StackMap stack: java.awt.geom.Path2D$Float
astore 1
start local 1 3: aload 1
ifnonnull 6
4: new java.awt.geom.Path2D$Float
dup
iconst_1
getstatic sun.java2d.marlin.RendererContext.INITIAL_EDGES_COUNT:I
invokespecial java.awt.geom.Path2D$Float.<init>:(II)V
astore 1
5: aload 0
new java.lang.ref.WeakReference
dup
aload 1
invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
putfield sun.java2d.marlin.RendererContext.refPath2D:Ljava/lang/ref/WeakReference;
6: StackMap locals: java.awt.geom.Path2D$Float
StackMap stack:
aload 1
invokevirtual java.awt.geom.Path2D$Float.reset:()V
7: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/java2d/marlin/RendererContext;
3 8 1 p2d Ljava/awt/geom/Path2D$Float;
sun.java2d.marlin.OffHeapArray newOffHeapArray(long);
descriptor: (J)Lsun/java2d/marlin/OffHeapArray;
flags: (0x0000)
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: getstatic sun.java2d.marlin.RendererContext.DO_STATS:Z
ifeq 2
1: aload 0
getfield sun.java2d.marlin.RendererContext.stats:Lsun/java2d/marlin/RendererStats;
dup
getfield sun.java2d.marlin.RendererStats.totalOffHeapInitial:J
lload 1
ladd
putfield sun.java2d.marlin.RendererStats.totalOffHeapInitial:J
2: StackMap locals:
StackMap stack:
new sun.java2d.marlin.OffHeapArray
dup
aload 0
getfield sun.java2d.marlin.RendererContext.cleanerObj:Ljava/lang/Object;
lload 1
invokespecial sun.java2d.marlin.OffHeapArray.<init>:(Ljava/lang/Object;J)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/java2d/marlin/RendererContext;
0 3 1 initialSize J
MethodParameters:
Name Flags
initialSize final
sun.java2d.marlin.IntArrayCache$Reference newCleanIntArrayRef(int);
descriptor: (I)Lsun/java2d/marlin/IntArrayCache$Reference;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.java2d.marlin.RendererContext.cleanIntCache:Lsun/java2d/marlin/IntArrayCache;
iload 1
invokevirtual sun.java2d.marlin.IntArrayCache.createRef:(I)Lsun/java2d/marlin/IntArrayCache$Reference;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/java2d/marlin/RendererContext;
0 1 1 initialSize I
MethodParameters:
Name Flags
initialSize final
sun.java2d.marlin.IntArrayCache$Reference newDirtyIntArrayRef(int);
descriptor: (I)Lsun/java2d/marlin/IntArrayCache$Reference;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.java2d.marlin.RendererContext.dirtyIntCache:Lsun/java2d/marlin/IntArrayCache;
iload 1
invokevirtual sun.java2d.marlin.IntArrayCache.createRef:(I)Lsun/java2d/marlin/IntArrayCache$Reference;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/java2d/marlin/RendererContext;
0 1 1 initialSize I
MethodParameters:
Name Flags
initialSize final
sun.java2d.marlin.FloatArrayCache$Reference newDirtyFloatArrayRef(int);
descriptor: (I)Lsun/java2d/marlin/FloatArrayCache$Reference;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.java2d.marlin.RendererContext.dirtyFloatCache:Lsun/java2d/marlin/FloatArrayCache;
iload 1
invokevirtual sun.java2d.marlin.FloatArrayCache.createRef:(I)Lsun/java2d/marlin/FloatArrayCache$Reference;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/java2d/marlin/RendererContext;
0 1 1 initialSize I
MethodParameters:
Name Flags
initialSize final
sun.java2d.marlin.ByteArrayCache$Reference newDirtyByteArrayRef(int);
descriptor: (I)Lsun/java2d/marlin/ByteArrayCache$Reference;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.java2d.marlin.RendererContext.dirtyByteCache:Lsun/java2d/marlin/ByteArrayCache;
iload 1
invokevirtual sun.java2d.marlin.ByteArrayCache.createRef:(I)Lsun/java2d/marlin/ByteArrayCache$Reference;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/java2d/marlin/RendererContext;
0 1 1 initialSize I
MethodParameters:
Name Flags
initialSize final
}
SourceFile: "RendererContext.java"
InnerClasses:
public Float = java.awt.geom.Path2D$Float of java.awt.geom.Path2D
final CacheStats = sun.java2d.marlin.ArrayCacheConst$CacheStats of sun.java2d.marlin.ArrayCacheConst
final Reference = sun.java2d.marlin.ByteArrayCache$Reference of sun.java2d.marlin.ByteArrayCache
final Reference = sun.java2d.marlin.FloatArrayCache$Reference of sun.java2d.marlin.FloatArrayCache
final Reference = sun.java2d.marlin.IntArrayCache$Reference of sun.java2d.marlin.IntArrayCache
abstract NormalizingPathIterator = sun.java2d.marlin.MarlinRenderingEngine$NormalizingPathIterator of sun.java2d.marlin.MarlinRenderingEngine
final NearestPixelCenter = sun.java2d.marlin.MarlinRenderingEngine$NormalizingPathIterator$NearestPixelCenter of sun.java2d.marlin.MarlinRenderingEngine$NormalizingPathIterator
final NearestPixelQuarter = sun.java2d.marlin.MarlinRenderingEngine$NormalizingPathIterator$NearestPixelQuarter of sun.java2d.marlin.MarlinRenderingEngine$NormalizingPathIterator