public final class io.reactivex.internal.operators.single.SingleAmb<T> extends io.reactivex.Single<T>
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: io.reactivex.internal.operators.single.SingleAmb
super_class: io.reactivex.Single
{
private final io.reactivex.SingleSource<? extends T>[] sources;
descriptor: [Lio/reactivex/SingleSource;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: [Lio/reactivex/SingleSource<+TT;>;
private final java.lang.Iterable<? extends io.reactivex.SingleSource<? extends T>> sourcesIterable;
descriptor: Ljava/lang/Iterable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/lang/Iterable<+Lio/reactivex/SingleSource<+TT;>;>;
public void <init>(io.reactivex.SingleSource<? extends T>[], java.lang.Iterable<? extends io.reactivex.SingleSource<? extends T>>);
descriptor: ([Lio/reactivex/SingleSource;Ljava/lang/Iterable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial io.reactivex.Single.<init>:()V
1: aload 0
aload 1
putfield io.reactivex.internal.operators.single.SingleAmb.sources:[Lio/reactivex/SingleSource;
2: aload 0
aload 2
putfield io.reactivex.internal.operators.single.SingleAmb.sourcesIterable:Ljava/lang/Iterable;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/reactivex/internal/operators/single/SingleAmb<TT;>;
0 4 1 sources [Lio/reactivex/SingleSource;
0 4 2 sourcesIterable Ljava/lang/Iterable<+Lio/reactivex/SingleSource<+TT;>;>;
Signature: ([Lio/reactivex/SingleSource<+TT;>;Ljava/lang/Iterable<+Lio/reactivex/SingleSource<+TT;>;>;)V
MethodParameters:
Name Flags
sources
sourcesIterable
protected void subscribeActual(io.reactivex.SingleObserver<? super T>);
descriptor: (Lio/reactivex/SingleObserver;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=9, args_size=2
start local 0 start local 1 0: aload 0
getfield io.reactivex.internal.operators.single.SingleAmb.sources:[Lio/reactivex/SingleSource;
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: aload 2
ifnonnull 20
3: bipush 8
anewarray io.reactivex.SingleSource
astore 2
4: aload 0
getfield io.reactivex.internal.operators.single.SingleAmb.sourcesIterable:Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 5
goto 14
StackMap locals: io.reactivex.internal.operators.single.SingleAmb io.reactivex.SingleObserver io.reactivex.SingleSource[] int top java.util.Iterator
StackMap stack:
5: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.reactivex.SingleSource
astore 4
start local 4 6: aload 4
ifnonnull 9
7: new java.lang.NullPointerException
dup
ldc "One of the sources is null"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
aload 1
invokestatic io.reactivex.internal.disposables.EmptyDisposable.error:(Ljava/lang/Throwable;Lio/reactivex/SingleObserver;)V
8: return
9: StackMap locals: io.reactivex.internal.operators.single.SingleAmb io.reactivex.SingleObserver io.reactivex.SingleSource[] int io.reactivex.SingleSource java.util.Iterator
StackMap stack:
iload 3
aload 2
arraylength
if_icmpne 13
10: iload 3
iload 3
iconst_2
ishr
iadd
anewarray io.reactivex.SingleSource
astore 6
start local 6 11: aload 2
iconst_0
aload 6
iconst_0
iload 3
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
12: aload 6
astore 2
end local 6 13: StackMap locals:
StackMap stack:
aload 2
iload 3
iinc 3 1
aload 4
aastore
end local 4 14: StackMap locals: io.reactivex.internal.operators.single.SingleAmb io.reactivex.SingleObserver io.reactivex.SingleSource[] int top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
15: goto 21
StackMap locals: io.reactivex.internal.operators.single.SingleAmb io.reactivex.SingleObserver io.reactivex.SingleSource[] int
StackMap stack: java.lang.Throwable
16: astore 4
start local 4 17: aload 4
invokestatic io.reactivex.exceptions.Exceptions.throwIfFatal:(Ljava/lang/Throwable;)V
18: aload 4
aload 1
invokestatic io.reactivex.internal.disposables.EmptyDisposable.error:(Ljava/lang/Throwable;Lio/reactivex/SingleObserver;)V
19: return
end local 4 20: StackMap locals:
StackMap stack:
aload 2
arraylength
istore 3
21: StackMap locals:
StackMap stack:
new java.util.concurrent.atomic.AtomicBoolean
dup
invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:()V
astore 4
start local 4 22: new io.reactivex.disposables.CompositeDisposable
dup
invokespecial io.reactivex.disposables.CompositeDisposable.<init>:()V
astore 5
start local 5 23: aload 1
aload 5
invokeinterface io.reactivex.SingleObserver.onSubscribe:(Lio/reactivex/disposables/Disposable;)V
24: iconst_0
istore 6
start local 6 25: goto 39
26: StackMap locals: java.util.concurrent.atomic.AtomicBoolean io.reactivex.disposables.CompositeDisposable int
StackMap stack:
aload 2
iload 6
aaload
astore 7
start local 7 27: aload 5
invokevirtual io.reactivex.disposables.CompositeDisposable.isDisposed:()Z
ifeq 29
28: return
29: StackMap locals: io.reactivex.SingleSource
StackMap stack:
aload 7
ifnonnull 37
30: aload 5
invokevirtual io.reactivex.disposables.CompositeDisposable.dispose:()V
31: new java.lang.NullPointerException
dup
ldc "One of the sources is null"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
astore 8
start local 8 32: aload 4
iconst_0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
ifeq 35
33: aload 1
aload 8
invokeinterface io.reactivex.SingleObserver.onError:(Ljava/lang/Throwable;)V
34: goto 36
35: StackMap locals: java.lang.Throwable
StackMap stack:
aload 8
invokestatic io.reactivex.plugins.RxJavaPlugins.onError:(Ljava/lang/Throwable;)V
36: StackMap locals:
StackMap stack:
return
end local 8 37: StackMap locals:
StackMap stack:
aload 7
new io.reactivex.internal.operators.single.SingleAmb$AmbSingleObserver
dup
aload 1
aload 5
aload 4
invokespecial io.reactivex.internal.operators.single.SingleAmb$AmbSingleObserver.<init>:(Lio/reactivex/SingleObserver;Lio/reactivex/disposables/CompositeDisposable;Ljava/util/concurrent/atomic/AtomicBoolean;)V
invokeinterface io.reactivex.SingleSource.subscribe:(Lio/reactivex/SingleObserver;)V
end local 7 38: iinc 6 1
StackMap locals:
StackMap stack:
39: iload 6
iload 3
if_icmplt 26
end local 6 40: 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 41 0 this Lio/reactivex/internal/operators/single/SingleAmb<TT;>;
0 41 1 observer Lio/reactivex/SingleObserver<-TT;>;
1 41 2 sources [Lio/reactivex/SingleSource;
2 41 3 count I
6 14 4 element Lio/reactivex/SingleSource<+TT;>;
11 13 6 b [Lio/reactivex/SingleSource;
17 20 4 e Ljava/lang/Throwable;
22 41 4 winner Ljava/util/concurrent/atomic/AtomicBoolean;
23 41 5 set Lio/reactivex/disposables/CompositeDisposable;
25 40 6 i I
27 38 7 s1 Lio/reactivex/SingleSource<+TT;>;
32 37 8 e Ljava/lang/Throwable;
Exception table:
from to target type
4 8 16 Class java.lang.Throwable
9 15 16 Class java.lang.Throwable
Signature: (Lio/reactivex/SingleObserver<-TT;>;)V
MethodParameters:
Name Flags
observer final
}
Signature: <T:Ljava/lang/Object;>Lio/reactivex/Single<TT;>;
SourceFile: "SingleAmb.java"
NestMembers:
io.reactivex.internal.operators.single.SingleAmb$AmbSingleObserver
InnerClasses:
final AmbSingleObserver = io.reactivex.internal.operators.single.SingleAmb$AmbSingleObserver of io.reactivex.internal.operators.single.SingleAmb