public class com.android.internal.os.TransferPipe implements java.lang.Runnable, java.io.Closeable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.android.internal.os.TransferPipe
super_class: java.lang.Object
{
static final java.lang.String TAG;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "TransferPipe"
static final boolean DEBUG;
descriptor: Z
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 0
static final long DEFAULT_TIMEOUT;
descriptor: J
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 5000
final java.lang.Thread mThread;
descriptor: Ljava/lang/Thread;
flags: (0x0010) ACC_FINAL
final android.os.ParcelFileDescriptor[] mFds;
descriptor: [Landroid/os/ParcelFileDescriptor;
flags: (0x0010) ACC_FINAL
java.io.FileDescriptor mOutFd;
descriptor: Ljava/io/FileDescriptor;
flags: (0x0000)
long mEndTime;
descriptor: J
flags: (0x0000)
java.lang.String mFailure;
descriptor: Ljava/lang/String;
flags: (0x0000)
boolean mComplete;
descriptor: Z
flags: (0x0000)
java.lang.String mBufferPrefix;
descriptor: Ljava/lang/String;
flags: (0x0000)
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
invokespecial com.android.internal.os.TransferPipe.<init>:(Ljava/lang/String;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/android/internal/os/TransferPipe;
Exceptions:
throws java.io.IOException
public void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
ldc "TransferPipe"
invokespecial com.android.internal.os.TransferPipe.<init>:(Ljava/lang/String;Ljava/lang/String;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/android/internal/os/TransferPipe;
0 2 1 bufferPrefix Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
bufferPrefix
protected void <init>(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, 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
new java.lang.Thread
dup
aload 0
aload 2
invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;Ljava/lang/String;)V
putfield com.android.internal.os.TransferPipe.mThread:Ljava/lang/Thread;
2: aload 0
invokestatic android.os.ParcelFileDescriptor.createPipe:()[Landroid/os/ParcelFileDescriptor;
putfield com.android.internal.os.TransferPipe.mFds:[Landroid/os/ParcelFileDescriptor;
3: aload 0
aload 1
putfield com.android.internal.os.TransferPipe.mBufferPrefix:Ljava/lang/String;
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/android/internal/os/TransferPipe;
0 5 1 bufferPrefix Ljava/lang/String;
0 5 2 threadName Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
bufferPrefix
threadName
android.os.ParcelFileDescriptor getReadFd();
descriptor: ()Landroid/os/ParcelFileDescriptor;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.android.internal.os.TransferPipe.mFds:[Landroid/os/ParcelFileDescriptor;
iconst_0
aaload
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/android/internal/os/TransferPipe;
public android.os.ParcelFileDescriptor getWriteFd();
descriptor: ()Landroid/os/ParcelFileDescriptor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.android.internal.os.TransferPipe.mFds:[Landroid/os/ParcelFileDescriptor;
iconst_1
aaload
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/android/internal/os/TransferPipe;
public void setBufferPrefix(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.android.internal.os.TransferPipe.mBufferPrefix:Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/android/internal/os/TransferPipe;
0 2 1 prefix Ljava/lang/String;
MethodParameters:
Name Flags
prefix
public static void dumpAsync(android.os.IBinder, java.io.FileDescriptor, java.lang.String[]);
descriptor: (Landroid/os/IBinder;Ljava/io/FileDescriptor;[Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokestatic com.android.internal.os.TransferPipe.goDump:(Landroid/os/IBinder;Ljava/io/FileDescriptor;[Ljava/lang/String;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 binder Landroid/os/IBinder;
0 2 1 out Ljava/io/FileDescriptor;
0 2 2 args [Ljava/lang/String;
Exceptions:
throws java.io.IOException, android.os.RemoteException
MethodParameters:
Name Flags
binder
out
args
public static byte[] dumpAsync(android.os.IBinder, java.lang.String[]);
descriptor: (Landroid/os/IBinder;[Ljava/lang/String;)[B
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=3, locals=2, args_size=2
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tIoUtils cannot be resolved\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException, android.os.RemoteException
MethodParameters:
Name Flags
binder
args
static void go(com.android.internal.os.TransferPipe$Caller, android.os.IInterface, java.io.FileDescriptor, java.lang.String, java.lang.String[]);
descriptor: (Lcom/android/internal/os/TransferPipe$Caller;Landroid/os/IInterface;Ljava/io/FileDescriptor;Ljava/lang/String;[Ljava/lang/String;)V
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
aload 3
aload 4
ldc 5000
invokestatic com.android.internal.os.TransferPipe.go:(Lcom/android/internal/os/TransferPipe$Caller;Landroid/os/IInterface;Ljava/io/FileDescriptor;Ljava/lang/String;[Ljava/lang/String;J)V
1: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 caller Lcom/android/internal/os/TransferPipe$Caller;
0 2 1 iface Landroid/os/IInterface;
0 2 2 out Ljava/io/FileDescriptor;
0 2 3 prefix Ljava/lang/String;
0 2 4 args [Ljava/lang/String;
Exceptions:
throws java.io.IOException, android.os.RemoteException
MethodParameters:
Name Flags
caller
iface
out
prefix
args
static void go(com.android.internal.os.TransferPipe$Caller, android.os.IInterface, java.io.FileDescriptor, java.lang.String, java.lang.String[], long);
descriptor: (Lcom/android/internal/os/TransferPipe$Caller;Landroid/os/IInterface;Ljava/io/FileDescriptor;Ljava/lang/String;[Ljava/lang/String;J)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=10, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 1
invokeinterface android.os.IInterface.asBinder:()Landroid/os/IBinder;
instanceof android.os.Binder
ifeq 5
1: aload 0
aload 1
aload 2
aload 3
aload 4
invokeinterface com.android.internal.os.TransferPipe$Caller.go:(Landroid/os/IInterface;Ljava/io/FileDescriptor;Ljava/lang/String;[Ljava/lang/String;)V
2: goto 4
StackMap locals:
StackMap stack: android.os.RemoteException
3: pop
4: StackMap locals:
StackMap stack:
return
5: StackMap locals:
StackMap stack:
aconst_null
astore 7
aconst_null
astore 8
6: new com.android.internal.os.TransferPipe
dup
invokespecial com.android.internal.os.TransferPipe.<init>:()V
astore 9
start local 9 7: aload 0
aload 1
aload 9
invokevirtual com.android.internal.os.TransferPipe.getWriteFd:()Landroid/os/ParcelFileDescriptor;
invokevirtual android.os.ParcelFileDescriptor.getFileDescriptor:()Ljava/io/FileDescriptor;
aload 3
aload 4
invokeinterface com.android.internal.os.TransferPipe$Caller.go:(Landroid/os/IInterface;Ljava/io/FileDescriptor;Ljava/lang/String;[Ljava/lang/String;)V
8: aload 9
aload 2
lload 5
invokevirtual com.android.internal.os.TransferPipe.go:(Ljava/io/FileDescriptor;J)V
9: aload 9
ifnull 15
aload 9
invokevirtual com.android.internal.os.TransferPipe.close:()V
goto 15
StackMap locals: com.android.internal.os.TransferPipe$Caller android.os.IInterface java.io.FileDescriptor java.lang.String java.lang.String[] long java.lang.Throwable java.lang.Throwable com.android.internal.os.TransferPipe
StackMap stack: java.lang.Throwable
10: astore 7
aload 9
ifnull 11
aload 9
invokevirtual com.android.internal.os.TransferPipe.close:()V
end local 9 StackMap locals:
StackMap stack:
11: aload 7
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 8
aload 7
ifnonnull 13
aload 8
astore 7
goto 14
StackMap locals:
StackMap stack:
13: aload 7
aload 8
if_acmpeq 14
aload 7
aload 8
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
14: aload 7
athrow
15: StackMap locals:
StackMap stack:
return
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 16 0 caller Lcom/android/internal/os/TransferPipe$Caller;
0 16 1 iface Landroid/os/IInterface;
0 16 2 out Ljava/io/FileDescriptor;
0 16 3 prefix Ljava/lang/String;
0 16 4 args [Ljava/lang/String;
0 16 5 timeout J
7 11 9 tp Lcom/android/internal/os/TransferPipe;
Exception table:
from to target type
1 2 3 Class android.os.RemoteException
7 9 10 any
6 12 12 any
Exceptions:
throws java.io.IOException, android.os.RemoteException
MethodParameters:
Name Flags
caller
iface
out
prefix
args
timeout
static void goDump(android.os.IBinder, java.io.FileDescriptor, java.lang.String[]);
descriptor: (Landroid/os/IBinder;Ljava/io/FileDescriptor;[Ljava/lang/String;)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
ldc 5000
invokestatic com.android.internal.os.TransferPipe.goDump:(Landroid/os/IBinder;Ljava/io/FileDescriptor;[Ljava/lang/String;J)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 binder Landroid/os/IBinder;
0 2 1 out Ljava/io/FileDescriptor;
0 2 2 args [Ljava/lang/String;
Exceptions:
throws java.io.IOException, android.os.RemoteException
MethodParameters:
Name Flags
binder
out
args
static void goDump(android.os.IBinder, java.io.FileDescriptor, java.lang.String[], long);
descriptor: (Landroid/os/IBinder;Ljava/io/FileDescriptor;[Ljava/lang/String;J)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
instanceof android.os.Binder
ifeq 5
1: aload 0
aload 1
aload 2
invokeinterface android.os.IBinder.dump:(Ljava/io/FileDescriptor;[Ljava/lang/String;)V
2: goto 4
StackMap locals:
StackMap stack: android.os.RemoteException
3: pop
4: StackMap locals:
StackMap stack:
return
5: StackMap locals:
StackMap stack:
aconst_null
astore 5
aconst_null
astore 6
6: new com.android.internal.os.TransferPipe
dup
invokespecial com.android.internal.os.TransferPipe.<init>:()V
astore 7
start local 7 7: aload 0
aload 7
invokevirtual com.android.internal.os.TransferPipe.getWriteFd:()Landroid/os/ParcelFileDescriptor;
invokevirtual android.os.ParcelFileDescriptor.getFileDescriptor:()Ljava/io/FileDescriptor;
aload 2
invokeinterface android.os.IBinder.dumpAsync:(Ljava/io/FileDescriptor;[Ljava/lang/String;)V
8: aload 7
aload 1
lload 3
invokevirtual com.android.internal.os.TransferPipe.go:(Ljava/io/FileDescriptor;J)V
9: aload 7
ifnull 15
aload 7
invokevirtual com.android.internal.os.TransferPipe.close:()V
goto 15
StackMap locals: android.os.IBinder java.io.FileDescriptor java.lang.String[] long java.lang.Throwable java.lang.Throwable com.android.internal.os.TransferPipe
StackMap stack: java.lang.Throwable
10: astore 5
aload 7
ifnull 11
aload 7
invokevirtual com.android.internal.os.TransferPipe.close:()V
end local 7 StackMap locals:
StackMap stack:
11: aload 5
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 6
aload 5
ifnonnull 13
aload 6
astore 5
goto 14
StackMap locals:
StackMap stack:
13: aload 5
aload 6
if_acmpeq 14
aload 5
aload 6
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
14: aload 5
athrow
15: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 binder Landroid/os/IBinder;
0 16 1 out Ljava/io/FileDescriptor;
0 16 2 args [Ljava/lang/String;
0 16 3 timeout J
7 11 7 tp Lcom/android/internal/os/TransferPipe;
Exception table:
from to target type
1 2 3 Class android.os.RemoteException
7 9 10 any
6 12 12 any
Exceptions:
throws java.io.IOException, android.os.RemoteException
MethodParameters:
Name Flags
binder
out
args
timeout
public void go(java.io.FileDescriptor);
descriptor: (Ljava/io/FileDescriptor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
ldc 5000
invokevirtual com.android.internal.os.TransferPipe.go:(Ljava/io/FileDescriptor;J)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/android/internal/os/TransferPipe;
0 2 1 out Ljava/io/FileDescriptor;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
out
public void go(java.io.FileDescriptor, long);
descriptor: (Ljava/io/FileDescriptor;J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
dup
astore 4
monitorenter
1: aload 0
aload 1
putfield com.android.internal.os.TransferPipe.mOutFd:Ljava/io/FileDescriptor;
2: aload 0
invokestatic android.os.SystemClock.uptimeMillis:()J
lload 2
ladd
putfield com.android.internal.os.TransferPipe.mEndTime:J
3: aload 0
iconst_1
invokevirtual com.android.internal.os.TransferPipe.closeFd:(I)V
4: aload 0
getfield com.android.internal.os.TransferPipe.mThread:Ljava/lang/Thread;
invokevirtual java.lang.Thread.start:()V
5: goto 13
6: StackMap locals: com.android.internal.os.TransferPipe
StackMap stack:
aload 0
getfield com.android.internal.os.TransferPipe.mEndTime:J
invokestatic android.os.SystemClock.uptimeMillis:()J
lsub
lstore 5
start local 5 7: lload 5
lconst_0
lcmp
ifgt 10
8: aload 0
getfield com.android.internal.os.TransferPipe.mThread:Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
9: new java.io.IOException
dup
ldc "Timeout"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals: long
StackMap stack:
aload 0
lload 5
invokevirtual java.lang.Object.wait:(J)V
11: goto 13
StackMap locals:
StackMap stack: java.lang.InterruptedException
12: pop
end local 5 13: StackMap locals:
StackMap stack:
aload 0
getfield com.android.internal.os.TransferPipe.mFailure:Ljava/lang/String;
ifnonnull 14
aload 0
getfield com.android.internal.os.TransferPipe.mComplete:Z
ifeq 6
14: StackMap locals:
StackMap stack:
aload 0
getfield com.android.internal.os.TransferPipe.mFailure:Ljava/lang/String;
ifnull 16
15: new java.io.IOException
dup
aload 0
getfield com.android.internal.os.TransferPipe.mFailure:Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals:
StackMap stack:
aload 4
monitorexit
17: goto 23
StackMap locals:
StackMap stack: java.lang.Throwable
18: aload 4
monitorexit
19: athrow
20: StackMap locals: com.android.internal.os.TransferPipe java.io.FileDescriptor long
StackMap stack: java.lang.Throwable
astore 7
21: aload 0
invokevirtual com.android.internal.os.TransferPipe.kill:()V
22: aload 7
athrow
23: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.android.internal.os.TransferPipe.kill:()V
24: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lcom/android/internal/os/TransferPipe;
0 25 1 out Ljava/io/FileDescriptor;
0 25 2 timeout J
7 13 5 waitTime J
Exception table:
from to target type
10 11 12 Class java.lang.InterruptedException
1 17 18 any
18 19 18 any
0 20 20 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
out
timeout
void closeFd(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.android.internal.os.TransferPipe.mFds:[Landroid/os/ParcelFileDescriptor;
iload 1
aaload
ifnull 5
1: aload 0
getfield com.android.internal.os.TransferPipe.mFds:[Landroid/os/ParcelFileDescriptor;
iload 1
aaload
invokevirtual android.os.ParcelFileDescriptor.close:()V
2: goto 4
StackMap locals:
StackMap stack: java.io.IOException
3: pop
4: StackMap locals:
StackMap stack:
aload 0
getfield com.android.internal.os.TransferPipe.mFds:[Landroid/os/ParcelFileDescriptor;
iload 1
aconst_null
aastore
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/android/internal/os/TransferPipe;
0 6 1 num I
Exception table:
from to target type
1 2 3 Class java.io.IOException
MethodParameters:
Name Flags
num
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.android.internal.os.TransferPipe.kill:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/android/internal/os/TransferPipe;
public void kill();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
dup
astore 1
monitorenter
1: aload 0
iconst_0
invokevirtual com.android.internal.os.TransferPipe.closeFd:(I)V
2: aload 0
iconst_1
invokevirtual com.android.internal.os.TransferPipe.closeFd:(I)V
3: aload 1
monitorexit
4: goto 7
StackMap locals: com.android.internal.os.TransferPipe com.android.internal.os.TransferPipe
StackMap stack: java.lang.Throwable
5: aload 1
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/android/internal/os/TransferPipe;
Exception table:
from to target type
1 4 5 any
5 6 5 any
protected java.io.OutputStream getNewOutputStream();
descriptor: ()Ljava/io/OutputStream;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.io.FileOutputStream
dup
aload 0
getfield com.android.internal.os.TransferPipe.mOutFd:Ljava/io/FileDescriptor;
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/FileDescriptor;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/android/internal/os/TransferPipe;
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=1
start local 0 0: sipush 1024
newarray 8
astore 1
start local 1 1: aload 0
dup
astore 4
monitorenter
2: aload 0
invokevirtual com.android.internal.os.TransferPipe.getReadFd:()Landroid/os/ParcelFileDescriptor;
astore 5
start local 5 3: aload 5
ifnonnull 7
4: ldc "TransferPipe"
ldc "Pipe has been closed..."
invokestatic android.util.Slog.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
5: aload 4
monitorexit
6: return
7: StackMap locals: com.android.internal.os.TransferPipe byte[] top top com.android.internal.os.TransferPipe android.os.ParcelFileDescriptor
StackMap stack:
new java.io.FileInputStream
dup
aload 5
invokevirtual android.os.ParcelFileDescriptor.getFileDescriptor:()Ljava/io/FileDescriptor;
invokespecial java.io.FileInputStream.<init>:(Ljava/io/FileDescriptor;)V
astore 2
start local 2 8: aload 0
invokevirtual com.android.internal.os.TransferPipe.getNewOutputStream:()Ljava/io/OutputStream;
astore 3
end local 5 start local 3 9: aload 4
monitorexit
10: goto 13
end local 3 end local 2 StackMap locals: com.android.internal.os.TransferPipe byte[] top top com.android.internal.os.TransferPipe
StackMap stack: java.lang.Throwable
11: aload 4
monitorexit
12: athrow
start local 2 start local 3 13: StackMap locals: com.android.internal.os.TransferPipe byte[] java.io.FileInputStream java.io.OutputStream
StackMap stack:
aconst_null
astore 4
start local 4 14: iconst_1
istore 5
start local 5 15: aload 0
getfield com.android.internal.os.TransferPipe.mBufferPrefix:Ljava/lang/String;
ifnull 39
16: aload 0
getfield com.android.internal.os.TransferPipe.mBufferPrefix:Ljava/lang/String;
invokevirtual java.lang.String.getBytes:()[B
astore 4
17: goto 39
start local 6 18: StackMap locals: byte[] int int
StackMap stack:
aload 4
ifnonnull 21
19: aload 3
aload 1
iconst_0
iload 6
invokevirtual java.io.OutputStream.write:([BII)V
20: goto 39
21: StackMap locals:
StackMap stack:
iconst_0
istore 7
start local 7 22: iconst_0
istore 8
start local 8 23: goto 36
24: StackMap locals: int int
StackMap stack:
aload 1
iload 8
baload
bipush 10
if_icmpeq 35
25: iload 8
iload 7
if_icmple 27
26: aload 3
aload 1
iload 7
iload 8
iload 7
isub
invokevirtual java.io.OutputStream.write:([BII)V
27: StackMap locals:
StackMap stack:
iload 8
istore 7
28: iload 5
ifeq 31
29: aload 3
aload 4
invokevirtual java.io.OutputStream.write:([B)V
30: iconst_0
istore 5
31: StackMap locals:
StackMap stack:
iinc 8 1
32: iload 8
iload 6
if_icmpge 33
aload 1
iload 8
baload
bipush 10
if_icmpne 31
33: StackMap locals:
StackMap stack:
iload 8
iload 6
if_icmpge 35
34: iconst_1
istore 5
35: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
36: iload 8
iload 6
if_icmplt 24
end local 8 37: iload 6
iload 7
if_icmple 39
38: aload 3
aload 1
iload 7
iload 6
iload 7
isub
invokevirtual java.io.OutputStream.write:([BII)V
end local 7 end local 6 39: StackMap locals:
StackMap stack:
aload 2
aload 1
invokevirtual java.io.FileInputStream.read:([B)I
dup
istore 6
start local 6 40: ifgt 18
41: aload 0
getfield com.android.internal.os.TransferPipe.mThread:Ljava/lang/Thread;
invokevirtual java.lang.Thread.isInterrupted:()Z
ifeq 51
42: goto 51
end local 6 StackMap locals:
StackMap stack: java.io.IOException
43: astore 7
start local 7 44: aload 0
dup
astore 8
monitorenter
45: aload 0
aload 7
invokevirtual java.io.IOException.toString:()Ljava/lang/String;
putfield com.android.internal.os.TransferPipe.mFailure:Ljava/lang/String;
46: aload 0
invokevirtual java.lang.Object.notifyAll:()V
47: aload 8
monitorexit
48: return
49: StackMap locals: com.android.internal.os.TransferPipe byte[] java.io.FileInputStream java.io.OutputStream byte[] int top java.io.IOException com.android.internal.os.TransferPipe
StackMap stack: java.lang.Throwable
aload 8
monitorexit
50: athrow
end local 7 start local 6 51: StackMap locals: com.android.internal.os.TransferPipe byte[] java.io.FileInputStream java.io.OutputStream byte[] int int
StackMap stack:
aload 0
dup
astore 7
monitorenter
52: aload 0
iconst_1
putfield com.android.internal.os.TransferPipe.mComplete:Z
53: aload 0
invokevirtual java.lang.Object.notifyAll:()V
54: aload 7
monitorexit
55: goto 58
StackMap locals: com.android.internal.os.TransferPipe byte[] java.io.FileInputStream java.io.OutputStream byte[] int int com.android.internal.os.TransferPipe
StackMap stack: java.lang.Throwable
56: aload 7
monitorexit
57: athrow
58: StackMap locals:
StackMap stack:
return
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 59 0 this Lcom/android/internal/os/TransferPipe;
1 59 1 buffer [B
8 11 2 fis Ljava/io/FileInputStream;
13 59 2 fis Ljava/io/FileInputStream;
9 11 3 fos Ljava/io/OutputStream;
13 59 3 fos Ljava/io/OutputStream;
3 9 5 readFd Landroid/os/ParcelFileDescriptor;
14 59 4 bufferPrefix [B
15 59 5 needPrefix Z
18 39 6 size I
40 43 6 size I
51 59 6 size I
22 39 7 start I
23 37 8 i I
44 51 7 e Ljava/io/IOException;
Exception table:
from to target type
2 6 11 any
7 10 11 any
11 12 11 any
17 42 43 Class java.io.IOException
45 48 49 any
49 50 49 any
52 55 56 any
56 57 56 any
}
SourceFile: "TransferPipe.java"
NestMembers:
com.android.internal.os.TransferPipe$Caller
InnerClasses:
abstract Caller = com.android.internal.os.TransferPipe$Caller of com.android.internal.os.TransferPipe