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