class javax.imageio.stream.MemoryCache
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: javax.imageio.stream.MemoryCache
super_class: java.lang.Object
{
private static final int BUFFER_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8192
private java.util.ArrayList<byte[]> cache;
descriptor: Ljava/util/ArrayList;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/ArrayList<[B>;
private long cacheStart;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long length;
descriptor: J
flags: (0x0002) ACC_PRIVATE
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 // javax.imageio.stream.MemoryCache this
0: .line 57
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 61
aload 0 /* this */
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield javax.imageio.stream.MemoryCache.cache:Ljava/util/ArrayList;
2: .line 63
aload 0 /* this */
lconst_0
putfield javax.imageio.stream.MemoryCache.cacheStart:J
3: .line 68
aload 0 /* this */
lconst_0
putfield javax.imageio.stream.MemoryCache.length:J
4: .line 57
return
end local 0 // javax.imageio.stream.MemoryCache this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljavax/imageio/stream/MemoryCache;
private byte[] getCacheBlock(long);
descriptor: (J)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=2
start local 0 // javax.imageio.stream.MemoryCache this
start local 1 // long blockNum
0: .line 71
lload 1 /* blockNum */
aload 0 /* this */
getfield javax.imageio.stream.MemoryCache.cacheStart:J
lsub
lstore 3 /* blockOffset */
start local 3 // long blockOffset
1: .line 72
lload 3 /* blockOffset */
ldc 2147483647
lcmp
ifle 3
2: .line 75
new java.io.IOException
dup
ldc "Cache addressing limit exceeded!"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
3: .line 77
StackMap locals: long
StackMap stack:
aload 0 /* this */
getfield javax.imageio.stream.MemoryCache.cache:Ljava/util/ArrayList;
lload 3 /* blockOffset */
l2i
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast byte[]
areturn
end local 3 // long blockOffset
end local 1 // long blockNum
end local 0 // javax.imageio.stream.MemoryCache this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljavax/imageio/stream/MemoryCache;
0 4 1 blockNum J
1 4 3 blockOffset J
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
blockNum
public long loadFromStream(java.io.InputStream, long);
descriptor: (Ljava/io/InputStream;J)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=10, args_size=3
start local 0 // javax.imageio.stream.MemoryCache this
start local 1 // java.io.InputStream stream
start local 2 // long pos
0: .line 91
lload 2 /* pos */
aload 0 /* this */
getfield javax.imageio.stream.MemoryCache.length:J
lcmp
ifge 2
1: .line 92
lload 2 /* pos */
lreturn
2: .line 95
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield javax.imageio.stream.MemoryCache.length:J
ldc 8192
lrem
l2i
istore 4 /* offset */
start local 4 // int offset
3: .line 96
aconst_null
astore 5 /* buf */
start local 5 // byte[] buf
4: .line 98
lload 2 /* pos */
aload 0 /* this */
getfield javax.imageio.stream.MemoryCache.length:J
lsub
lstore 6 /* len */
start local 6 // long len
5: .line 99
iload 4 /* offset */
ifeq 26
6: .line 100
aload 0 /* this */
aload 0 /* this */
getfield javax.imageio.stream.MemoryCache.length:J
ldc 8192
ldiv
invokevirtual javax.imageio.stream.MemoryCache.getCacheBlock:(J)[B
astore 5 /* buf */
7: .line 103
goto 26
8: .line 104
StackMap locals: int byte[] long
StackMap stack:
aload 5 /* buf */
ifnonnull 14
9: .line 106
sipush 8192
newarray 8
astore 5 /* buf */
10: .line 107
goto 13
StackMap locals:
StackMap stack: java.lang.OutOfMemoryError
11: pop
12: .line 108
new java.io.IOException
dup
ldc "No memory left for cache!"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
13: .line 110
StackMap locals:
StackMap stack:
iconst_0
istore 4 /* offset */
14: .line 113
StackMap locals:
StackMap stack:
sipush 8192
iload 4 /* offset */
isub
istore 8 /* left */
start local 8 // int left
15: .line 114
lload 6 /* len */
iload 8 /* left */
i2l
invokestatic java.lang.Math.min:(JJ)J
l2i
istore 9 /* nbytes */
start local 9 // int nbytes
16: .line 115
aload 1 /* stream */
aload 5 /* buf */
iload 4 /* offset */
iload 9 /* nbytes */
invokevirtual java.io.InputStream.read:([BII)I
istore 9 /* nbytes */
17: .line 116
iload 9 /* nbytes */
iconst_m1
if_icmpne 19
18: .line 117
aload 0 /* this */
getfield javax.imageio.stream.MemoryCache.length:J
lreturn
19: .line 120
StackMap locals: int int
StackMap stack:
iload 4 /* offset */
ifne 21
20: .line 121
aload 0 /* this */
getfield javax.imageio.stream.MemoryCache.cache:Ljava/util/ArrayList;
aload 5 /* buf */
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
21: .line 124
StackMap locals:
StackMap stack:
lload 6 /* len */
iload 9 /* nbytes */
i2l
lsub
lstore 6 /* len */
22: .line 125
aload 0 /* this */
dup
getfield javax.imageio.stream.MemoryCache.length:J
iload 9 /* nbytes */
i2l
ladd
putfield javax.imageio.stream.MemoryCache.length:J
23: .line 126
iload 4 /* offset */
iload 9 /* nbytes */
iadd
istore 4 /* offset */
24: .line 128
iload 4 /* offset */
sipush 8192
if_icmplt 26
25: .line 131
aconst_null
astore 5 /* buf */
end local 9 // int nbytes
end local 8 // int left
26: .line 103
StackMap locals:
StackMap stack:
lload 6 /* len */
lconst_0
lcmp
ifgt 8
27: .line 135
lload 2 /* pos */
lreturn
end local 6 // long len
end local 5 // byte[] buf
end local 4 // int offset
end local 2 // long pos
end local 1 // java.io.InputStream stream
end local 0 // javax.imageio.stream.MemoryCache this
LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Ljavax/imageio/stream/MemoryCache;
0 28 1 stream Ljava/io/InputStream;
0 28 2 pos J
3 28 4 offset I
4 28 5 buf [B
5 28 6 len J
15 26 8 left I
16 26 9 nbytes I
Exception table:
from to target type
9 10 11 Class java.lang.OutOfMemoryError
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
stream
pos
public void writeToStream(java.io.OutputStream, long, long);
descriptor: (Ljava/io/OutputStream;JJ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=11, args_size=4
start local 0 // javax.imageio.stream.MemoryCache this
start local 1 // java.io.OutputStream stream
start local 2 // long pos
start local 4 // long len
0: .line 153
lload 2 /* pos */
lload 4 /* len */
ladd
aload 0 /* this */
getfield javax.imageio.stream.MemoryCache.length:J
lcmp
ifle 2
1: .line 154
new java.lang.IndexOutOfBoundsException
dup
ldc "Argument out of cache"
invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
2: .line 156
StackMap locals:
StackMap stack:
lload 2 /* pos */
lconst_0
lcmp
iflt 3
lload 4 /* len */
lconst_0
lcmp
ifge 4
3: .line 157
StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
ldc "Negative pos or len"
invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
4: .line 159
StackMap locals:
StackMap stack:
lload 4 /* len */
lconst_0
lcmp
ifne 6
5: .line 160
return
6: .line 163
StackMap locals:
StackMap stack:
lload 2 /* pos */
ldc 8192
ldiv
lstore 6 /* bufIndex */
start local 6 // long bufIndex
7: .line 164
lload 6 /* bufIndex */
aload 0 /* this */
getfield javax.imageio.stream.MemoryCache.cacheStart:J
lcmp
ifge 9
8: .line 165
new java.lang.IndexOutOfBoundsException
dup
ldc "pos already disposed"
invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
9: .line 167
StackMap locals: long
StackMap stack:
lload 2 /* pos */
ldc 8192
lrem
l2i
istore 8 /* offset */
start local 8 // int offset
10: .line 169
aload 0 /* this */
lload 6 /* bufIndex */
dup2
lconst_1
ladd
lstore 6 /* bufIndex */
invokevirtual javax.imageio.stream.MemoryCache.getCacheBlock:(J)[B
astore 9 /* buf */
start local 9 // byte[] buf
11: .line 170
goto 19
12: .line 171
StackMap locals: int byte[]
StackMap stack:
aload 9 /* buf */
ifnonnull 15
13: .line 172
aload 0 /* this */
lload 6 /* bufIndex */
dup2
lconst_1
ladd
lstore 6 /* bufIndex */
invokevirtual javax.imageio.stream.MemoryCache.getCacheBlock:(J)[B
astore 9 /* buf */
14: .line 173
iconst_0
istore 8 /* offset */
15: .line 175
StackMap locals:
StackMap stack:
lload 4 /* len */
sipush 8192
iload 8 /* offset */
isub
i2l
invokestatic java.lang.Math.min:(JJ)J
l2i
istore 10 /* nbytes */
start local 10 // int nbytes
16: .line 176
aload 1 /* stream */
aload 9 /* buf */
iload 8 /* offset */
iload 10 /* nbytes */
invokevirtual java.io.OutputStream.write:([BII)V
17: .line 177
aconst_null
astore 9 /* buf */
18: .line 178
lload 4 /* len */
iload 10 /* nbytes */
i2l
lsub
lstore 4 /* len */
end local 10 // int nbytes
19: .line 170
StackMap locals:
StackMap stack:
lload 4 /* len */
lconst_0
lcmp
ifgt 12
20: .line 180
return
end local 9 // byte[] buf
end local 8 // int offset
end local 6 // long bufIndex
end local 4 // long len
end local 2 // long pos
end local 1 // java.io.OutputStream stream
end local 0 // javax.imageio.stream.MemoryCache this
LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Ljavax/imageio/stream/MemoryCache;
0 21 1 stream Ljava/io/OutputStream;
0 21 2 pos J
0 21 4 len J
7 21 6 bufIndex J
10 21 8 offset I
11 21 9 buf [B
16 19 10 nbytes I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
stream
pos
len
private void pad(long);
descriptor: (J)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=11, args_size=2
start local 0 // javax.imageio.stream.MemoryCache this
start local 1 // long pos
0: .line 188
aload 0 /* this */
getfield javax.imageio.stream.MemoryCache.cacheStart:J
aload 0 /* this */
getfield javax.imageio.stream.MemoryCache.cache:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
i2l
ladd
lconst_1
lsub
lstore 3 /* currIndex */
start local 3 // long currIndex
1: .line 189
lload 1 /* pos */
ldc 8192
ldiv
lstore 5 /* lastIndex */
start local 5 // long lastIndex
2: .line 190
lload 5 /* lastIndex */
lload 3 /* currIndex */
lsub
lstore 7 /* numNewBuffers */
start local 7 // long numNewBuffers
3: .line 191
lconst_0
lstore 9 /* i */
start local 9 // long i
4: goto 10
5: .line 193
StackMap locals: javax.imageio.stream.MemoryCache long long long long long
StackMap stack:
aload 0 /* this */
getfield javax.imageio.stream.MemoryCache.cache:Ljava/util/ArrayList;
sipush 8192
newarray 8
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
6: .line 194
goto 9
StackMap locals:
StackMap stack: java.lang.OutOfMemoryError
7: pop
8: .line 195
new java.io.IOException
dup
ldc "No memory left for cache!"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
9: .line 191
StackMap locals:
StackMap stack:
lload 9 /* i */
lconst_1
ladd
lstore 9 /* i */
StackMap locals:
StackMap stack:
10: lload 9 /* i */
lload 7 /* numNewBuffers */
lcmp
iflt 5
end local 9 // long i
11: .line 198
return
end local 7 // long numNewBuffers
end local 5 // long lastIndex
end local 3 // long currIndex
end local 1 // long pos
end local 0 // javax.imageio.stream.MemoryCache this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljavax/imageio/stream/MemoryCache;
0 12 1 pos J
1 12 3 currIndex J
2 12 5 lastIndex J
3 12 7 numNewBuffers J
4 11 9 i J
Exception table:
from to target type
5 6 7 Class java.lang.OutOfMemoryError
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
pos
public void write(byte[], int, int, long);
descriptor: ([BIIJ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=11, args_size=5
start local 0 // javax.imageio.stream.MemoryCache this
start local 1 // byte[] b
start local 2 // int off
start local 3 // int len
start local 4 // long pos
0: .line 218
aload 1 /* b */
ifnonnull 2
1: .line 219
new java.lang.NullPointerException
dup
ldc "b == null!"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: .line 222
StackMap locals:
StackMap stack:
iload 2 /* off */
iflt 4
iload 3 /* len */
iflt 4
lload 4 /* pos */
lconst_0
lcmp
iflt 4
3: .line 223
iload 2 /* off */
iload 3 /* len */
iadd
aload 1 /* b */
arraylength
if_icmpgt 4
iload 2 /* off */
iload 3 /* len */
iadd
ifge 5
4: .line 224
StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
athrow
5: .line 228
StackMap locals:
StackMap stack:
lload 4 /* pos */
iload 3 /* len */
i2l
ladd
lconst_1
lsub
lstore 6 /* lastPos */
start local 6 // long lastPos
6: .line 229
lload 6 /* lastPos */
aload 0 /* this */
getfield javax.imageio.stream.MemoryCache.length:J
lcmp
iflt 9
7: .line 230
aload 0 /* this */
lload 6 /* lastPos */
invokevirtual javax.imageio.stream.MemoryCache.pad:(J)V
8: .line 231
aload 0 /* this */
lload 6 /* lastPos */
lconst_1
ladd
putfield javax.imageio.stream.MemoryCache.length:J
9: .line 235
StackMap locals: long
StackMap stack:
lload 4 /* pos */
ldc 8192
lrem
l2i
istore 8 /* offset */
start local 8 // int offset
10: .line 236
goto 18
11: .line 237
StackMap locals: int
StackMap stack:
aload 0 /* this */
lload 4 /* pos */
ldc 8192
ldiv
invokevirtual javax.imageio.stream.MemoryCache.getCacheBlock:(J)[B
astore 9 /* buf */
start local 9 // byte[] buf
12: .line 238
iload 3 /* len */
sipush 8192
iload 8 /* offset */
isub
invokestatic java.lang.Math.min:(II)I
istore 10 /* nbytes */
start local 10 // int nbytes
13: .line 239
aload 1 /* b */
iload 2 /* off */
aload 9 /* buf */
iload 8 /* offset */
iload 10 /* nbytes */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
14: .line 241
lload 4 /* pos */
iload 10 /* nbytes */
i2l
ladd
lstore 4 /* pos */
15: .line 242
iload 2 /* off */
iload 10 /* nbytes */
iadd
istore 2 /* off */
16: .line 243
iload 3 /* len */
iload 10 /* nbytes */
isub
istore 3 /* len */
17: .line 244
iconst_0
istore 8 /* offset */
end local 10 // int nbytes
end local 9 // byte[] buf
18: .line 236
StackMap locals:
StackMap stack:
iload 3 /* len */
ifgt 11
19: .line 246
return
end local 8 // int offset
end local 6 // long lastPos
end local 4 // long pos
end local 3 // int len
end local 2 // int off
end local 1 // byte[] b
end local 0 // javax.imageio.stream.MemoryCache this
LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Ljavax/imageio/stream/MemoryCache;
0 20 1 b [B
0 20 2 off I
0 20 3 len I
0 20 4 pos J
6 20 6 lastPos J
10 20 8 offset I
12 18 9 buf [B
13 18 10 nbytes I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
off
len
pos
public void write(int, long);
descriptor: (IJ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=3
start local 0 // javax.imageio.stream.MemoryCache this
start local 1 // int b
start local 2 // long pos
0: .line 261
lload 2 /* pos */
lconst_0
lcmp
ifge 2
1: .line 262
new java.lang.ArrayIndexOutOfBoundsException
dup
ldc "pos < 0"
invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
2: .line 266
StackMap locals:
StackMap stack:
lload 2 /* pos */
aload 0 /* this */
getfield javax.imageio.stream.MemoryCache.length:J
lcmp
iflt 5
3: .line 267
aload 0 /* this */
lload 2 /* pos */
invokevirtual javax.imageio.stream.MemoryCache.pad:(J)V
4: .line 268
aload 0 /* this */
lload 2 /* pos */
lconst_1
ladd
putfield javax.imageio.stream.MemoryCache.length:J
5: .line 272
StackMap locals:
StackMap stack:
aload 0 /* this */
lload 2 /* pos */
ldc 8192
ldiv
invokevirtual javax.imageio.stream.MemoryCache.getCacheBlock:(J)[B
astore 4 /* buf */
start local 4 // byte[] buf
6: .line 273
lload 2 /* pos */
ldc 8192
lrem
l2i
istore 5 /* offset */
start local 5 // int offset
7: .line 274
aload 4 /* buf */
iload 5 /* offset */
iload 1 /* b */
i2b
bastore
8: .line 275
return
end local 5 // int offset
end local 4 // byte[] buf
end local 2 // long pos
end local 1 // int b
end local 0 // javax.imageio.stream.MemoryCache this
LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljavax/imageio/stream/MemoryCache;
0 9 1 b I
0 9 2 pos J
6 9 4 buf [B
7 9 5 offset I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
pos
public long getLength();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 // javax.imageio.stream.MemoryCache this
0: .line 283
aload 0 /* this */
getfield javax.imageio.stream.MemoryCache.length:J
lreturn
end local 0 // javax.imageio.stream.MemoryCache this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljavax/imageio/stream/MemoryCache;
public int read(long);
descriptor: (J)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=2
start local 0 // javax.imageio.stream.MemoryCache this
start local 1 // long pos
0: .line 295
lload 1 /* pos */
aload 0 /* this */
getfield javax.imageio.stream.MemoryCache.length:J
lcmp
iflt 2
1: .line 296
iconst_m1
ireturn
2: .line 299
StackMap locals:
StackMap stack:
aload 0 /* this */
lload 1 /* pos */
ldc 8192
ldiv
invokevirtual javax.imageio.stream.MemoryCache.getCacheBlock:(J)[B
astore 3 /* buf */
start local 3 // byte[] buf
3: .line 300
aload 3 /* buf */
ifnonnull 5
4: .line 301
iconst_m1
ireturn
5: .line 304
StackMap locals: byte[]
StackMap stack:
aload 3 /* buf */
lload 1 /* pos */
ldc 8192
lrem
l2i
baload
sipush 255
iand
ireturn
end local 3 // byte[] buf
end local 1 // long pos
end local 0 // javax.imageio.stream.MemoryCache this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljavax/imageio/stream/MemoryCache;
0 6 1 pos J
3 6 3 buf [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
pos
public void read(byte[], int, int, long);
descriptor: ([BIIJ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=11, args_size=5
start local 0 // javax.imageio.stream.MemoryCache this
start local 1 // byte[] b
start local 2 // int off
start local 3 // int len
start local 4 // long pos
0: .line 323
aload 1 /* b */
ifnonnull 2
1: .line 324
new java.lang.NullPointerException
dup
ldc "b == null!"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: .line 327
StackMap locals:
StackMap stack:
iload 2 /* off */
iflt 4
iload 3 /* len */
iflt 4
lload 4 /* pos */
lconst_0
lcmp
iflt 4
3: .line 328
iload 2 /* off */
iload 3 /* len */
iadd
aload 1 /* b */
arraylength
if_icmpgt 4
iload 2 /* off */
iload 3 /* len */
iadd
ifge 5
4: .line 329
StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
athrow
5: .line 331
StackMap locals:
StackMap stack:
lload 4 /* pos */
iload 3 /* len */
i2l
ladd
aload 0 /* this */
getfield javax.imageio.stream.MemoryCache.length:J
lcmp
ifle 7
6: .line 332
new java.lang.IndexOutOfBoundsException
dup
invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
athrow
7: .line 335
StackMap locals:
StackMap stack:
lload 4 /* pos */
ldc 8192
ldiv
lstore 6 /* index */
start local 6 // long index
8: .line 336
lload 4 /* pos */
l2i
sipush 8192
irem
istore 8 /* offset */
start local 8 // int offset
9: .line 337
goto 16
10: .line 338
StackMap locals: long int
StackMap stack:
iload 3 /* len */
sipush 8192
iload 8 /* offset */
isub
invokestatic java.lang.Math.min:(II)I
istore 9 /* nbytes */
start local 9 // int nbytes
11: .line 339
aload 0 /* this */
lload 6 /* index */
dup2
lconst_1
ladd
lstore 6 /* index */
invokevirtual javax.imageio.stream.MemoryCache.getCacheBlock:(J)[B
astore 10 /* buf */
start local 10 // byte[] buf
12: .line 340
aload 10 /* buf */
iload 8 /* offset */
aload 1 /* b */
iload 2 /* off */
iload 9 /* nbytes */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
13: .line 342
iload 3 /* len */
iload 9 /* nbytes */
isub
istore 3 /* len */
14: .line 343
iload 2 /* off */
iload 9 /* nbytes */
iadd
istore 2 /* off */
15: .line 344
iconst_0
istore 8 /* offset */
end local 10 // byte[] buf
end local 9 // int nbytes
16: .line 337
StackMap locals:
StackMap stack:
iload 3 /* len */
ifgt 10
17: .line 346
return
end local 8 // int offset
end local 6 // long index
end local 4 // long pos
end local 3 // int len
end local 2 // int off
end local 1 // byte[] b
end local 0 // javax.imageio.stream.MemoryCache this
LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Ljavax/imageio/stream/MemoryCache;
0 18 1 b [B
0 18 2 off I
0 18 3 len I
0 18 4 pos J
8 18 6 index J
9 18 8 offset I
11 16 9 nbytes I
12 16 10 buf [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
off
len
pos
public void disposeBefore(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=9, args_size=2
start local 0 // javax.imageio.stream.MemoryCache this
start local 1 // long pos
0: .line 356
lload 1 /* pos */
ldc 8192
ldiv
lstore 3 /* index */
start local 3 // long index
1: .line 357
lload 3 /* index */
aload 0 /* this */
getfield javax.imageio.stream.MemoryCache.cacheStart:J
lcmp
ifge 3
2: .line 358
new java.lang.IndexOutOfBoundsException
dup
ldc "pos already disposed"
invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
3: .line 360
StackMap locals: long
StackMap stack:
lload 3 /* index */
aload 0 /* this */
getfield javax.imageio.stream.MemoryCache.cacheStart:J
lsub
aload 0 /* this */
getfield javax.imageio.stream.MemoryCache.cache:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
i2l
invokestatic java.lang.Math.min:(JJ)J
lstore 5 /* numBlocks */
start local 5 // long numBlocks
4: .line 361
lconst_0
lstore 7 /* i */
start local 7 // long i
5: goto 8
6: .line 362
StackMap locals: long long
StackMap stack:
aload 0 /* this */
getfield javax.imageio.stream.MemoryCache.cache:Ljava/util/ArrayList;
iconst_0
invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
pop
7: .line 361
lload 7 /* i */
lconst_1
ladd
lstore 7 /* i */
StackMap locals:
StackMap stack:
8: lload 7 /* i */
lload 5 /* numBlocks */
lcmp
iflt 6
end local 7 // long i
9: .line 364
aload 0 /* this */
lload 3 /* index */
putfield javax.imageio.stream.MemoryCache.cacheStart:J
10: .line 365
return
end local 5 // long numBlocks
end local 3 // long index
end local 1 // long pos
end local 0 // javax.imageio.stream.MemoryCache this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljavax/imageio/stream/MemoryCache;
0 11 1 pos J
1 11 3 index J
4 11 5 numBlocks J
5 9 7 i J
MethodParameters:
Name Flags
pos
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 // javax.imageio.stream.MemoryCache this
0: .line 373
aload 0 /* this */
getfield javax.imageio.stream.MemoryCache.cache:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.clear:()V
1: .line 374
aload 0 /* this */
lconst_0
putfield javax.imageio.stream.MemoryCache.cacheStart:J
2: .line 375
aload 0 /* this */
lconst_0
putfield javax.imageio.stream.MemoryCache.length:J
3: .line 376
return
end local 0 // javax.imageio.stream.MemoryCache this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljavax/imageio/stream/MemoryCache;
}
SourceFile: "MemoryCache.java"