class javax.swing.plaf.nimbus.ImageCache
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: javax.swing.plaf.nimbus.ImageCache
super_class: java.lang.Object
{
private final java.util.LinkedHashMap<java.lang.Integer, javax.swing.plaf.nimbus.ImageCache$PixelCountSoftReference> map;
descriptor: Ljava/util/LinkedHashMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/LinkedHashMap<Ljava/lang/Integer;Ljavax/swing/plaf/nimbus/ImageCache$PixelCountSoftReference;>;
private final int maxPixelCount;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int maxSingleImagePixelSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int currentPixelCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.util.concurrent.locks.ReadWriteLock lock;
descriptor: Ljava/util/concurrent/locks/ReadWriteLock;
flags: (0x0002) ACC_PRIVATE
private java.lang.ref.ReferenceQueue<java.awt.Image> referenceQueue;
descriptor: Ljava/lang/ref/ReferenceQueue;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/lang/ref/ReferenceQueue<Ljava/awt/Image;>;
private static final javax.swing.plaf.nimbus.ImageCache instance;
descriptor: Ljavax/swing/plaf/nimbus/ImageCache;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new javax.swing.plaf.nimbus.ImageCache
dup
invokespecial javax.swing.plaf.nimbus.ImageCache.<init>:()V
putstatic javax.swing.plaf.nimbus.ImageCache.instance:Ljavax/swing/plaf/nimbus/ImageCache;
return
LocalVariableTable:
Start End Slot Name Signature
static javax.swing.plaf.nimbus.ImageCache getInstance();
descriptor: ()Ljavax/swing/plaf/nimbus/ImageCache;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic javax.swing.plaf.nimbus.ImageCache.instance:Ljavax/swing/plaf/nimbus/ImageCache;
areturn
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
2: new java.util.LinkedHashMap
dup
bipush 16
ldc 0.75
iconst_1
invokespecial java.util.LinkedHashMap.<init>:(IFZ)V
putfield javax.swing.plaf.nimbus.ImageCache.map:Ljava/util/LinkedHashMap;
3: aload 0
iconst_0
putfield javax.swing.plaf.nimbus.ImageCache.currentPixelCount:I
4: aload 0
new java.util.concurrent.locks.ReentrantReadWriteLock
dup
invokespecial java.util.concurrent.locks.ReentrantReadWriteLock.<init>:()V
putfield javax.swing.plaf.nimbus.ImageCache.lock:Ljava/util/concurrent/locks/ReadWriteLock;
5: aload 0
new java.lang.ref.ReferenceQueue
dup
invokespecial java.lang.ref.ReferenceQueue.<init>:()V
putfield javax.swing.plaf.nimbus.ImageCache.referenceQueue:Ljava/lang/ref/ReferenceQueue;
6: aload 0
ldc 2097152
putfield javax.swing.plaf.nimbus.ImageCache.maxPixelCount:I
7: aload 0
ldc 90000
putfield javax.swing.plaf.nimbus.ImageCache.maxSingleImagePixelSize:I
8: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljavax/swing/plaf/nimbus/ImageCache;
public void <init>(int, int);
descriptor: (II)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
2: new java.util.LinkedHashMap
dup
bipush 16
ldc 0.75
iconst_1
invokespecial java.util.LinkedHashMap.<init>:(IFZ)V
putfield javax.swing.plaf.nimbus.ImageCache.map:Ljava/util/LinkedHashMap;
3: aload 0
iconst_0
putfield javax.swing.plaf.nimbus.ImageCache.currentPixelCount:I
4: aload 0
new java.util.concurrent.locks.ReentrantReadWriteLock
dup
invokespecial java.util.concurrent.locks.ReentrantReadWriteLock.<init>:()V
putfield javax.swing.plaf.nimbus.ImageCache.lock:Ljava/util/concurrent/locks/ReadWriteLock;
5: aload 0
new java.lang.ref.ReferenceQueue
dup
invokespecial java.lang.ref.ReferenceQueue.<init>:()V
putfield javax.swing.plaf.nimbus.ImageCache.referenceQueue:Ljava/lang/ref/ReferenceQueue;
6: aload 0
iload 1
putfield javax.swing.plaf.nimbus.ImageCache.maxPixelCount:I
7: aload 0
iload 2
putfield javax.swing.plaf.nimbus.ImageCache.maxSingleImagePixelSize:I
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljavax/swing/plaf/nimbus/ImageCache;
0 9 1 maxPixelCount I
0 9 2 maxSingleImagePixelSize I
MethodParameters:
Name Flags
maxPixelCount
maxSingleImagePixelSize
public void flush();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield javax.swing.plaf.nimbus.ImageCache.lock:Ljava/util/concurrent/locks/ReadWriteLock;
invokeinterface java.util.concurrent.locks.ReadWriteLock.readLock:()Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
1: aload 0
getfield javax.swing.plaf.nimbus.ImageCache.map:Ljava/util/LinkedHashMap;
invokevirtual java.util.LinkedHashMap.clear:()V
2: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 1
4: aload 0
getfield javax.swing.plaf.nimbus.ImageCache.lock:Ljava/util/concurrent/locks/ReadWriteLock;
invokeinterface java.util.concurrent.locks.ReadWriteLock.readLock:()Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
5: aload 1
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield javax.swing.plaf.nimbus.ImageCache.lock:Ljava/util/concurrent/locks/ReadWriteLock;
invokeinterface java.util.concurrent.locks.ReadWriteLock.readLock:()Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljavax/swing/plaf/nimbus/ImageCache;
Exception table:
from to target type
1 3 3 any
public boolean isImageCachable(int, int);
descriptor: (II)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 1
iload 2
imul
aload 0
getfield javax.swing.plaf.nimbus.ImageCache.maxSingleImagePixelSize:I
if_icmpge 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljavax/swing/plaf/nimbus/ImageCache;
0 2 1 w I
0 2 2 h I
MethodParameters:
Name Flags
w
h
public java.awt.Image getImage(java.awt.GraphicsConfiguration, int, int, java.lang.Object[]);
descriptor: (Ljava/awt/GraphicsConfiguration;II[Ljava/lang/Object;)Ljava/awt/Image;
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=6, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield javax.swing.plaf.nimbus.ImageCache.lock:Ljava/util/concurrent/locks/ReadWriteLock;
invokeinterface java.util.concurrent.locks.ReadWriteLock.readLock:()Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
1: aload 0
getfield javax.swing.plaf.nimbus.ImageCache.map:Ljava/util/LinkedHashMap;
aload 0
aload 1
iload 2
iload 3
aload 4
invokevirtual javax.swing.plaf.nimbus.ImageCache.hash:(Ljava/awt/GraphicsConfiguration;II[Ljava/lang/Object;)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.LinkedHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast javax.swing.plaf.nimbus.ImageCache$PixelCountSoftReference
astore 5
start local 5 2: aload 5
ifnull 6
aload 5
aload 1
iload 2
iload 3
aload 4
invokevirtual javax.swing.plaf.nimbus.ImageCache$PixelCountSoftReference.equals:(Ljava/awt/GraphicsConfiguration;II[Ljava/lang/Object;)Z
ifeq 6
3: aload 5
invokevirtual javax.swing.plaf.nimbus.ImageCache$PixelCountSoftReference.get:()Ljava/lang/Object;
checkcast java.awt.Image
astore 7
4: aload 0
getfield javax.swing.plaf.nimbus.ImageCache.lock:Ljava/util/concurrent/locks/ReadWriteLock;
invokeinterface java.util.concurrent.locks.ReadWriteLock.readLock:()Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
5: aload 7
areturn
6: StackMap locals: javax.swing.plaf.nimbus.ImageCache$PixelCountSoftReference
StackMap stack:
aload 0
getfield javax.swing.plaf.nimbus.ImageCache.lock:Ljava/util/concurrent/locks/ReadWriteLock;
invokeinterface java.util.concurrent.locks.ReadWriteLock.readLock:()Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
7: aconst_null
areturn
end local 5 8: StackMap locals: javax.swing.plaf.nimbus.ImageCache java.awt.GraphicsConfiguration int int java.lang.Object[]
StackMap stack: java.lang.Throwable
astore 6
9: aload 0
getfield javax.swing.plaf.nimbus.ImageCache.lock:Ljava/util/concurrent/locks/ReadWriteLock;
invokeinterface java.util.concurrent.locks.ReadWriteLock.readLock:()Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
10: aload 6
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljavax/swing/plaf/nimbus/ImageCache;
0 11 1 config Ljava/awt/GraphicsConfiguration;
0 11 2 w I
0 11 3 h I
0 11 4 args [Ljava/lang/Object;
2 8 5 ref Ljavax/swing/plaf/nimbus/ImageCache$PixelCountSoftReference;
Exception table:
from to target type
1 4 8 any
MethodParameters:
Name Flags
config
w
h
args
public boolean setImage(java.awt.Image, java.awt.GraphicsConfiguration, int, int, java.lang.Object[]);
descriptor: (Ljava/awt/Image;Ljava/awt/GraphicsConfiguration;II[Ljava/lang/Object;)Z
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=12, locals=13, 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 3
iload 4
invokevirtual javax.swing.plaf.nimbus.ImageCache.isImageCachable:(II)Z
ifne 1
iconst_0
ireturn
1: StackMap locals:
StackMap stack:
aload 0
aload 2
iload 3
iload 4
aload 5
invokevirtual javax.swing.plaf.nimbus.ImageCache.hash:(Ljava/awt/GraphicsConfiguration;II[Ljava/lang/Object;)I
istore 6
start local 6 2: aload 0
getfield javax.swing.plaf.nimbus.ImageCache.lock:Ljava/util/concurrent/locks/ReadWriteLock;
invokeinterface java.util.concurrent.locks.ReadWriteLock.writeLock:()Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
3: aload 0
getfield javax.swing.plaf.nimbus.ImageCache.map:Ljava/util/LinkedHashMap;
iload 6
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.LinkedHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast javax.swing.plaf.nimbus.ImageCache$PixelCountSoftReference
astore 7
start local 7 4: aload 7
ifnull 7
aload 7
invokevirtual javax.swing.plaf.nimbus.ImageCache$PixelCountSoftReference.get:()Ljava/lang/Object;
aload 1
if_acmpne 7
5: aload 0
getfield javax.swing.plaf.nimbus.ImageCache.lock:Ljava/util/concurrent/locks/ReadWriteLock;
invokeinterface java.util.concurrent.locks.ReadWriteLock.writeLock:()Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
6: iconst_1
ireturn
7: StackMap locals: int javax.swing.plaf.nimbus.ImageCache$PixelCountSoftReference
StackMap stack:
aload 7
ifnull 10
8: aload 0
dup
getfield javax.swing.plaf.nimbus.ImageCache.currentPixelCount:I
aload 7
getfield javax.swing.plaf.nimbus.ImageCache$PixelCountSoftReference.pixelCount:I
isub
putfield javax.swing.plaf.nimbus.ImageCache.currentPixelCount:I
9: aload 0
getfield javax.swing.plaf.nimbus.ImageCache.map:Ljava/util/LinkedHashMap;
iload 6
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.LinkedHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
10: StackMap locals:
StackMap stack:
aload 1
aconst_null
invokevirtual java.awt.Image.getWidth:(Ljava/awt/image/ImageObserver;)I
aload 1
aconst_null
invokevirtual java.awt.Image.getHeight:(Ljava/awt/image/ImageObserver;)I
imul
istore 8
start local 8 11: aload 0
dup
getfield javax.swing.plaf.nimbus.ImageCache.currentPixelCount:I
iload 8
iadd
putfield javax.swing.plaf.nimbus.ImageCache.currentPixelCount:I
12: aload 0
getfield javax.swing.plaf.nimbus.ImageCache.currentPixelCount:I
aload 0
getfield javax.swing.plaf.nimbus.ImageCache.maxPixelCount:I
if_icmple 17
13: goto 16
14: StackMap locals: int
StackMap stack:
aload 0
getfield javax.swing.plaf.nimbus.ImageCache.map:Ljava/util/LinkedHashMap;
aload 7
getfield javax.swing.plaf.nimbus.ImageCache$PixelCountSoftReference.hash:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.LinkedHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
15: aload 0
dup
getfield javax.swing.plaf.nimbus.ImageCache.currentPixelCount:I
aload 7
getfield javax.swing.plaf.nimbus.ImageCache$PixelCountSoftReference.pixelCount:I
isub
putfield javax.swing.plaf.nimbus.ImageCache.currentPixelCount:I
16: StackMap locals:
StackMap stack:
aload 0
getfield javax.swing.plaf.nimbus.ImageCache.referenceQueue:Ljava/lang/ref/ReferenceQueue;
invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
checkcast javax.swing.plaf.nimbus.ImageCache$PixelCountSoftReference
dup
astore 7
ifnonnull 14
17: StackMap locals:
StackMap stack:
aload 0
getfield javax.swing.plaf.nimbus.ImageCache.currentPixelCount:I
aload 0
getfield javax.swing.plaf.nimbus.ImageCache.maxPixelCount:I
if_icmple 26
18: aload 0
getfield javax.swing.plaf.nimbus.ImageCache.map:Ljava/util/LinkedHashMap;
invokevirtual java.util.LinkedHashMap.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 9
start local 9 19: goto 25
20: StackMap locals: java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 10
start local 10 21: aload 9
invokeinterface java.util.Iterator.remove:()V
22: aload 10
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast javax.swing.plaf.nimbus.ImageCache$PixelCountSoftReference
invokevirtual javax.swing.plaf.nimbus.ImageCache$PixelCountSoftReference.get:()Ljava/lang/Object;
checkcast java.awt.Image
astore 11
start local 11 23: aload 11
ifnull 24
aload 11
invokevirtual java.awt.Image.flush:()V
24: StackMap locals: java.util.Map$Entry java.awt.Image
StackMap stack:
aload 0
dup
getfield javax.swing.plaf.nimbus.ImageCache.currentPixelCount:I
aload 10
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast javax.swing.plaf.nimbus.ImageCache$PixelCountSoftReference
getfield javax.swing.plaf.nimbus.ImageCache$PixelCountSoftReference.pixelCount:I
isub
putfield javax.swing.plaf.nimbus.ImageCache.currentPixelCount:I
end local 11 end local 10 25: StackMap locals:
StackMap stack:
aload 0
getfield javax.swing.plaf.nimbus.ImageCache.currentPixelCount:I
aload 0
getfield javax.swing.plaf.nimbus.ImageCache.maxPixelCount:I
if_icmple 26
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 20
end local 9 26: StackMap locals:
StackMap stack:
aload 0
getfield javax.swing.plaf.nimbus.ImageCache.map:Ljava/util/LinkedHashMap;
iload 6
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
new javax.swing.plaf.nimbus.ImageCache$PixelCountSoftReference
dup
aload 1
aload 0
getfield javax.swing.plaf.nimbus.ImageCache.referenceQueue:Ljava/lang/ref/ReferenceQueue;
iload 8
iload 6
aload 2
iload 3
iload 4
aload 5
invokespecial javax.swing.plaf.nimbus.ImageCache$PixelCountSoftReference.<init>:(Ljava/awt/Image;Ljava/lang/ref/ReferenceQueue;IILjava/awt/GraphicsConfiguration;II[Ljava/lang/Object;)V
invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
27: aload 0
getfield javax.swing.plaf.nimbus.ImageCache.lock:Ljava/util/concurrent/locks/ReadWriteLock;
invokeinterface java.util.concurrent.locks.ReadWriteLock.writeLock:()Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
28: iconst_1
ireturn
end local 8 end local 7 29: StackMap locals: javax.swing.plaf.nimbus.ImageCache java.awt.Image java.awt.GraphicsConfiguration int int java.lang.Object[] int
StackMap stack: java.lang.Throwable
astore 12
30: aload 0
getfield javax.swing.plaf.nimbus.ImageCache.lock:Ljava/util/concurrent/locks/ReadWriteLock;
invokeinterface java.util.concurrent.locks.ReadWriteLock.writeLock:()Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
31: aload 12
athrow
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 32 0 this Ljavax/swing/plaf/nimbus/ImageCache;
0 32 1 image Ljava/awt/Image;
0 32 2 config Ljava/awt/GraphicsConfiguration;
0 32 3 w I
0 32 4 h I
0 32 5 args [Ljava/lang/Object;
2 32 6 hash I
4 29 7 ref Ljavax/swing/plaf/nimbus/ImageCache$PixelCountSoftReference;
11 29 8 newPixelCount I
19 26 9 mapIter Ljava/util/Iterator<Ljava/util/Map$Entry<Ljava/lang/Integer;Ljavax/swing/plaf/nimbus/ImageCache$PixelCountSoftReference;>;>;
21 25 10 entry Ljava/util/Map$Entry<Ljava/lang/Integer;Ljavax/swing/plaf/nimbus/ImageCache$PixelCountSoftReference;>;
23 25 11 img Ljava/awt/Image;
Exception table:
from to target type
3 5 29 any
7 27 29 any
MethodParameters:
Name Flags
image
config
w
h
args
private int hash(java.awt.GraphicsConfiguration, int, int, java.lang.Object[]);
descriptor: (Ljava/awt/GraphicsConfiguration;II[Ljava/lang/Object;)I
flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
Code:
stack=2, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
ifnull 1
aload 1
invokevirtual java.lang.Object.hashCode:()I
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: istore 5
start local 5 3: bipush 31
iload 5
imul
iload 2
iadd
istore 5
4: bipush 31
iload 5
imul
iload 3
iadd
istore 5
5: bipush 31
iload 5
imul
aload 4
invokestatic java.util.Arrays.deepHashCode:([Ljava/lang/Object;)I
iadd
istore 5
6: iload 5
ireturn
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 7 0 this Ljavax/swing/plaf/nimbus/ImageCache;
0 7 1 config Ljava/awt/GraphicsConfiguration;
0 7 2 w I
0 7 3 h I
0 7 4 args [Ljava/lang/Object;
3 7 5 hash I
MethodParameters:
Name Flags
config
w
h
args
}
SourceFile: "ImageCache.java"
NestMembers:
javax.swing.plaf.nimbus.ImageCache$PixelCountSoftReference
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map
private PixelCountSoftReference = javax.swing.plaf.nimbus.ImageCache$PixelCountSoftReference of javax.swing.plaf.nimbus.ImageCache