public final class io.reactivex.internal.operators.flowable.FlowableAmb<T> extends io.reactivex.Flowable<T>
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: io.reactivex.internal.operators.flowable.FlowableAmb
super_class: io.reactivex.Flowable
{
final org.reactivestreams.Publisher<? extends T>[] sources;
descriptor: [Lorg/reactivestreams/Publisher;
flags: (0x0010) ACC_FINAL
Signature: [Lorg/reactivestreams/Publisher<+TT;>;
final java.lang.Iterable<? extends org.reactivestreams.Publisher<? extends T>> sourcesIterable;
descriptor: Ljava/lang/Iterable;
flags: (0x0010) ACC_FINAL
Signature: Ljava/lang/Iterable<+Lorg/reactivestreams/Publisher<+TT;>;>;
public void <init>(org.reactivestreams.Publisher<? extends T>[], java.lang.Iterable<? extends org.reactivestreams.Publisher<? extends T>>);
descriptor: ([Lorg/reactivestreams/Publisher;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.Flowable.<init>:()V
1: aload 0
aload 1
putfield io.reactivex.internal.operators.flowable.FlowableAmb.sources:[Lorg/reactivestreams/Publisher;
2: aload 0
aload 2
putfield io.reactivex.internal.operators.flowable.FlowableAmb.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/flowable/FlowableAmb<TT;>;
0 4 1 sources [Lorg/reactivestreams/Publisher;
0 4 2 sourcesIterable Ljava/lang/Iterable<+Lorg/reactivestreams/Publisher<+TT;>;>;
Signature: ([Lorg/reactivestreams/Publisher<+TT;>;Ljava/lang/Iterable<+Lorg/reactivestreams/Publisher<+TT;>;>;)V
MethodParameters:
Name Flags
sources
sourcesIterable
public void subscribeActual(org.reactivestreams.Subscriber<? super T>);
descriptor: (Lorg/reactivestreams/Subscriber;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableAmb.sources:[Lorg/reactivestreams/Publisher;
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: aload 2
ifnonnull 20
3: bipush 8
anewarray org.reactivestreams.Publisher
astore 2
4: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableAmb.sourcesIterable:Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 5
goto 14
StackMap locals: io.reactivex.internal.operators.flowable.FlowableAmb org.reactivestreams.Subscriber org.reactivestreams.Publisher[] int top java.util.Iterator
StackMap stack:
5: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.reactivestreams.Publisher
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.subscriptions.EmptySubscription.error:(Ljava/lang/Throwable;Lorg/reactivestreams/Subscriber;)V
8: return
9: StackMap locals: io.reactivex.internal.operators.flowable.FlowableAmb org.reactivestreams.Subscriber org.reactivestreams.Publisher[] int org.reactivestreams.Publisher java.util.Iterator
StackMap stack:
iload 3
aload 2
arraylength
if_icmpne 13
10: iload 3
iload 3
iconst_2
ishr
iadd
anewarray org.reactivestreams.Publisher
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.flowable.FlowableAmb org.reactivestreams.Subscriber org.reactivestreams.Publisher[] 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.flowable.FlowableAmb org.reactivestreams.Subscriber org.reactivestreams.Publisher[] 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.subscriptions.EmptySubscription.error:(Ljava/lang/Throwable;Lorg/reactivestreams/Subscriber;)V
19: return
end local 4 20: StackMap locals:
StackMap stack:
aload 2
arraylength
istore 3
21: StackMap locals:
StackMap stack:
iload 3
ifne 24
22: aload 1
invokestatic io.reactivex.internal.subscriptions.EmptySubscription.complete:(Lorg/reactivestreams/Subscriber;)V
23: return
24: StackMap locals:
StackMap stack:
iload 3
iconst_1
if_icmpne 27
25: aload 2
iconst_0
aaload
aload 1
invokeinterface org.reactivestreams.Publisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
26: return
27: StackMap locals:
StackMap stack:
new io.reactivex.internal.operators.flowable.FlowableAmb$AmbCoordinator
dup
aload 1
iload 3
invokespecial io.reactivex.internal.operators.flowable.FlowableAmb$AmbCoordinator.<init>:(Lorg/reactivestreams/Subscriber;I)V
astore 4
start local 4 28: aload 4
aload 2
invokevirtual io.reactivex.internal.operators.flowable.FlowableAmb$AmbCoordinator.subscribe:([Lorg/reactivestreams/Publisher;)V
29: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lio/reactivex/internal/operators/flowable/FlowableAmb<TT;>;
0 30 1 s Lorg/reactivestreams/Subscriber<-TT;>;
1 30 2 sources [Lorg/reactivestreams/Publisher;
2 30 3 count I
6 14 4 p Lorg/reactivestreams/Publisher<+TT;>;
11 13 6 b [Lorg/reactivestreams/Publisher;
17 20 4 e Ljava/lang/Throwable;
28 30 4 ac Lio/reactivex/internal/operators/flowable/FlowableAmb$AmbCoordinator<TT;>;
Exception table:
from to target type
4 8 16 Class java.lang.Throwable
9 15 16 Class java.lang.Throwable
Signature: (Lorg/reactivestreams/Subscriber<-TT;>;)V
MethodParameters:
Name Flags
s
}
Signature: <T:Ljava/lang/Object;>Lio/reactivex/Flowable<TT;>;
SourceFile: "FlowableAmb.java"
NestMembers:
io.reactivex.internal.operators.flowable.FlowableAmb$AmbCoordinator io.reactivex.internal.operators.flowable.FlowableAmb$AmbInnerSubscriber
InnerClasses:
final AmbCoordinator = io.reactivex.internal.operators.flowable.FlowableAmb$AmbCoordinator of io.reactivex.internal.operators.flowable.FlowableAmb
final AmbInnerSubscriber = io.reactivex.internal.operators.flowable.FlowableAmb$AmbInnerSubscriber of io.reactivex.internal.operators.flowable.FlowableAmb