public class android.media.MiniThumbFile
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: android.media.MiniThumbFile
super_class: java.lang.Object
{
private static final java.lang.String TAG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "MiniThumbFile"
private static final int MINI_THUMB_DATA_FILE_VERSION;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
public static final int BYTES_PER_MINTHUMB;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 10000
private static final int HEADER_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 13
private android.net.Uri mUri;
descriptor: Landroid/net/Uri;
flags: (0x0002) ACC_PRIVATE
private java.io.RandomAccessFile mMiniThumbFile;
descriptor: Ljava/io/RandomAccessFile;
flags: (0x0002) ACC_PRIVATE
private java.nio.channels.FileChannel mChannel;
descriptor: Ljava/nio/channels/FileChannel;
flags: (0x0002) ACC_PRIVATE
private java.nio.ByteBuffer mBuffer;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0002) ACC_PRIVATE
private java.nio.ByteBuffer mEmptyBuffer;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0002) ACC_PRIVATE
private static final java.util.Hashtable<java.lang.String, android.media.MiniThumbFile> sThumbFiles;
descriptor: Ljava/util/Hashtable;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Hashtable<Ljava/lang/String;Landroid/media/MiniThumbFile;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new java.util.Hashtable
dup
invokespecial java.util.Hashtable.<init>:()V
1: putstatic android.media.MiniThumbFile.sThumbFiles:Ljava/util/Hashtable;
2: return
LocalVariableTable:
Start End Slot Name Signature
public static synchronized void reset();
descriptor: ()V
flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=2, args_size=0
0: getstatic android.media.MiniThumbFile.sThumbFiles:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 1
goto 3
StackMap locals: top java.util.Iterator
StackMap stack:
1: aload 1
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast android.media.MiniThumbFile
astore 0
start local 0 2: aload 0
invokevirtual android.media.MiniThumbFile.deactivate:()V
end local 0 3: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: getstatic android.media.MiniThumbFile.sThumbFiles:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.clear:()V
5: return
LocalVariableTable:
Start End Slot Name Signature
2 3 0 file Landroid/media/MiniThumbFile;
public static synchronized android.media.MiniThumbFile instance(android.net.Uri);
descriptor: (Landroid/net/Uri;)Landroid/media/MiniThumbFile;
flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual android.net.Uri.getPathSegments:()Ljava/util/List;
iconst_1
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
astore 1
start local 1 1: getstatic android.media.MiniThumbFile.sThumbFiles:Ljava/util/Hashtable;
aload 1
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast android.media.MiniThumbFile
astore 2
start local 2 2: aload 2
ifnonnull 7
3: new android.media.MiniThumbFile
dup
4: new java.lang.StringBuilder
dup
ldc "content://media/external/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "/media"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.net.Uri.parse:(Ljava/lang/String;)Landroid/net/Uri;
5: invokespecial android.media.MiniThumbFile.<init>:(Landroid/net/Uri;)V
astore 2
6: getstatic android.media.MiniThumbFile.sThumbFiles:Ljava/util/Hashtable;
aload 1
aload 2
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: StackMap locals: java.lang.String android.media.MiniThumbFile
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 uri Landroid/net/Uri;
1 8 1 type Ljava/lang/String;
2 8 2 file Landroid/media/MiniThumbFile;
MethodParameters:
Name Flags
uri
private java.lang.String randomAccessFilePath(int);
descriptor: (I)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
invokestatic android.os.Environment.getExternalStorageDirectory:()Ljava/io/File;
invokevirtual java.io.File.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
1: ldc "/DCIM/.thumbnails"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: astore 2
start local 2 4: new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "/.thumbdata"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "-"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield android.media.MiniThumbFile.mUri:Landroid/net/Uri;
invokevirtual android.net.Uri.hashCode:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/media/MiniThumbFile;
0 5 1 version I
4 5 2 directoryName Ljava/lang/String;
MethodParameters:
Name Flags
version
private void removeOldFile();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
iconst_3
invokevirtual android.media.MiniThumbFile.randomAccessFilePath:(I)Ljava/lang/String;
astore 1
start local 1 1: new java.io.File
dup
aload 1
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 2
start local 2 2: aload 2
invokevirtual java.io.File.exists:()Z
ifeq 6
3: aload 2
invokevirtual java.io.File.delete:()Z
pop
4: goto 6
StackMap locals: android.media.MiniThumbFile java.lang.String java.io.File
StackMap stack: java.lang.SecurityException
5: pop
6: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Landroid/media/MiniThumbFile;
1 7 1 oldPath Ljava/lang/String;
2 7 2 oldFile Ljava/io/File;
Exception table:
from to target type
3 4 5 Class java.lang.SecurityException
private java.io.RandomAccessFile miniThumbDataFile();
descriptor: ()Ljava/io/RandomAccessFile;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=1
start local 0 0: aload 0
getfield android.media.MiniThumbFile.mMiniThumbFile:Ljava/io/RandomAccessFile;
ifnonnull 18
1: aload 0
invokevirtual android.media.MiniThumbFile.removeOldFile:()V
2: aload 0
iconst_4
invokevirtual android.media.MiniThumbFile.randomAccessFilePath:(I)Ljava/lang/String;
astore 1
start local 1 3: new java.io.File
dup
aload 1
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
invokevirtual java.io.File.getParentFile:()Ljava/io/File;
astore 2
start local 2 4: aload 2
invokevirtual java.io.File.isDirectory:()Z
ifne 9
5: aload 2
invokevirtual java.io.File.mkdirs:()Z
ifne 9
6: ldc "MiniThumbFile"
new java.lang.StringBuilder
dup
ldc "Unable to create .thumbnails directory "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
7: aload 2
invokevirtual java.io.File.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
9: StackMap locals: java.lang.String java.io.File
StackMap stack:
new java.io.File
dup
aload 1
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 3
start local 3 10: aload 0
new java.io.RandomAccessFile
dup
aload 3
ldc "rw"
invokespecial java.io.RandomAccessFile.<init>:(Ljava/io/File;Ljava/lang/String;)V
putfield android.media.MiniThumbFile.mMiniThumbFile:Ljava/io/RandomAccessFile;
11: goto 16
StackMap locals: android.media.MiniThumbFile java.lang.String java.io.File java.io.File
StackMap stack: java.io.IOException
12: pop
13: aload 0
new java.io.RandomAccessFile
dup
aload 3
ldc "r"
invokespecial java.io.RandomAccessFile.<init>:(Ljava/io/File;Ljava/lang/String;)V
putfield android.media.MiniThumbFile.mMiniThumbFile:Ljava/io/RandomAccessFile;
14: goto 16
StackMap locals:
StackMap stack: java.io.IOException
15: pop
16: StackMap locals:
StackMap stack:
aload 0
getfield android.media.MiniThumbFile.mMiniThumbFile:Ljava/io/RandomAccessFile;
ifnull 18
17: aload 0
aload 0
getfield android.media.MiniThumbFile.mMiniThumbFile:Ljava/io/RandomAccessFile;
invokevirtual java.io.RandomAccessFile.getChannel:()Ljava/nio/channels/FileChannel;
putfield android.media.MiniThumbFile.mChannel:Ljava/nio/channels/FileChannel;
end local 3 end local 2 end local 1 18: StackMap locals:
StackMap stack:
aload 0
getfield android.media.MiniThumbFile.mMiniThumbFile:Ljava/io/RandomAccessFile;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Landroid/media/MiniThumbFile;
3 18 1 path Ljava/lang/String;
4 18 2 directory Ljava/io/File;
10 18 3 f Ljava/io/File;
Exception table:
from to target type
10 11 12 Class java.io.IOException
13 14 15 Class java.io.IOException
private void <init>(android.net.Uri);
descriptor: (Landroid/net/Uri;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield android.media.MiniThumbFile.mUri:Landroid/net/Uri;
2: aload 0
sipush 10000
invokestatic java.nio.ByteBuffer.allocateDirect:(I)Ljava/nio/ByteBuffer;
putfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
3: aload 0
sipush 10000
invokestatic java.nio.ByteBuffer.allocateDirect:(I)Ljava/nio/ByteBuffer;
putfield android.media.MiniThumbFile.mEmptyBuffer:Ljava/nio/ByteBuffer;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/media/MiniThumbFile;
0 5 1 uri Landroid/net/Uri;
MethodParameters:
Name Flags
uri
public synchronized void deactivate();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield android.media.MiniThumbFile.mMiniThumbFile:Ljava/io/RandomAccessFile;
ifnull 5
1: aload 0
getfield android.media.MiniThumbFile.mMiniThumbFile:Ljava/io/RandomAccessFile;
invokevirtual java.io.RandomAccessFile.close:()V
2: aload 0
aconst_null
putfield android.media.MiniThumbFile.mMiniThumbFile:Ljava/io/RandomAccessFile;
3: goto 5
StackMap locals:
StackMap stack: java.io.IOException
4: pop
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/media/MiniThumbFile;
Exception table:
from to target type
1 3 4 Class java.io.IOException
public synchronized long getMagic(long);
descriptor: (J)J
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=6, locals=11, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.media.MiniThumbFile.miniThumbDataFile:()Ljava/io/RandomAccessFile;
astore 3
start local 3 1: aload 3
ifnull 35
2: lload 1
ldc 10000
lmul
lstore 4
start local 4 3: aconst_null
astore 6
start local 6 4: aload 0
getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
pop
5: aload 0
getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
bipush 9
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
6: aload 0
getfield android.media.MiniThumbFile.mChannel:Ljava/nio/channels/FileChannel;
lload 4
ldc 9
iconst_1
invokevirtual java.nio.channels.FileChannel.lock:(JJZ)Ljava/nio/channels/FileLock;
astore 6
7: aload 0
getfield android.media.MiniThumbFile.mChannel:Ljava/nio/channels/FileChannel;
aload 0
getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
lload 4
invokevirtual java.nio.channels.FileChannel.read:(Ljava/nio/ByteBuffer;J)I
bipush 9
if_icmpne 32
8: aload 0
getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
iconst_0
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
9: aload 0
getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.get:()B
iconst_1
if_icmpne 32
10: aload 0
getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.getLong:()J
lstore 9
11: aload 6
ifnull 14
aload 6
invokevirtual java.nio.channels.FileLock.release:()V
12: goto 14
13: StackMap locals: android.media.MiniThumbFile long java.io.RandomAccessFile long java.nio.channels.FileLock top top long
StackMap stack: java.io.IOException
pop
14: StackMap locals:
StackMap stack:
lload 9
lreturn
15: StackMap locals: android.media.MiniThumbFile long java.io.RandomAccessFile long java.nio.channels.FileLock
StackMap stack: java.io.IOException
astore 7
start local 7 16: ldc "MiniThumbFile"
ldc "Got exception checking file magic: "
aload 7
invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 7 17: aload 6
ifnull 35
aload 6
invokevirtual java.nio.channels.FileLock.release:()V
18: goto 35
19: StackMap locals:
StackMap stack: java.io.IOException
pop
goto 35
20: StackMap locals:
StackMap stack: java.lang.RuntimeException
astore 7
start local 7 21: ldc "MiniThumbFile"
new java.lang.StringBuilder
dup
ldc "Got exception when reading magic, id = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
22: ldc ", disk full or mount read-only? "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
23: invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
end local 7 24: aload 6
ifnull 35
aload 6
invokevirtual java.nio.channels.FileLock.release:()V
25: goto 35
26: StackMap locals:
StackMap stack: java.io.IOException
pop
goto 35
27: StackMap locals:
StackMap stack: java.lang.Throwable
astore 8
28: aload 6
ifnull 31
aload 6
invokevirtual java.nio.channels.FileLock.release:()V
29: goto 31
30: StackMap locals: android.media.MiniThumbFile long java.io.RandomAccessFile long java.nio.channels.FileLock top java.lang.Throwable
StackMap stack: java.io.IOException
pop
31: StackMap locals:
StackMap stack:
aload 8
athrow
32: StackMap locals: android.media.MiniThumbFile long java.io.RandomAccessFile long java.nio.channels.FileLock
StackMap stack:
aload 6
ifnull 35
aload 6
invokevirtual java.nio.channels.FileLock.release:()V
33: goto 35
34: StackMap locals:
StackMap stack: java.io.IOException
pop
end local 6 end local 4 35: StackMap locals:
StackMap stack:
lconst_0
lreturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Landroid/media/MiniThumbFile;
0 36 1 id J
1 36 3 r Ljava/io/RandomAccessFile;
3 35 4 pos J
4 35 6 lock Ljava/nio/channels/FileLock;
16 17 7 ex Ljava/io/IOException;
21 24 7 ex Ljava/lang/RuntimeException;
Exception table:
from to target type
11 12 13 Class java.io.IOException
4 11 15 Class java.io.IOException
17 18 19 Class java.io.IOException
4 11 20 Class java.lang.RuntimeException
24 25 26 Class java.io.IOException
4 11 27 any
15 17 27 any
20 24 27 any
28 29 30 Class java.io.IOException
32 33 34 Class java.io.IOException
MethodParameters:
Name Flags
id
public synchronized void eraseMiniThumb(long);
descriptor: (J)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=6, locals=10, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.media.MiniThumbFile.miniThumbDataFile:()Ljava/io/RandomAccessFile;
astore 3
start local 3 1: aload 3
ifnull 39
2: lload 1
ldc 10000
lmul
lstore 4
start local 4 3: aconst_null
astore 6
start local 6 4: aload 0
getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
pop
5: aload 0
getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
bipush 9
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
6: aload 0
getfield android.media.MiniThumbFile.mChannel:Ljava/nio/channels/FileChannel;
lload 4
ldc 10000
iconst_0
invokevirtual java.nio.channels.FileChannel.lock:(JJZ)Ljava/nio/channels/FileLock;
astore 6
7: aload 0
getfield android.media.MiniThumbFile.mChannel:Ljava/nio/channels/FileChannel;
aload 0
getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
lload 4
invokevirtual java.nio.channels.FileChannel.read:(Ljava/nio/ByteBuffer;J)I
bipush 9
if_icmpne 36
8: aload 0
getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
iconst_0
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
9: aload 0
getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.get:()B
iconst_1
if_icmpne 36
10: aload 0
getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.getLong:()J
lstore 7
start local 7 11: lload 7
lconst_0
lcmp
ifne 17
12: ldc "MiniThumbFile"
new java.lang.StringBuilder
dup
ldc "no thumbnail for id "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
pop
13: aload 6
ifnull 16
aload 6
invokevirtual java.nio.channels.FileLock.release:()V
14: goto 16
15: StackMap locals: android.media.MiniThumbFile long java.io.RandomAccessFile long java.nio.channels.FileLock long
StackMap stack: java.io.IOException
pop
16: StackMap locals:
StackMap stack:
return
17: StackMap locals:
StackMap stack:
aload 0
getfield android.media.MiniThumbFile.mChannel:Ljava/nio/channels/FileChannel;
aload 0
getfield android.media.MiniThumbFile.mEmptyBuffer:Ljava/nio/ByteBuffer;
lload 4
invokevirtual java.nio.channels.FileChannel.write:(Ljava/nio/ByteBuffer;J)I
pop
end local 7 18: goto 36
StackMap locals: android.media.MiniThumbFile long java.io.RandomAccessFile long java.nio.channels.FileLock
StackMap stack: java.io.IOException
19: astore 7
start local 7 20: ldc "MiniThumbFile"
ldc "Got exception checking file magic: "
aload 7
invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 7 21: aload 6
ifnull 39
aload 6
invokevirtual java.nio.channels.FileLock.release:()V
22: goto 39
23: StackMap locals:
StackMap stack: java.io.IOException
pop
goto 39
24: StackMap locals:
StackMap stack: java.lang.RuntimeException
astore 7
start local 7 25: ldc "MiniThumbFile"
new java.lang.StringBuilder
dup
ldc "Got exception when reading magic, id = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
26: ldc ", disk full or mount read-only? "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
27: invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
end local 7 28: aload 6
ifnull 39
aload 6
invokevirtual java.nio.channels.FileLock.release:()V
29: goto 39
30: StackMap locals:
StackMap stack: java.io.IOException
pop
goto 39
31: StackMap locals:
StackMap stack: java.lang.Throwable
astore 9
32: aload 6
ifnull 35
aload 6
invokevirtual java.nio.channels.FileLock.release:()V
33: goto 35
34: StackMap locals: android.media.MiniThumbFile long java.io.RandomAccessFile long java.nio.channels.FileLock top top java.lang.Throwable
StackMap stack: java.io.IOException
pop
35: StackMap locals:
StackMap stack:
aload 9
athrow
36: StackMap locals: android.media.MiniThumbFile long java.io.RandomAccessFile long java.nio.channels.FileLock
StackMap stack:
aload 6
ifnull 39
aload 6
invokevirtual java.nio.channels.FileLock.release:()V
37: goto 39
38: StackMap locals:
StackMap stack: java.io.IOException
pop
end local 6 end local 4 39: StackMap locals:
StackMap stack:
return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Landroid/media/MiniThumbFile;
0 40 1 id J
1 40 3 r Ljava/io/RandomAccessFile;
3 39 4 pos J
4 39 6 lock Ljava/nio/channels/FileLock;
11 18 7 currentMagic J
20 21 7 ex Ljava/io/IOException;
25 28 7 ex Ljava/lang/RuntimeException;
Exception table:
from to target type
13 14 15 Class java.io.IOException
4 13 19 Class java.io.IOException
17 18 19 Class java.io.IOException
21 22 23 Class java.io.IOException
4 13 24 Class java.lang.RuntimeException
17 18 24 Class java.lang.RuntimeException
28 29 30 Class java.io.IOException
4 13 31 any
17 21 31 any
24 28 31 any
32 33 34 Class java.io.IOException
36 37 38 Class java.io.IOException
MethodParameters:
Name Flags
id
public synchronized void saveMiniThumbToFile(byte[], long, long);
descriptor: ([BJJ)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=6, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 0
invokevirtual android.media.MiniThumbFile.miniThumbDataFile:()Ljava/io/RandomAccessFile;
astore 6
start local 6 1: aload 6
ifnonnull 2
return
2: StackMap locals: java.io.RandomAccessFile
StackMap stack:
lload 2
ldc 10000
lmul
lstore 7
start local 7 3: aconst_null
astore 9
start local 9 4: aload 1
ifnull 36
5: aload 1
arraylength
sipush 9987
if_icmple 10
6: aload 9
ifnull 9
aload 9
invokevirtual java.nio.channels.FileLock.release:()V
7: goto 9
8: StackMap locals: android.media.MiniThumbFile byte[] long long java.io.RandomAccessFile long java.nio.channels.FileLock
StackMap stack: java.io.IOException
pop
9: StackMap locals:
StackMap stack:
return
10: StackMap locals:
StackMap stack:
aload 0
getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
pop
11: aload 0
getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
iconst_1
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
12: aload 0
getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
lload 4
invokevirtual java.nio.ByteBuffer.putLong:(J)Ljava/nio/ByteBuffer;
pop
13: aload 0
getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
aload 1
arraylength
invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
pop
14: aload 0
getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
aload 1
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
15: aload 0
getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
16: aload 0
getfield android.media.MiniThumbFile.mChannel:Ljava/nio/channels/FileChannel;
lload 7
ldc 10000
iconst_0
invokevirtual java.nio.channels.FileChannel.lock:(JJZ)Ljava/nio/channels/FileLock;
astore 9
17: aload 0
getfield android.media.MiniThumbFile.mChannel:Ljava/nio/channels/FileChannel;
aload 0
getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
lload 7
invokevirtual java.nio.channels.FileChannel.write:(Ljava/nio/ByteBuffer;J)I
pop
18: goto 36
StackMap locals:
StackMap stack: java.io.IOException
19: astore 10
start local 10 20: ldc "MiniThumbFile"
new java.lang.StringBuilder
dup
ldc "couldn't save mini thumbnail data for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
21: lload 2
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc "; "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 10
22: invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
23: aload 10
athrow
end local 10 24: StackMap locals:
StackMap stack: java.lang.RuntimeException
astore 10
start local 10 25: ldc "MiniThumbFile"
new java.lang.StringBuilder
dup
ldc "couldn't save mini thumbnail data for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
26: lload 2
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc "; disk full or mount read-only? "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 10
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
27: invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
end local 10 28: aload 9
ifnull 39
aload 9
invokevirtual java.nio.channels.FileLock.release:()V
29: goto 39
30: StackMap locals:
StackMap stack: java.io.IOException
pop
goto 39
31: StackMap locals:
StackMap stack: java.lang.Throwable
astore 11
32: aload 9
ifnull 35
aload 9
invokevirtual java.nio.channels.FileLock.release:()V
33: goto 35
34: StackMap locals: android.media.MiniThumbFile byte[] long long java.io.RandomAccessFile long java.nio.channels.FileLock top java.lang.Throwable
StackMap stack: java.io.IOException
pop
35: StackMap locals:
StackMap stack:
aload 11
athrow
36: StackMap locals: android.media.MiniThumbFile byte[] long long java.io.RandomAccessFile long java.nio.channels.FileLock
StackMap stack:
aload 9
ifnull 39
aload 9
invokevirtual java.nio.channels.FileLock.release:()V
37: goto 39
38: StackMap locals:
StackMap stack: java.io.IOException
pop
39: StackMap locals:
StackMap stack:
return
end local 9 end local 7 end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Landroid/media/MiniThumbFile;
0 40 1 data [B
0 40 2 id J
0 40 4 magic J
1 40 6 r Ljava/io/RandomAccessFile;
3 40 7 pos J
4 40 9 lock Ljava/nio/channels/FileLock;
20 24 10 ex Ljava/io/IOException;
25 28 10 ex Ljava/lang/RuntimeException;
Exception table:
from to target type
6 7 8 Class java.io.IOException
4 6 19 Class java.io.IOException
10 18 19 Class java.io.IOException
4 6 24 Class java.lang.RuntimeException
10 18 24 Class java.lang.RuntimeException
28 29 30 Class java.io.IOException
4 6 31 any
10 28 31 any
32 33 34 Class java.io.IOException
36 37 38 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
data
id
magic
public synchronized byte[] getMiniThumbFromFile(long, byte[]);
descriptor: (J[B)[B
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=6, locals=15, args_size=3
start local 0 start local 1 start local 3 0: aload 0
invokevirtual android.media.MiniThumbFile.miniThumbDataFile:()Ljava/io/RandomAccessFile;
astore 4
start local 4 1: aload 4
ifnonnull 2
aconst_null
areturn
2: StackMap locals: java.io.RandomAccessFile
StackMap stack:
lload 1
ldc 10000
lmul
lstore 5
start local 5 3: aconst_null
astore 7
start local 7 4: aload 0
getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
pop
5: aload 0
getfield android.media.MiniThumbFile.mChannel:Ljava/nio/channels/FileChannel;
lload 5
ldc 10000
iconst_1
invokevirtual java.nio.channels.FileChannel.lock:(JJZ)Ljava/nio/channels/FileLock;
astore 7
6: aload 0
getfield android.media.MiniThumbFile.mChannel:Ljava/nio/channels/FileChannel;
aload 0
getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
lload 5
invokevirtual java.nio.channels.FileChannel.read:(Ljava/nio/ByteBuffer;J)I
istore 8
start local 8 7: iload 8
bipush 13
if_icmple 37
8: aload 0
getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
iconst_0
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
9: aload 0
getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.get:()B
istore 9
start local 9 10: aload 0
getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.getLong:()J
lstore 10
start local 10 11: aload 0
getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.getInt:()I
istore 12
start local 12 12: iload 8
bipush 13
iload 12
iadd
if_icmplt 37
iload 12
ifeq 37
lload 10
lconst_0
lcmp
ifeq 37
iload 9
iconst_1
if_icmpne 37
13: aload 3
arraylength
iload 12
if_icmplt 37
14: aload 0
getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
aload 3
iconst_0
iload 12
invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
pop
15: aload 3
astore 14
16: aload 7
ifnull 19
aload 7
invokevirtual java.nio.channels.FileLock.release:()V
17: goto 19
18: StackMap locals: android.media.MiniThumbFile long byte[] java.io.RandomAccessFile long java.nio.channels.FileLock int int long int top byte[]
StackMap stack: java.io.IOException
pop
19: StackMap locals:
StackMap stack:
aload 14
areturn
end local 12 end local 10 end local 9 end local 8 20: StackMap locals: android.media.MiniThumbFile long byte[] java.io.RandomAccessFile long java.nio.channels.FileLock
StackMap stack: java.io.IOException
astore 8
start local 8 21: ldc "MiniThumbFile"
new java.lang.StringBuilder
dup
ldc "got exception when reading thumbnail id="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc ", exception: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
end local 8 22: aload 7
ifnull 40
aload 7
invokevirtual java.nio.channels.FileLock.release:()V
23: goto 40
24: StackMap locals:
StackMap stack: java.io.IOException
pop
goto 40
25: StackMap locals:
StackMap stack: java.lang.RuntimeException
astore 8
start local 8 26: ldc "MiniThumbFile"
new java.lang.StringBuilder
dup
ldc "Got exception when reading thumbnail, id = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
27: ldc ", disk full or mount read-only? "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 8
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
28: invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
end local 8 29: aload 7
ifnull 40
aload 7
invokevirtual java.nio.channels.FileLock.release:()V
30: goto 40
31: StackMap locals:
StackMap stack: java.io.IOException
pop
goto 40
32: StackMap locals:
StackMap stack: java.lang.Throwable
astore 13
33: aload 7
ifnull 36
aload 7
invokevirtual java.nio.channels.FileLock.release:()V
34: goto 36
35: StackMap locals: android.media.MiniThumbFile long byte[] java.io.RandomAccessFile long java.nio.channels.FileLock top top top top top java.lang.Throwable
StackMap stack: java.io.IOException
pop
36: StackMap locals:
StackMap stack:
aload 13
athrow
37: StackMap locals: android.media.MiniThumbFile long byte[] java.io.RandomAccessFile long java.nio.channels.FileLock
StackMap stack:
aload 7
ifnull 40
aload 7
invokevirtual java.nio.channels.FileLock.release:()V
38: goto 40
39: StackMap locals:
StackMap stack: java.io.IOException
pop
40: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 7 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 41 0 this Landroid/media/MiniThumbFile;
0 41 1 id J
0 41 3 data [B
1 41 4 r Ljava/io/RandomAccessFile;
3 41 5 pos J
4 41 7 lock Ljava/nio/channels/FileLock;
7 20 8 size I
10 20 9 flag B
11 20 10 magic J
12 20 12 length I
21 22 8 ex Ljava/io/IOException;
26 29 8 ex Ljava/lang/RuntimeException;
Exception table:
from to target type
16 17 18 Class java.io.IOException
4 16 20 Class java.io.IOException
22 23 24 Class java.io.IOException
4 16 25 Class java.lang.RuntimeException
29 30 31 Class java.io.IOException
4 16 32 any
20 22 32 any
25 29 32 any
33 34 35 Class java.io.IOException
37 38 39 Class java.io.IOException
MethodParameters:
Name Flags
id
data
}
SourceFile: "MiniThumbFile.java"