abstract class android.app.SystemServiceRegistry$CachedServiceFetcher<T> implements android.app.SystemServiceRegistry$ServiceFetcher<T>
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: android.app.SystemServiceRegistry$CachedServiceFetcher
super_class: java.lang.Object
{
private final int mCacheIndex;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
getstatic android.app.SystemServiceRegistry.sServiceCacheSize:I
dup
iconst_1
iadd
putstatic android.app.SystemServiceRegistry.sServiceCacheSize:I
putfield android.app.SystemServiceRegistry$CachedServiceFetcher.mCacheIndex:I
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/app/SystemServiceRegistry$CachedServiceFetcher<TT;>;
public final T getService(android.app.ContextImpl);
descriptor: (Landroid/app/ContextImpl;)Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=10, args_size=2
start local 0 start local 1 0: aload 1
getfield android.app.ContextImpl.mServiceCache:[Ljava/lang/Object;
astore 2
start local 2 1: aload 1
getfield android.app.ContextImpl.mServiceInitializationStateArray:[I
astore 3
start local 3 2: StackMap locals: java.lang.Object[] int[]
StackMap stack:
iconst_0
istore 4
start local 4 3: aload 2
dup
astore 5
monitorenter
4: aload 2
aload 0
getfield android.app.SystemServiceRegistry$CachedServiceFetcher.mCacheIndex:I
aaload
astore 6
start local 6 5: aload 6
ifnonnull 6
aload 3
aload 0
getfield android.app.SystemServiceRegistry$CachedServiceFetcher.mCacheIndex:I
iaload
iconst_3
if_icmpne 8
6: StackMap locals: int java.lang.Object[] java.lang.Object
StackMap stack:
aload 6
aload 5
monitorexit
7: areturn
8: StackMap locals:
StackMap stack:
aload 3
aload 0
getfield android.app.SystemServiceRegistry$CachedServiceFetcher.mCacheIndex:I
iaload
iconst_2
if_icmpne 10
9: aload 3
aload 0
getfield android.app.SystemServiceRegistry$CachedServiceFetcher.mCacheIndex:I
iconst_0
iastore
10: StackMap locals:
StackMap stack:
aload 3
aload 0
getfield android.app.SystemServiceRegistry$CachedServiceFetcher.mCacheIndex:I
iaload
ifne 13
11: iconst_1
istore 4
12: aload 3
aload 0
getfield android.app.SystemServiceRegistry$CachedServiceFetcher.mCacheIndex:I
iconst_1
iastore
end local 6 13: StackMap locals:
StackMap stack:
aload 5
monitorexit
14: goto 17
StackMap locals:
StackMap stack: java.lang.Throwable
15: aload 5
monitorexit
16: athrow
17: StackMap locals:
StackMap stack:
iload 4
ifeq 52
18: aconst_null
astore 5
start local 5 19: iconst_3
istore 6
start local 6 20: aload 0
aload 1
invokevirtual android.app.SystemServiceRegistry$CachedServiceFetcher.createService:(Landroid/app/ContextImpl;)Ljava/lang/Object;
astore 5
21: iconst_2
istore 6
22: goto 43
StackMap locals: android.app.SystemServiceRegistry$CachedServiceFetcher android.app.ContextImpl java.lang.Object[] int[] int java.lang.Object int
StackMap stack: android.os.ServiceManager$ServiceNotFoundException
23: astore 7
start local 7 24: aload 7
invokestatic android.app.SystemServiceRegistry.onServiceNotFound:(Landroid/os/ServiceManager$ServiceNotFoundException;)V
end local 7 25: aload 2
dup
astore 9
monitorenter
26: aload 2
aload 0
getfield android.app.SystemServiceRegistry$CachedServiceFetcher.mCacheIndex:I
aload 5
aastore
27: aload 3
aload 0
getfield android.app.SystemServiceRegistry$CachedServiceFetcher.mCacheIndex:I
iload 6
iastore
28: aload 2
invokevirtual java.lang.Object.notifyAll:()V
29: aload 9
monitorexit
30: goto 51
StackMap locals: android.app.SystemServiceRegistry$CachedServiceFetcher android.app.ContextImpl java.lang.Object[] int[] int java.lang.Object int top top java.lang.Object[]
StackMap stack: java.lang.Throwable
31: aload 9
monitorexit
32: athrow
33: StackMap locals: android.app.SystemServiceRegistry$CachedServiceFetcher android.app.ContextImpl java.lang.Object[] int[] int java.lang.Object int
StackMap stack: java.lang.Throwable
astore 8
34: aload 2
dup
astore 9
monitorenter
35: aload 2
aload 0
getfield android.app.SystemServiceRegistry$CachedServiceFetcher.mCacheIndex:I
aload 5
aastore
36: aload 3
aload 0
getfield android.app.SystemServiceRegistry$CachedServiceFetcher.mCacheIndex:I
iload 6
iastore
37: aload 2
invokevirtual java.lang.Object.notifyAll:()V
38: aload 9
monitorexit
39: goto 42
StackMap locals: android.app.SystemServiceRegistry$CachedServiceFetcher android.app.ContextImpl java.lang.Object[] int[] int java.lang.Object int top java.lang.Throwable java.lang.Object[]
StackMap stack: java.lang.Throwable
40: aload 9
monitorexit
41: athrow
42: StackMap locals:
StackMap stack:
aload 8
athrow
43: StackMap locals: android.app.SystemServiceRegistry$CachedServiceFetcher android.app.ContextImpl java.lang.Object[] int[] int java.lang.Object int
StackMap stack:
aload 2
dup
astore 9
monitorenter
44: aload 2
aload 0
getfield android.app.SystemServiceRegistry$CachedServiceFetcher.mCacheIndex:I
aload 5
aastore
45: aload 3
aload 0
getfield android.app.SystemServiceRegistry$CachedServiceFetcher.mCacheIndex:I
iload 6
iastore
46: aload 2
invokevirtual java.lang.Object.notifyAll:()V
47: aload 9
monitorexit
48: goto 51
StackMap locals: android.app.SystemServiceRegistry$CachedServiceFetcher android.app.ContextImpl java.lang.Object[] int[] int java.lang.Object int top top java.lang.Object[]
StackMap stack: java.lang.Throwable
49: aload 9
monitorexit
50: athrow
51: StackMap locals: android.app.SystemServiceRegistry$CachedServiceFetcher android.app.ContextImpl java.lang.Object[] int[] int java.lang.Object int
StackMap stack:
aload 5
areturn
end local 6 end local 5 52: StackMap locals:
StackMap stack:
aload 2
dup
astore 5
monitorenter
53: goto 61
54: StackMap locals: java.lang.Object[]
StackMap stack:
aload 2
invokevirtual java.lang.Object.wait:()V
55: goto 61
StackMap locals:
StackMap stack: java.lang.InterruptedException
56: pop
57: ldc "SystemServiceRegistry"
ldc "getService() interrupted"
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
58: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
59: aload 5
monitorexit
60: aconst_null
areturn
61: StackMap locals:
StackMap stack:
aload 3
aload 0
getfield android.app.SystemServiceRegistry$CachedServiceFetcher.mCacheIndex:I
iaload
iconst_2
if_icmplt 54
62: aload 5
monitorexit
63: goto 2
StackMap locals:
StackMap stack: java.lang.Throwable
64: aload 5
monitorexit
65: athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 66 0 this Landroid/app/SystemServiceRegistry$CachedServiceFetcher<TT;>;
0 66 1 ctx Landroid/app/ContextImpl;
1 66 2 cache [Ljava/lang/Object;
2 66 3 gates [I
3 66 4 doInitialize Z
5 13 6 service TT;
19 52 5 service TT;
20 52 6 newState I
24 25 7 e Landroid/os/ServiceManager$ServiceNotFoundException;
Exception table:
from to target type
4 7 15 any
8 14 15 any
15 16 15 any
20 22 23 Class android.os.ServiceManager$ServiceNotFoundException
26 30 31 any
31 32 31 any
20 25 33 any
35 39 40 any
40 41 40 any
44 48 49 any
49 50 49 any
54 55 56 Class java.lang.InterruptedException
53 60 64 any
61 63 64 any
64 65 64 any
Signature: (Landroid/app/ContextImpl;)TT;
MethodParameters:
Name Flags
ctx
public abstract T createService(android.app.ContextImpl);
descriptor: (Landroid/app/ContextImpl;)Ljava/lang/Object;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
Exceptions:
throws android.os.ServiceManager$ServiceNotFoundException
Signature: (Landroid/app/ContextImpl;)TT;
MethodParameters:
Name Flags
ctx
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Landroid/app/SystemServiceRegistry$ServiceFetcher<TT;>;
SourceFile: "SystemServiceRegistry.java"
NestHost: android.app.SystemServiceRegistry
InnerClasses:
abstract CachedServiceFetcher = android.app.SystemServiceRegistry$CachedServiceFetcher of android.app.SystemServiceRegistry
abstract ServiceFetcher = android.app.SystemServiceRegistry$ServiceFetcher of android.app.SystemServiceRegistry
public ServiceNotFoundException = android.os.ServiceManager$ServiceNotFoundException of android.os.ServiceManager