final class io.reactivex.subjects.SerializedSubject<T> extends io.reactivex.subjects.Subject<T> implements io.reactivex.internal.util.AppendOnlyLinkedArrayList$NonThrowingPredicate<java.lang.Object>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.reactivex.subjects.SerializedSubject
super_class: io.reactivex.subjects.Subject
{
final io.reactivex.subjects.Subject<T> actual;
descriptor: Lio/reactivex/subjects/Subject;
flags: (0x0010) ACC_FINAL
Signature: Lio/reactivex/subjects/Subject<TT;>;
boolean emitting;
descriptor: Z
flags: (0x0000)
io.reactivex.internal.util.AppendOnlyLinkedArrayList<java.lang.Object> queue;
descriptor: Lio/reactivex/internal/util/AppendOnlyLinkedArrayList;
flags: (0x0000)
Signature: Lio/reactivex/internal/util/AppendOnlyLinkedArrayList<Ljava/lang/Object;>;
volatile boolean done;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
void <init>(io.reactivex.subjects.Subject<T>);
descriptor: (Lio/reactivex/subjects/Subject;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial io.reactivex.subjects.Subject.<init>:()V
1: aload 0
aload 1
putfield io.reactivex.subjects.SerializedSubject.actual:Lio/reactivex/subjects/Subject;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/reactivex/subjects/SerializedSubject<TT;>;
0 3 1 actual Lio/reactivex/subjects/Subject<TT;>;
Signature: (Lio/reactivex/subjects/Subject<TT;>;)V
MethodParameters:
Name Flags
actual final
protected void subscribeActual(io.reactivex.Observer<? super T>);
descriptor: (Lio/reactivex/Observer;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.reactivex.subjects.SerializedSubject.actual:Lio/reactivex/subjects/Subject;
aload 1
invokevirtual io.reactivex.subjects.Subject.subscribe:(Lio/reactivex/Observer;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/reactivex/subjects/SerializedSubject<TT;>;
0 2 1 observer Lio/reactivex/Observer<-TT;>;
Signature: (Lio/reactivex/Observer<-TT;>;)V
MethodParameters:
Name Flags
observer
public void onSubscribe(io.reactivex.disposables.Disposable);
descriptor: (Lio/reactivex/disposables/Disposable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield io.reactivex.subjects.SerializedSubject.done:Z
ifne 19
1: aload 0
dup
astore 3
monitorenter
2: aload 0
getfield io.reactivex.subjects.SerializedSubject.done:Z
ifeq 5
3: iconst_1
istore 2
start local 2 4: goto 15
end local 2 5: StackMap locals: io.reactivex.subjects.SerializedSubject io.reactivex.disposables.Disposable top io.reactivex.subjects.SerializedSubject
StackMap stack:
aload 0
getfield io.reactivex.subjects.SerializedSubject.emitting:Z
ifeq 13
6: aload 0
getfield io.reactivex.subjects.SerializedSubject.queue:Lio/reactivex/internal/util/AppendOnlyLinkedArrayList;
astore 4
start local 4 7: aload 4
ifnonnull 10
8: new io.reactivex.internal.util.AppendOnlyLinkedArrayList
dup
iconst_4
invokespecial io.reactivex.internal.util.AppendOnlyLinkedArrayList.<init>:(I)V
astore 4
9: aload 0
aload 4
putfield io.reactivex.subjects.SerializedSubject.queue:Lio/reactivex/internal/util/AppendOnlyLinkedArrayList;
10: StackMap locals: io.reactivex.internal.util.AppendOnlyLinkedArrayList
StackMap stack:
aload 4
aload 1
invokestatic io.reactivex.internal.util.NotificationLite.disposable:(Lio/reactivex/disposables/Disposable;)Ljava/lang/Object;
invokevirtual io.reactivex.internal.util.AppendOnlyLinkedArrayList.add:(Ljava/lang/Object;)V
11: aload 3
monitorexit
12: return
end local 4 13: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield io.reactivex.subjects.SerializedSubject.emitting:Z
14: iconst_0
istore 2
start local 2 15: StackMap locals: io.reactivex.subjects.SerializedSubject io.reactivex.disposables.Disposable int io.reactivex.subjects.SerializedSubject
StackMap stack:
aload 3
monitorexit
16: goto 20
end local 2 StackMap locals: io.reactivex.subjects.SerializedSubject io.reactivex.disposables.Disposable top io.reactivex.subjects.SerializedSubject
StackMap stack: java.lang.Throwable
17: aload 3
monitorexit
18: athrow
19: StackMap locals: io.reactivex.subjects.SerializedSubject io.reactivex.disposables.Disposable
StackMap stack:
iconst_1
istore 2
start local 2 20: StackMap locals: int
StackMap stack:
iload 2
ifeq 23
21: aload 1
invokeinterface io.reactivex.disposables.Disposable.dispose:()V
22: goto 25
23: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.subjects.SerializedSubject.actual:Lio/reactivex/subjects/Subject;
aload 1
invokevirtual io.reactivex.subjects.Subject.onSubscribe:(Lio/reactivex/disposables/Disposable;)V
24: aload 0
invokevirtual io.reactivex.subjects.SerializedSubject.emitLoop:()V
25: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lio/reactivex/subjects/SerializedSubject<TT;>;
0 26 1 d Lio/reactivex/disposables/Disposable;
4 5 2 cancel Z
15 17 2 cancel Z
20 26 2 cancel Z
7 13 4 q Lio/reactivex/internal/util/AppendOnlyLinkedArrayList<Ljava/lang/Object;>;
Exception table:
from to target type
2 12 17 any
13 16 17 any
17 18 17 any
MethodParameters:
Name Flags
d
public void onNext();
descriptor: (Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield io.reactivex.subjects.SerializedSubject.done:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
dup
astore 2
monitorenter
3: aload 0
getfield io.reactivex.subjects.SerializedSubject.done:Z
ifeq 6
4: aload 2
monitorexit
5: return
6: StackMap locals: io.reactivex.subjects.SerializedSubject
StackMap stack:
aload 0
getfield io.reactivex.subjects.SerializedSubject.emitting:Z
ifeq 14
7: aload 0
getfield io.reactivex.subjects.SerializedSubject.queue:Lio/reactivex/internal/util/AppendOnlyLinkedArrayList;
astore 3
start local 3 8: aload 3
ifnonnull 11
9: new io.reactivex.internal.util.AppendOnlyLinkedArrayList
dup
iconst_4
invokespecial io.reactivex.internal.util.AppendOnlyLinkedArrayList.<init>:(I)V
astore 3
10: aload 0
aload 3
putfield io.reactivex.subjects.SerializedSubject.queue:Lio/reactivex/internal/util/AppendOnlyLinkedArrayList;
11: StackMap locals: io.reactivex.internal.util.AppendOnlyLinkedArrayList
StackMap stack:
aload 3
aload 1
invokestatic io.reactivex.internal.util.NotificationLite.next:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual io.reactivex.internal.util.AppendOnlyLinkedArrayList.add:(Ljava/lang/Object;)V
12: aload 2
monitorexit
13: return
end local 3 14: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield io.reactivex.subjects.SerializedSubject.emitting:Z
15: aload 2
monitorexit
16: goto 19
StackMap locals:
StackMap stack: java.lang.Throwable
17: aload 2
monitorexit
18: athrow
19: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.subjects.SerializedSubject.actual:Lio/reactivex/subjects/Subject;
aload 1
invokevirtual io.reactivex.subjects.Subject.onNext:(Ljava/lang/Object;)V
20: aload 0
invokevirtual io.reactivex.subjects.SerializedSubject.emitLoop:()V
21: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lio/reactivex/subjects/SerializedSubject<TT;>;
0 22 1 t TT;
8 14 3 q Lio/reactivex/internal/util/AppendOnlyLinkedArrayList<Ljava/lang/Object;>;
Exception table:
from to target type
3 5 17 any
6 13 17 any
14 16 17 any
17 18 17 any
Signature: (TT;)V
MethodParameters:
Name Flags
t
public void onError(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield io.reactivex.subjects.SerializedSubject.done:Z
ifeq 3
1: aload 1
invokestatic io.reactivex.plugins.RxJavaPlugins.onError:(Ljava/lang/Throwable;)V
2: return
3: StackMap locals:
StackMap stack:
aload 0
dup
astore 3
monitorenter
4: aload 0
getfield io.reactivex.subjects.SerializedSubject.done:Z
ifeq 7
5: iconst_1
istore 2
start local 2 6: goto 18
end local 2 7: StackMap locals: io.reactivex.subjects.SerializedSubject java.lang.Throwable top io.reactivex.subjects.SerializedSubject
StackMap stack:
aload 0
iconst_1
putfield io.reactivex.subjects.SerializedSubject.done:Z
8: aload 0
getfield io.reactivex.subjects.SerializedSubject.emitting:Z
ifeq 16
9: aload 0
getfield io.reactivex.subjects.SerializedSubject.queue:Lio/reactivex/internal/util/AppendOnlyLinkedArrayList;
astore 4
start local 4 10: aload 4
ifnonnull 13
11: new io.reactivex.internal.util.AppendOnlyLinkedArrayList
dup
iconst_4
invokespecial io.reactivex.internal.util.AppendOnlyLinkedArrayList.<init>:(I)V
astore 4
12: aload 0
aload 4
putfield io.reactivex.subjects.SerializedSubject.queue:Lio/reactivex/internal/util/AppendOnlyLinkedArrayList;
13: StackMap locals: io.reactivex.internal.util.AppendOnlyLinkedArrayList
StackMap stack:
aload 4
aload 1
invokestatic io.reactivex.internal.util.NotificationLite.error:(Ljava/lang/Throwable;)Ljava/lang/Object;
invokevirtual io.reactivex.internal.util.AppendOnlyLinkedArrayList.setFirst:(Ljava/lang/Object;)V
14: aload 3
monitorexit
15: return
end local 4 16: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 17: aload 0
iconst_1
putfield io.reactivex.subjects.SerializedSubject.emitting:Z
18: StackMap locals: io.reactivex.subjects.SerializedSubject java.lang.Throwable int io.reactivex.subjects.SerializedSubject
StackMap stack:
aload 3
monitorexit
19: goto 22
end local 2 StackMap locals: io.reactivex.subjects.SerializedSubject java.lang.Throwable top io.reactivex.subjects.SerializedSubject
StackMap stack: java.lang.Throwable
20: aload 3
monitorexit
21: athrow
start local 2 22: StackMap locals: io.reactivex.subjects.SerializedSubject java.lang.Throwable int
StackMap stack:
iload 2
ifeq 25
23: aload 1
invokestatic io.reactivex.plugins.RxJavaPlugins.onError:(Ljava/lang/Throwable;)V
24: return
25: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.subjects.SerializedSubject.actual:Lio/reactivex/subjects/Subject;
aload 1
invokevirtual io.reactivex.subjects.Subject.onError:(Ljava/lang/Throwable;)V
26: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lio/reactivex/subjects/SerializedSubject<TT;>;
0 27 1 t Ljava/lang/Throwable;
6 7 2 reportError Z
17 20 2 reportError Z
22 27 2 reportError Z
10 16 4 q Lio/reactivex/internal/util/AppendOnlyLinkedArrayList<Ljava/lang/Object;>;
Exception table:
from to target type
4 15 20 any
16 19 20 any
20 21 20 any
MethodParameters:
Name Flags
t
public void onComplete();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield io.reactivex.subjects.SerializedSubject.done:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
dup
astore 1
monitorenter
3: aload 0
getfield io.reactivex.subjects.SerializedSubject.done:Z
ifeq 6
4: aload 1
monitorexit
5: return
6: StackMap locals: io.reactivex.subjects.SerializedSubject
StackMap stack:
aload 0
iconst_1
putfield io.reactivex.subjects.SerializedSubject.done:Z
7: aload 0
getfield io.reactivex.subjects.SerializedSubject.emitting:Z
ifeq 15
8: aload 0
getfield io.reactivex.subjects.SerializedSubject.queue:Lio/reactivex/internal/util/AppendOnlyLinkedArrayList;
astore 2
start local 2 9: aload 2
ifnonnull 12
10: new io.reactivex.internal.util.AppendOnlyLinkedArrayList
dup
iconst_4
invokespecial io.reactivex.internal.util.AppendOnlyLinkedArrayList.<init>:(I)V
astore 2
11: aload 0
aload 2
putfield io.reactivex.subjects.SerializedSubject.queue:Lio/reactivex/internal/util/AppendOnlyLinkedArrayList;
12: StackMap locals: io.reactivex.internal.util.AppendOnlyLinkedArrayList
StackMap stack:
aload 2
invokestatic io.reactivex.internal.util.NotificationLite.complete:()Ljava/lang/Object;
invokevirtual io.reactivex.internal.util.AppendOnlyLinkedArrayList.add:(Ljava/lang/Object;)V
13: aload 1
monitorexit
14: return
end local 2 15: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield io.reactivex.subjects.SerializedSubject.emitting:Z
16: aload 1
monitorexit
17: goto 20
StackMap locals:
StackMap stack: java.lang.Throwable
18: aload 1
monitorexit
19: athrow
20: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.subjects.SerializedSubject.actual:Lio/reactivex/subjects/Subject;
invokevirtual io.reactivex.subjects.Subject.onComplete:()V
21: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lio/reactivex/subjects/SerializedSubject<TT;>;
9 15 2 q Lio/reactivex/internal/util/AppendOnlyLinkedArrayList<Ljava/lang/Object;>;
Exception table:
from to target type
3 5 18 any
6 14 18 any
15 17 18 any
18 19 18 any
void emitLoop();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
dup
astore 2
monitorenter
1: aload 0
getfield io.reactivex.subjects.SerializedSubject.queue:Lio/reactivex/internal/util/AppendOnlyLinkedArrayList;
astore 1
start local 1 2: aload 1
ifnonnull 6
3: aload 0
iconst_0
putfield io.reactivex.subjects.SerializedSubject.emitting:Z
4: aload 2
monitorexit
5: return
6: StackMap locals: io.reactivex.internal.util.AppendOnlyLinkedArrayList io.reactivex.subjects.SerializedSubject
StackMap stack:
aload 0
aconst_null
putfield io.reactivex.subjects.SerializedSubject.queue:Lio/reactivex/internal/util/AppendOnlyLinkedArrayList;
7: aload 2
monitorexit
8: goto 11
end local 1 StackMap locals: io.reactivex.subjects.SerializedSubject top io.reactivex.subjects.SerializedSubject
StackMap stack: java.lang.Throwable
9: aload 2
monitorexit
10: athrow
start local 1 11: StackMap locals: io.reactivex.subjects.SerializedSubject io.reactivex.internal.util.AppendOnlyLinkedArrayList
StackMap stack:
aload 1
aload 0
invokevirtual io.reactivex.internal.util.AppendOnlyLinkedArrayList.forEachWhile:(Lio/reactivex/internal/util/AppendOnlyLinkedArrayList$NonThrowingPredicate;)V
end local 1 12: goto 0
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lio/reactivex/subjects/SerializedSubject<TT;>;
2 9 1 q Lio/reactivex/internal/util/AppendOnlyLinkedArrayList<Ljava/lang/Object;>;
11 12 1 q Lio/reactivex/internal/util/AppendOnlyLinkedArrayList<Ljava/lang/Object;>;
Exception table:
from to target type
1 5 9 any
6 8 9 any
9 10 9 any
public boolean test(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield io.reactivex.subjects.SerializedSubject.actual:Lio/reactivex/subjects/Subject;
invokestatic io.reactivex.internal.util.NotificationLite.acceptFull:(Ljava/lang/Object;Lio/reactivex/Observer;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/reactivex/subjects/SerializedSubject<TT;>;
0 1 1 o Ljava/lang/Object;
MethodParameters:
Name Flags
o
public boolean hasObservers();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.reactivex.subjects.SerializedSubject.actual:Lio/reactivex/subjects/Subject;
invokevirtual io.reactivex.subjects.Subject.hasObservers:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/reactivex/subjects/SerializedSubject<TT;>;
public boolean hasThrowable();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.reactivex.subjects.SerializedSubject.actual:Lio/reactivex/subjects/Subject;
invokevirtual io.reactivex.subjects.Subject.hasThrowable:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/reactivex/subjects/SerializedSubject<TT;>;
public java.lang.Throwable getThrowable();
descriptor: ()Ljava/lang/Throwable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.reactivex.subjects.SerializedSubject.actual:Lio/reactivex/subjects/Subject;
invokevirtual io.reactivex.subjects.Subject.getThrowable:()Ljava/lang/Throwable;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/reactivex/subjects/SerializedSubject<TT;>;
RuntimeInvisibleAnnotations:
io.reactivex.annotations.Nullable()
public boolean hasComplete();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.reactivex.subjects.SerializedSubject.actual:Lio/reactivex/subjects/Subject;
invokevirtual io.reactivex.subjects.Subject.hasComplete:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/reactivex/subjects/SerializedSubject<TT;>;
}
Signature: <T:Ljava/lang/Object;>Lio/reactivex/subjects/Subject<TT;>;Lio/reactivex/internal/util/AppendOnlyLinkedArrayList$NonThrowingPredicate<Ljava/lang/Object;>;
SourceFile: "SerializedSubject.java"
InnerClasses:
public abstract NonThrowingPredicate = io.reactivex.internal.util.AppendOnlyLinkedArrayList$NonThrowingPredicate of io.reactivex.internal.util.AppendOnlyLinkedArrayList