final class io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator<T, R> extends io.reactivex.internal.subscriptions.BasicIntQueueSubscription<R>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator
super_class: io.reactivex.internal.subscriptions.BasicIntQueueSubscription
{
private static final long serialVersionUID;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -5082275438355852221
final org.reactivestreams.Subscriber<? super R> downstream;
descriptor: Lorg/reactivestreams/Subscriber;
flags: (0x0010) ACC_FINAL
Signature: Lorg/reactivestreams/Subscriber<-TR;>;
final io.reactivex.functions.Function<? super java.lang.Object[], ? extends R> combiner;
descriptor: Lio/reactivex/functions/Function;
flags: (0x0010) ACC_FINAL
Signature: Lio/reactivex/functions/Function<-[Ljava/lang/Object;+TR;>;
final io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestInnerSubscriber<T>[] subscribers;
descriptor: [Lio/reactivex/internal/operators/flowable/FlowableCombineLatest$CombineLatestInnerSubscriber;
flags: (0x0010) ACC_FINAL
Signature: [Lio/reactivex/internal/operators/flowable/FlowableCombineLatest$CombineLatestInnerSubscriber<TT;>;
final io.reactivex.internal.queue.SpscLinkedArrayQueue<java.lang.Object> queue;
descriptor: Lio/reactivex/internal/queue/SpscLinkedArrayQueue;
flags: (0x0010) ACC_FINAL
Signature: Lio/reactivex/internal/queue/SpscLinkedArrayQueue<Ljava/lang/Object;>;
final java.lang.Object[] latest;
descriptor: [Ljava/lang/Object;
flags: (0x0010) ACC_FINAL
final boolean delayErrors;
descriptor: Z
flags: (0x0010) ACC_FINAL
boolean outputFused;
descriptor: Z
flags: (0x0000)
int nonEmptySources;
descriptor: I
flags: (0x0000)
int completedSources;
descriptor: I
flags: (0x0000)
volatile boolean cancelled;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
final java.util.concurrent.atomic.AtomicLong requested;
descriptor: Ljava/util/concurrent/atomic/AtomicLong;
flags: (0x0010) ACC_FINAL
volatile boolean done;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
final java.util.concurrent.atomic.AtomicReference<java.lang.Throwable> error;
descriptor: Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReference<Ljava/lang/Throwable;>;
void <init>(org.reactivestreams.Subscriber<? super R>, io.reactivex.functions.Function<? super java.lang.Object[], ? extends R>, int, int, );
descriptor: (Lorg/reactivestreams/Subscriber;Lio/reactivex/functions/Function;IIZ)V
flags: (0x0000)
Code:
stack=7, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokespecial io.reactivex.internal.subscriptions.BasicIntQueueSubscription.<init>:()V
1: aload 0
aload 1
putfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.downstream:Lorg/reactivestreams/Subscriber;
2: aload 0
aload 2
putfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.combiner:Lio/reactivex/functions/Function;
3: iload 3
anewarray io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestInnerSubscriber
astore 6
start local 6 4: iconst_0
istore 7
start local 7 5: goto 8
6: StackMap locals: io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator org.reactivestreams.Subscriber io.reactivex.functions.Function int int int io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestInnerSubscriber[] int
StackMap stack:
aload 6
iload 7
new io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestInnerSubscriber
dup
aload 0
iload 7
iload 4
invokespecial io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestInnerSubscriber.<init>:(Lio/reactivex/internal/operators/flowable/FlowableCombineLatest$CombineLatestCoordinator;II)V
aastore
7: iinc 7 1
StackMap locals:
StackMap stack:
8: iload 7
iload 3
if_icmplt 6
end local 7 9: aload 0
aload 6
putfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.subscribers:[Lio/reactivex/internal/operators/flowable/FlowableCombineLatest$CombineLatestInnerSubscriber;
10: aload 0
iload 3
anewarray java.lang.Object
putfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.latest:[Ljava/lang/Object;
11: aload 0
new io.reactivex.internal.queue.SpscLinkedArrayQueue
dup
iload 4
invokespecial io.reactivex.internal.queue.SpscLinkedArrayQueue.<init>:(I)V
putfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.queue:Lio/reactivex/internal/queue/SpscLinkedArrayQueue;
12: aload 0
new java.util.concurrent.atomic.AtomicLong
dup
invokespecial java.util.concurrent.atomic.AtomicLong.<init>:()V
putfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.requested:Ljava/util/concurrent/atomic/AtomicLong;
13: aload 0
new java.util.concurrent.atomic.AtomicReference
dup
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
putfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.error:Ljava/util/concurrent/atomic/AtomicReference;
14: aload 0
iload 5
putfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.delayErrors:Z
15: 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 16 0 this Lio/reactivex/internal/operators/flowable/FlowableCombineLatest$CombineLatestCoordinator<TT;TR;>;
0 16 1 actual Lorg/reactivestreams/Subscriber<-TR;>;
0 16 2 combiner Lio/reactivex/functions/Function<-[Ljava/lang/Object;+TR;>;
0 16 3 n I
0 16 4 bufferSize I
0 16 5 delayErrors Z
4 16 6 a [Lio/reactivex/internal/operators/flowable/FlowableCombineLatest$CombineLatestInnerSubscriber;
5 9 7 i I
Signature: (Lorg/reactivestreams/Subscriber<-TR;>;Lio/reactivex/functions/Function<-[Ljava/lang/Object;+TR;>;IIZ)V
MethodParameters:
Name Flags
actual
combiner
n
bufferSize
delayErrors
public void request(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: lload 1
invokestatic io.reactivex.internal.subscriptions.SubscriptionHelper.validate:(J)Z
ifeq 3
1: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.requested:Ljava/util/concurrent/atomic/AtomicLong;
lload 1
invokestatic io.reactivex.internal.util.BackpressureHelper.add:(Ljava/util/concurrent/atomic/AtomicLong;J)J
pop2
2: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.drain:()V
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/reactivex/internal/operators/flowable/FlowableCombineLatest$CombineLatestCoordinator<TT;TR;>;
0 4 1 n J
MethodParameters:
Name Flags
n
public void cancel();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.cancelled:Z
1: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.cancelAll:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/reactivex/internal/operators/flowable/FlowableCombineLatest$CombineLatestCoordinator<TT;TR;>;
void subscribe(org.reactivestreams.Publisher<? extends T>[], );
descriptor: ([Lorg/reactivestreams/Publisher;I)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.subscribers:[Lio/reactivex/internal/operators/flowable/FlowableCombineLatest$CombineLatestInnerSubscriber;
astore 3
start local 3 1: iconst_0
istore 4
start local 4 2: goto 7
3: StackMap locals: io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestInnerSubscriber[] int
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.done:Z
ifne 4
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.cancelled:Z
ifeq 5
4: StackMap locals:
StackMap stack:
return
5: StackMap locals:
StackMap stack:
aload 1
iload 4
aaload
aload 3
iload 4
aaload
invokeinterface org.reactivestreams.Publisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
6: iinc 4 1
StackMap locals:
StackMap stack:
7: iload 4
iload 2
if_icmplt 3
end local 4 8: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/reactivex/internal/operators/flowable/FlowableCombineLatest$CombineLatestCoordinator<TT;TR;>;
0 9 1 sources [Lorg/reactivestreams/Publisher;
0 9 2 n I
1 9 3 a [Lio/reactivex/internal/operators/flowable/FlowableCombineLatest$CombineLatestInnerSubscriber;
2 8 4 i I
Signature: ([Lorg/reactivestreams/Publisher<+TT;>;I)V
MethodParameters:
Name Flags
sources
n
void innerValue(int, );
descriptor: (ILjava/lang/Object;)V
flags: (0x0000)
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
dup
astore 4
monitorenter
1: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.latest:[Ljava/lang/Object;
astore 5
start local 5 2: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.nonEmptySources:I
istore 6
start local 6 3: aload 5
iload 1
aaload
ifnonnull 6
4: iinc 6 1
5: aload 0
iload 6
putfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.nonEmptySources:I
6: StackMap locals: io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator int java.lang.Object top io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator java.lang.Object[] int
StackMap stack:
aload 5
iload 1
aload 2
aastore
7: aload 5
arraylength
iload 6
if_icmpne 11
8: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.queue:Lio/reactivex/internal/queue/SpscLinkedArrayQueue;
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.subscribers:[Lio/reactivex/internal/operators/flowable/FlowableCombineLatest$CombineLatestInnerSubscriber;
iload 1
aaload
aload 5
invokevirtual java.lang.Object[].clone:()Ljava/lang/Object;
invokevirtual io.reactivex.internal.queue.SpscLinkedArrayQueue.offer:(Ljava/lang/Object;Ljava/lang/Object;)Z
pop
9: iconst_0
istore 3
start local 3 10: goto 12
end local 3 11: StackMap locals:
StackMap stack:
iconst_1
istore 3
end local 6 end local 5 start local 3 12: StackMap locals: io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator int java.lang.Object int io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator
StackMap stack:
aload 4
monitorexit
13: goto 16
end local 3 StackMap locals: io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator int java.lang.Object top io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator
StackMap stack: java.lang.Throwable
14: aload 4
monitorexit
15: athrow
start local 3 16: StackMap locals: io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator int java.lang.Object int
StackMap stack:
iload 3
ifeq 19
17: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.subscribers:[Lio/reactivex/internal/operators/flowable/FlowableCombineLatest$CombineLatestInnerSubscriber;
iload 1
aaload
invokevirtual io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestInnerSubscriber.requestOne:()V
18: goto 20
19: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.drain:()V
20: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lio/reactivex/internal/operators/flowable/FlowableCombineLatest$CombineLatestCoordinator<TT;TR;>;
0 21 1 index I
0 21 2 value TT;
10 11 3 replenishInsteadOfDrain Z
12 14 3 replenishInsteadOfDrain Z
16 21 3 replenishInsteadOfDrain Z
2 12 5 os [Ljava/lang/Object;
3 12 6 localNonEmptySources I
Exception table:
from to target type
1 13 14 any
14 15 14 any
Signature: (ITT;)V
MethodParameters:
Name Flags
index
value
void innerComplete(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 0
dup
astore 2
monitorenter
1: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.latest:[Ljava/lang/Object;
astore 3
start local 3 2: aload 3
iload 1
aaload
ifnull 10
3: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.completedSources:I
iconst_1
iadd
istore 4
start local 4 4: iload 4
aload 3
arraylength
if_icmpne 7
5: aload 0
iconst_1
putfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.done:Z
6: goto 11
7: StackMap locals: io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator java.lang.Object[] int
StackMap stack:
aload 0
iload 4
putfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.completedSources:I
8: aload 2
monitorexit
9: return
end local 4 10: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.done:Z
end local 3 11: StackMap locals:
StackMap stack:
aload 2
monitorexit
12: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
13: aload 2
monitorexit
14: athrow
15: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.drain:()V
16: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lio/reactivex/internal/operators/flowable/FlowableCombineLatest$CombineLatestCoordinator<TT;TR;>;
0 17 1 index I
2 11 3 os [Ljava/lang/Object;
4 10 4 localCompletedSources I
Exception table:
from to target type
1 9 13 any
10 12 13 any
13 14 13 any
MethodParameters:
Name Flags
index
void innerError(int, java.lang.Throwable);
descriptor: (ILjava/lang/Throwable;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.error:Ljava/util/concurrent/atomic/AtomicReference;
aload 2
invokestatic io.reactivex.internal.util.ExceptionHelper.addThrowable:(Ljava/util/concurrent/atomic/AtomicReference;Ljava/lang/Throwable;)Z
ifeq 8
1: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.delayErrors:Z
ifne 6
2: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.cancelAll:()V
3: aload 0
iconst_1
putfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.done:Z
4: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.drain:()V
5: goto 9
6: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.innerComplete:(I)V
7: goto 9
8: StackMap locals:
StackMap stack:
aload 2
invokestatic io.reactivex.plugins.RxJavaPlugins.onError:(Ljava/lang/Throwable;)V
9: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lio/reactivex/internal/operators/flowable/FlowableCombineLatest$CombineLatestCoordinator<TT;TR;>;
0 10 1 index I
0 10 2 e Ljava/lang/Throwable;
MethodParameters:
Name Flags
index
e
void drainOutput();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=7, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.downstream:Lorg/reactivestreams/Subscriber;
astore 1
start local 1 1: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.queue:Lio/reactivex/internal/queue/SpscLinkedArrayQueue;
astore 2
start local 2 2: iconst_1
istore 3
start local 3 3: StackMap locals: org.reactivestreams.Subscriber io.reactivex.internal.queue.SpscLinkedArrayQueue int
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.cancelled:Z
ifeq 6
4: aload 2
invokevirtual io.reactivex.internal.queue.SpscLinkedArrayQueue.clear:()V
5: return
6: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.error:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast java.lang.Throwable
astore 4
start local 4 7: aload 4
ifnull 11
8: aload 2
invokevirtual io.reactivex.internal.queue.SpscLinkedArrayQueue.clear:()V
9: aload 1
aload 4
invokeinterface org.reactivestreams.Subscriber.onError:(Ljava/lang/Throwable;)V
10: return
11: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.done:Z
istore 5
start local 5 12: aload 2
invokevirtual io.reactivex.internal.queue.SpscLinkedArrayQueue.isEmpty:()Z
istore 6
start local 6 13: iload 6
ifne 15
14: aload 1
aconst_null
invokeinterface org.reactivestreams.Subscriber.onNext:(Ljava/lang/Object;)V
15: StackMap locals: int int
StackMap stack:
iload 5
ifeq 18
iload 6
ifeq 18
16: aload 1
invokeinterface org.reactivestreams.Subscriber.onComplete:()V
17: return
18: StackMap locals:
StackMap stack:
aload 0
iload 3
ineg
invokevirtual io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.addAndGet:(I)I
istore 3
19: iload 3
ifne 3
end local 6 end local 5 end local 4 20: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lio/reactivex/internal/operators/flowable/FlowableCombineLatest$CombineLatestCoordinator<TT;TR;>;
1 21 1 a Lorg/reactivestreams/Subscriber<-TR;>;
2 21 2 q Lio/reactivex/internal/queue/SpscLinkedArrayQueue<Ljava/lang/Object;>;
3 21 3 missed I
7 20 4 ex Ljava/lang/Throwable;
12 20 5 d Z
13 20 6 empty Z
void drainAsync();
descriptor: ()V
flags: (0x0000)
Code:
stack=5, locals=14, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.downstream:Lorg/reactivestreams/Subscriber;
astore 1
start local 1 1: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.queue:Lio/reactivex/internal/queue/SpscLinkedArrayQueue;
astore 2
start local 2 2: iconst_1
istore 3
start local 3 3: StackMap locals: org.reactivestreams.Subscriber io.reactivex.internal.queue.SpscLinkedArrayQueue int
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.requested:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lstore 4
start local 4 4: lconst_0
lstore 6
start local 6 5: goto 28
6: StackMap locals: long long
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.done:Z
istore 8
start local 8 7: aload 2
invokevirtual io.reactivex.internal.queue.SpscLinkedArrayQueue.poll:()Ljava/lang/Object;
astore 9
start local 9 8: aload 9
ifnonnull 9
iconst_1
goto 10
StackMap locals: int java.lang.Object
StackMap stack:
9: iconst_0
StackMap locals:
StackMap stack: int
10: istore 10
start local 10 11: aload 0
iload 8
iload 10
aload 1
aload 2
invokevirtual io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.checkTerminated:(ZZLorg/reactivestreams/Subscriber;Lio/reactivex/internal/queue/SpscLinkedArrayQueue;)Z
ifeq 13
12: return
13: StackMap locals: int
StackMap stack:
iload 10
ifeq 15
14: goto 29
15: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.reactivex.internal.queue.SpscLinkedArrayQueue.poll:()Ljava/lang/Object;
checkcast java.lang.Object[]
astore 11
start local 11 16: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.combiner:Lio/reactivex/functions/Function;
aload 11
invokeinterface io.reactivex.functions.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
ldc "The combiner returned a null value"
invokestatic io.reactivex.internal.functions.ObjectHelper.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
astore 12
start local 12 17: goto 25
end local 12 StackMap locals: io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator org.reactivestreams.Subscriber io.reactivex.internal.queue.SpscLinkedArrayQueue int long long int java.lang.Object int java.lang.Object[]
StackMap stack: java.lang.Throwable
18: astore 13
start local 13 19: aload 13
invokestatic io.reactivex.exceptions.Exceptions.throwIfFatal:(Ljava/lang/Throwable;)V
20: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.cancelAll:()V
21: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.error:Ljava/util/concurrent/atomic/AtomicReference;
aload 13
invokestatic io.reactivex.internal.util.ExceptionHelper.addThrowable:(Ljava/util/concurrent/atomic/AtomicReference;Ljava/lang/Throwable;)Z
pop
22: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.error:Ljava/util/concurrent/atomic/AtomicReference;
invokestatic io.reactivex.internal.util.ExceptionHelper.terminate:(Ljava/util/concurrent/atomic/AtomicReference;)Ljava/lang/Throwable;
astore 13
23: aload 1
aload 13
invokeinterface org.reactivestreams.Subscriber.onError:(Ljava/lang/Throwable;)V
24: return
end local 13 start local 12 25: StackMap locals: java.lang.Object
StackMap stack:
aload 1
aload 12
invokeinterface org.reactivestreams.Subscriber.onNext:(Ljava/lang/Object;)V
26: aload 9
checkcast io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestInnerSubscriber
invokevirtual io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestInnerSubscriber.requestOne:()V
27: lload 6
lconst_1
ladd
lstore 6
end local 12 end local 11 end local 10 end local 9 end local 8 28: StackMap locals: io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator org.reactivestreams.Subscriber io.reactivex.internal.queue.SpscLinkedArrayQueue int long long
StackMap stack:
lload 6
lload 4
lcmp
ifne 6
29: StackMap locals:
StackMap stack:
lload 6
lload 4
lcmp
ifne 32
30: aload 0
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.done:Z
aload 2
invokevirtual io.reactivex.internal.queue.SpscLinkedArrayQueue.isEmpty:()Z
aload 1
aload 2
invokevirtual io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.checkTerminated:(ZZLorg/reactivestreams/Subscriber;Lio/reactivex/internal/queue/SpscLinkedArrayQueue;)Z
ifeq 32
31: return
32: StackMap locals:
StackMap stack:
lload 6
lconst_0
lcmp
ifeq 34
lload 4
ldc 9223372036854775807
lcmp
ifeq 34
33: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.requested:Ljava/util/concurrent/atomic/AtomicLong;
lload 6
lneg
invokevirtual java.util.concurrent.atomic.AtomicLong.addAndGet:(J)J
pop2
34: StackMap locals:
StackMap stack:
aload 0
iload 3
ineg
invokevirtual io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.addAndGet:(I)I
istore 3
35: iload 3
ifne 3
end local 6 end local 4 36: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lio/reactivex/internal/operators/flowable/FlowableCombineLatest$CombineLatestCoordinator<TT;TR;>;
1 37 1 a Lorg/reactivestreams/Subscriber<-TR;>;
2 37 2 q Lio/reactivex/internal/queue/SpscLinkedArrayQueue<Ljava/lang/Object;>;
3 37 3 missed I
4 36 4 r J
5 36 6 e J
7 28 8 d Z
8 28 9 v Ljava/lang/Object;
11 28 10 empty Z
16 28 11 va [Ljava/lang/Object;
17 18 12 w TR;
25 28 12 w TR;
19 25 13 ex Ljava/lang/Throwable;
Exception table:
from to target type
16 17 18 Class java.lang.Throwable
void drain();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.getAndIncrement:()I
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.outputFused:Z
ifeq 5
3: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.drainOutput:()V
4: goto 6
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.drainAsync:()V
6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/reactivex/internal/operators/flowable/FlowableCombineLatest$CombineLatestCoordinator<TT;TR;>;
boolean checkTerminated(boolean, boolean, org.reactivestreams.Subscriber<?>, io.reactivex.internal.queue.SpscLinkedArrayQueue<?>);
descriptor: (ZZLorg/reactivestreams/Subscriber;Lio/reactivex/internal/queue/SpscLinkedArrayQueue;)Z
flags: (0x0000)
Code:
stack=2, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.cancelled:Z
ifeq 4
1: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.cancelAll:()V
2: aload 4
invokevirtual io.reactivex.internal.queue.SpscLinkedArrayQueue.clear:()V
3: iconst_1
ireturn
4: StackMap locals:
StackMap stack:
iload 1
ifeq 24
5: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.delayErrors:Z
ifeq 14
6: iload 2
ifeq 24
7: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.cancelAll:()V
8: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.error:Ljava/util/concurrent/atomic/AtomicReference;
invokestatic io.reactivex.internal.util.ExceptionHelper.terminate:(Ljava/util/concurrent/atomic/AtomicReference;)Ljava/lang/Throwable;
astore 5
start local 5 9: aload 5
ifnull 12
aload 5
getstatic io.reactivex.internal.util.ExceptionHelper.TERMINATED:Ljava/lang/Throwable;
if_acmpeq 12
10: aload 3
aload 5
invokeinterface org.reactivestreams.Subscriber.onError:(Ljava/lang/Throwable;)V
11: goto 13
12: StackMap locals: java.lang.Throwable
StackMap stack:
aload 3
invokeinterface org.reactivestreams.Subscriber.onComplete:()V
13: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 5 14: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.error:Ljava/util/concurrent/atomic/AtomicReference;
invokestatic io.reactivex.internal.util.ExceptionHelper.terminate:(Ljava/util/concurrent/atomic/AtomicReference;)Ljava/lang/Throwable;
astore 5
start local 5 15: aload 5
ifnull 20
aload 5
getstatic io.reactivex.internal.util.ExceptionHelper.TERMINATED:Ljava/lang/Throwable;
if_acmpeq 20
16: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.cancelAll:()V
17: aload 4
invokevirtual io.reactivex.internal.queue.SpscLinkedArrayQueue.clear:()V
18: aload 3
aload 5
invokeinterface org.reactivestreams.Subscriber.onError:(Ljava/lang/Throwable;)V
19: iconst_1
ireturn
20: StackMap locals: java.lang.Throwable
StackMap stack:
iload 2
ifeq 24
21: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.cancelAll:()V
22: aload 3
invokeinterface org.reactivestreams.Subscriber.onComplete:()V
23: iconst_1
ireturn
end local 5 24: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lio/reactivex/internal/operators/flowable/FlowableCombineLatest$CombineLatestCoordinator<TT;TR;>;
0 25 1 d Z
0 25 2 empty Z
0 25 3 a Lorg/reactivestreams/Subscriber<*>;
0 25 4 q Lio/reactivex/internal/queue/SpscLinkedArrayQueue<*>;
9 14 5 e Ljava/lang/Throwable;
15 24 5 e Ljava/lang/Throwable;
Signature: (ZZLorg/reactivestreams/Subscriber<*>;Lio/reactivex/internal/queue/SpscLinkedArrayQueue<*>;)Z
MethodParameters:
Name Flags
d
empty
a
q
void cancelAll();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.subscribers:[Lio/reactivex/internal/operators/flowable/FlowableCombineLatest$CombineLatestInnerSubscriber;
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 4
StackMap locals: io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator top int int io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestInnerSubscriber[]
StackMap stack:
1: aload 4
iload 2
aaload
astore 1
start local 1 2: aload 1
invokevirtual io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestInnerSubscriber.cancel:()V
end local 1 3: iinc 2 1
StackMap locals:
StackMap stack:
4: iload 2
iload 3
if_icmplt 1
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/reactivex/internal/operators/flowable/FlowableCombineLatest$CombineLatestCoordinator<TT;TR;>;
2 3 1 inner Lio/reactivex/internal/operators/flowable/FlowableCombineLatest$CombineLatestInnerSubscriber<TT;>;
public int requestFusion(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: iload 1
iconst_4
iand
ifeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
iload 1
iconst_2
iand
istore 2
start local 2 3: aload 0
iload 2
ifeq 4
iconst_1
goto 5
StackMap locals: io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator int int
StackMap stack: io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator
4: iconst_0
StackMap locals: io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator int int
StackMap stack: io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator int
5: putfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.outputFused:Z
6: iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/reactivex/internal/operators/flowable/FlowableCombineLatest$CombineLatestCoordinator<TT;TR;>;
0 7 1 requestedMode I
3 7 2 m I
MethodParameters:
Name Flags
requestedMode
public R poll();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.queue:Lio/reactivex/internal/queue/SpscLinkedArrayQueue;
invokevirtual io.reactivex.internal.queue.SpscLinkedArrayQueue.poll:()Ljava/lang/Object;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.queue:Lio/reactivex/internal/queue/SpscLinkedArrayQueue;
invokevirtual io.reactivex.internal.queue.SpscLinkedArrayQueue.poll:()Ljava/lang/Object;
checkcast java.lang.Object[]
astore 2
start local 2 4: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.combiner:Lio/reactivex/functions/Function;
aload 2
invokeinterface io.reactivex.functions.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
ldc "The combiner returned a null value"
invokestatic io.reactivex.internal.functions.ObjectHelper.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
astore 3
start local 3 5: aload 1
checkcast io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestInnerSubscriber
invokevirtual io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestInnerSubscriber.requestOne:()V
6: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/reactivex/internal/operators/flowable/FlowableCombineLatest$CombineLatestCoordinator<TT;TR;>;
1 7 1 e Ljava/lang/Object;
4 7 2 a [Ljava/lang/Object;
5 7 3 r TR;
Exceptions:
throws java.lang.Exception
Signature: ()TR;
RuntimeInvisibleAnnotations:
io.reactivex.annotations.Nullable()
public void clear();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.queue:Lio/reactivex/internal/queue/SpscLinkedArrayQueue;
invokevirtual io.reactivex.internal.queue.SpscLinkedArrayQueue.clear:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/reactivex/internal/operators/flowable/FlowableCombineLatest$CombineLatestCoordinator<TT;TR;>;
public boolean isEmpty();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator.queue:Lio/reactivex/internal/queue/SpscLinkedArrayQueue;
invokevirtual io.reactivex.internal.queue.SpscLinkedArrayQueue.isEmpty:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/reactivex/internal/operators/flowable/FlowableCombineLatest$CombineLatestCoordinator<TT;TR;>;
}
Signature: <T:Ljava/lang/Object;R:Ljava/lang/Object;>Lio/reactivex/internal/subscriptions/BasicIntQueueSubscription<TR;>;
SourceFile: "FlowableCombineLatest.java"
NestHost: io.reactivex.internal.operators.flowable.FlowableCombineLatest
InnerClasses:
final CombineLatestCoordinator = io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestCoordinator of io.reactivex.internal.operators.flowable.FlowableCombineLatest
final CombineLatestInnerSubscriber = io.reactivex.internal.operators.flowable.FlowableCombineLatest$CombineLatestInnerSubscriber of io.reactivex.internal.operators.flowable.FlowableCombineLatest