final class io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator<T, R> extends java.util.concurrent.atomic.AtomicInteger implements io.reactivex.disposables.Disposable
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator
super_class: java.util.concurrent.atomic.AtomicInteger
{
private static final long serialVersionUID;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2983708048395377667
final io.reactivex.Observer<? super R> downstream;
descriptor: Lio/reactivex/Observer;
flags: (0x0010) ACC_FINAL
Signature: Lio/reactivex/Observer<-TR;>;
final io.reactivex.functions.Function<? super java.lang.Object[], ? extends R> zipper;
descriptor: Lio/reactivex/functions/Function;
flags: (0x0010) ACC_FINAL
Signature: Lio/reactivex/functions/Function<-[Ljava/lang/Object;+TR;>;
final io.reactivex.internal.operators.observable.ObservableZip$ZipObserver<T, R>[] observers;
descriptor: [Lio/reactivex/internal/operators/observable/ObservableZip$ZipObserver;
flags: (0x0010) ACC_FINAL
Signature: [Lio/reactivex/internal/operators/observable/ObservableZip$ZipObserver<TT;TR;>;
final T[] row;
descriptor: [Ljava/lang/Object;
flags: (0x0010) ACC_FINAL
Signature: [TT;
final boolean delayError;
descriptor: Z
flags: (0x0010) ACC_FINAL
volatile boolean cancelled;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
void <init>(io.reactivex.Observer<? super R>, io.reactivex.functions.Function<? super java.lang.Object[], ? extends R>, int, );
descriptor: (Lio/reactivex/Observer;Lio/reactivex/functions/Function;IZ)V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:()V
1: aload 0
aload 1
putfield io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.downstream:Lio/reactivex/Observer;
2: aload 0
aload 2
putfield io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.zipper:Lio/reactivex/functions/Function;
3: aload 0
iload 3
anewarray io.reactivex.internal.operators.observable.ObservableZip$ZipObserver
putfield io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.observers:[Lio/reactivex/internal/operators/observable/ObservableZip$ZipObserver;
4: aload 0
iload 3
anewarray java.lang.Object
putfield io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.row:[Ljava/lang/Object;
5: aload 0
iload 4
putfield io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.delayError:Z
6: return
end local 4 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/observable/ObservableZip$ZipCoordinator<TT;TR;>;
0 7 1 actual Lio/reactivex/Observer<-TR;>;
0 7 2 zipper Lio/reactivex/functions/Function<-[Ljava/lang/Object;+TR;>;
0 7 3 count I
0 7 4 delayError Z
Signature: (Lio/reactivex/Observer<-TR;>;Lio/reactivex/functions/Function<-[Ljava/lang/Object;+TR;>;IZ)V
MethodParameters:
Name Flags
actual
zipper
count
delayError
public void subscribe(io.reactivex.ObservableSource<? extends T>[], );
descriptor: ([Lio/reactivex/ObservableSource;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.observers:[Lio/reactivex/internal/operators/observable/ObservableZip$ZipObserver;
astore 3
start local 3 1: aload 3
arraylength
istore 4
start local 4 2: iconst_0
istore 5
start local 5 3: goto 6
4: StackMap locals: io.reactivex.internal.operators.observable.ObservableZip$ZipObserver[] int int
StackMap stack:
aload 3
iload 5
new io.reactivex.internal.operators.observable.ObservableZip$ZipObserver
dup
aload 0
iload 2
invokespecial io.reactivex.internal.operators.observable.ObservableZip$ZipObserver.<init>:(Lio/reactivex/internal/operators/observable/ObservableZip$ZipCoordinator;I)V
aastore
5: iinc 5 1
StackMap locals:
StackMap stack:
6: iload 5
iload 4
if_icmplt 4
end local 5 7: aload 0
iconst_0
invokevirtual io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.lazySet:(I)V
8: aload 0
getfield io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.downstream:Lio/reactivex/Observer;
aload 0
invokeinterface io.reactivex.Observer.onSubscribe:(Lio/reactivex/disposables/Disposable;)V
9: iconst_0
istore 5
start local 5 10: goto 15
11: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.cancelled:Z
ifeq 13
12: return
13: StackMap locals:
StackMap stack:
aload 1
iload 5
aaload
aload 3
iload 5
aaload
invokeinterface io.reactivex.ObservableSource.subscribe:(Lio/reactivex/Observer;)V
14: iinc 5 1
StackMap locals:
StackMap stack:
15: iload 5
iload 4
if_icmplt 11
end local 5 16: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lio/reactivex/internal/operators/observable/ObservableZip$ZipCoordinator<TT;TR;>;
0 17 1 sources [Lio/reactivex/ObservableSource;
0 17 2 bufferSize I
1 17 3 s [Lio/reactivex/internal/operators/observable/ObservableZip$ZipObserver;
2 17 4 len I
3 7 5 i I
10 16 5 i I
Signature: ([Lio/reactivex/ObservableSource<+TT;>;I)V
MethodParameters:
Name Flags
sources
bufferSize
public void dispose();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.cancelled:Z
ifne 5
1: aload 0
iconst_1
putfield io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.cancelled:Z
2: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.cancelSources:()V
3: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.getAndIncrement:()I
ifne 5
4: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.clear:()V
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/reactivex/internal/operators/observable/ObservableZip$ZipCoordinator<TT;TR;>;
public boolean isDisposed();
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.observable.ObservableZip$ZipCoordinator.cancelled:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/reactivex/internal/operators/observable/ObservableZip$ZipCoordinator<TT;TR;>;
void cancel();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.clear:()V
1: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.cancelSources:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/reactivex/internal/operators/observable/ObservableZip$ZipCoordinator<TT;TR;>;
void cancelSources();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.observers:[Lio/reactivex/internal/operators/observable/ObservableZip$ZipObserver;
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 4
StackMap locals: io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator top int int io.reactivex.internal.operators.observable.ObservableZip$ZipObserver[]
StackMap stack:
1: aload 4
iload 2
aaload
astore 1
start local 1 2: aload 1
invokevirtual io.reactivex.internal.operators.observable.ObservableZip$ZipObserver.dispose:()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/observable/ObservableZip$ZipCoordinator<TT;TR;>;
2 3 1 zs Lio/reactivex/internal/operators/observable/ObservableZip$ZipObserver<**>;
void clear();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.observers:[Lio/reactivex/internal/operators/observable/ObservableZip$ZipObserver;
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 4
StackMap locals: io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator top int int io.reactivex.internal.operators.observable.ObservableZip$ZipObserver[]
StackMap stack:
1: aload 4
iload 2
aaload
astore 1
start local 1 2: aload 1
getfield io.reactivex.internal.operators.observable.ObservableZip$ZipObserver.queue:Lio/reactivex/internal/queue/SpscLinkedArrayQueue;
invokevirtual io.reactivex.internal.queue.SpscLinkedArrayQueue.clear:()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/observable/ObservableZip$ZipCoordinator<TT;TR;>;
2 3 1 zs Lio/reactivex/internal/operators/observable/ObservableZip$ZipObserver<**>;
public void drain();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=15, args_size=1
start local 0 0: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.getAndIncrement:()I
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
iconst_1
istore 1
start local 1 3: aload 0
getfield io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.observers:[Lio/reactivex/internal/operators/observable/ObservableZip$ZipObserver;
astore 2
start local 2 4: aload 0
getfield io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.downstream:Lio/reactivex/Observer;
astore 3
start local 3 5: aload 0
getfield io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.row:[Ljava/lang/Object;
astore 4
start local 4 6: aload 0
getfield io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.delayError:Z
istore 5
start local 5 7: StackMap locals: io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator int io.reactivex.internal.operators.observable.ObservableZip$ZipObserver[] io.reactivex.Observer java.lang.Object[] int
StackMap stack:
iconst_0
istore 6
start local 6 8: iconst_0
istore 7
start local 7 9: aload 2
dup
astore 11
arraylength
istore 10
iconst_0
istore 9
goto 33
StackMap locals: io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator int io.reactivex.internal.operators.observable.ObservableZip$ZipObserver[] io.reactivex.Observer java.lang.Object[] int int int top int int io.reactivex.internal.operators.observable.ObservableZip$ZipObserver[]
StackMap stack:
10: aload 11
iload 9
aaload
astore 8
start local 8 11: aload 4
iload 6
aaload
ifnonnull 24
12: aload 8
getfield io.reactivex.internal.operators.observable.ObservableZip$ZipObserver.done:Z
istore 12
start local 12 13: aload 8
getfield io.reactivex.internal.operators.observable.ObservableZip$ZipObserver.queue:Lio/reactivex/internal/queue/SpscLinkedArrayQueue;
invokevirtual io.reactivex.internal.queue.SpscLinkedArrayQueue.poll:()Ljava/lang/Object;
astore 13
start local 13 14: aload 13
ifnonnull 15
iconst_1
goto 16
StackMap locals: io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator int io.reactivex.internal.operators.observable.ObservableZip$ZipObserver[] io.reactivex.Observer java.lang.Object[] int int int io.reactivex.internal.operators.observable.ObservableZip$ZipObserver int int io.reactivex.internal.operators.observable.ObservableZip$ZipObserver[] int java.lang.Object
StackMap stack:
15: iconst_0
StackMap locals:
StackMap stack: int
16: istore 14
start local 14 17: aload 0
iload 12
iload 14
aload 3
iload 5
aload 8
invokevirtual io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.checkTerminated:(ZZLio/reactivex/Observer;ZLio/reactivex/internal/operators/observable/ObservableZip$ZipObserver;)Z
ifeq 19
18: return
19: StackMap locals: int
StackMap stack:
iload 14
ifne 22
20: aload 4
iload 6
aload 13
aastore
21: goto 31
22: StackMap locals:
StackMap stack:
iinc 7 1
end local 14 end local 13 end local 12 23: goto 31
24: StackMap locals:
StackMap stack:
aload 8
getfield io.reactivex.internal.operators.observable.ObservableZip$ZipObserver.done:Z
ifeq 31
iload 5
ifne 31
25: aload 8
getfield io.reactivex.internal.operators.observable.ObservableZip$ZipObserver.error:Ljava/lang/Throwable;
astore 12
start local 12 26: aload 12
ifnull 31
27: aload 0
iconst_1
putfield io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.cancelled:Z
28: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.cancel:()V
29: aload 3
aload 12
invokeinterface io.reactivex.Observer.onError:(Ljava/lang/Throwable;)V
30: return
end local 12 31: StackMap locals:
StackMap stack:
iinc 6 1
end local 8 32: iinc 9 1
StackMap locals: io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator int io.reactivex.internal.operators.observable.ObservableZip$ZipObserver[] io.reactivex.Observer java.lang.Object[] int int int top int int io.reactivex.internal.operators.observable.ObservableZip$ZipObserver[]
StackMap stack:
33: iload 9
iload 10
if_icmplt 10
34: iload 7
ifeq 36
35: goto 46
36: StackMap locals: io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator int io.reactivex.internal.operators.observable.ObservableZip$ZipObserver[] io.reactivex.Observer java.lang.Object[] int int int
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.zipper:Lio/reactivex/functions/Function;
aload 4
invokevirtual java.lang.Object[].clone:()Ljava/lang/Object;
checkcast java.lang.Object
invokeinterface io.reactivex.functions.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
ldc "The zipper returned a null value"
invokestatic io.reactivex.internal.functions.ObjectHelper.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
astore 8
start local 8 37: goto 43
end local 8 StackMap locals:
StackMap stack: java.lang.Throwable
38: astore 9
start local 9 39: aload 9
invokestatic io.reactivex.exceptions.Exceptions.throwIfFatal:(Ljava/lang/Throwable;)V
40: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.cancel:()V
41: aload 3
aload 9
invokeinterface io.reactivex.Observer.onError:(Ljava/lang/Throwable;)V
42: return
end local 9 start local 8 43: StackMap locals: java.lang.Object
StackMap stack:
aload 3
aload 8
invokeinterface io.reactivex.Observer.onNext:(Ljava/lang/Object;)V
44: aload 4
aconst_null
invokestatic java.util.Arrays.fill:([Ljava/lang/Object;Ljava/lang/Object;)V
end local 8 end local 7 end local 6 45: goto 7
46: StackMap locals:
StackMap stack:
aload 0
iload 1
ineg
invokevirtual io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.addAndGet:(I)I
istore 1
47: iload 1
ifne 7
48: 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 49 0 this Lio/reactivex/internal/operators/observable/ObservableZip$ZipCoordinator<TT;TR;>;
3 49 1 missing I
4 49 2 zs [Lio/reactivex/internal/operators/observable/ObservableZip$ZipObserver;
5 49 3 a Lio/reactivex/Observer<-TR;>;
6 49 4 os [Ljava/lang/Object;
7 49 5 delayError Z
8 45 6 i I
9 45 7 emptyCount I
11 32 8 z Lio/reactivex/internal/operators/observable/ObservableZip$ZipObserver<TT;TR;>;
13 23 12 d Z
14 23 13 v TT;
17 23 14 empty Z
26 31 12 ex Ljava/lang/Throwable;
37 38 8 v TR;
43 45 8 v TR;
39 43 9 ex Ljava/lang/Throwable;
Exception table:
from to target type
36 37 38 Class java.lang.Throwable
boolean checkTerminated(boolean, boolean, io.reactivex.Observer<? super R>, boolean, io.reactivex.internal.operators.observable.ObservableZip$ZipObserver<?, ?>);
descriptor: (ZZLio/reactivex/Observer;ZLio/reactivex/internal/operators/observable/ObservableZip$ZipObserver;)Z
flags: (0x0000)
Code:
stack=2, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
getfield io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.cancelled:Z
ifeq 3
1: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.cancel:()V
2: iconst_1
ireturn
3: StackMap locals:
StackMap stack:
iload 1
ifeq 25
4: iload 4
ifeq 14
5: iload 2
ifeq 25
6: aload 5
getfield io.reactivex.internal.operators.observable.ObservableZip$ZipObserver.error:Ljava/lang/Throwable;
astore 6
start local 6 7: aload 0
iconst_1
putfield io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.cancelled:Z
8: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.cancel:()V
9: aload 6
ifnull 12
10: aload 3
aload 6
invokeinterface io.reactivex.Observer.onError:(Ljava/lang/Throwable;)V
11: goto 13
12: StackMap locals: java.lang.Throwable
StackMap stack:
aload 3
invokeinterface io.reactivex.Observer.onComplete:()V
13: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 6 14: StackMap locals:
StackMap stack:
aload 5
getfield io.reactivex.internal.operators.observable.ObservableZip$ZipObserver.error:Ljava/lang/Throwable;
astore 6
start local 6 15: aload 6
ifnull 20
16: aload 0
iconst_1
putfield io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.cancelled:Z
17: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.cancel:()V
18: aload 3
aload 6
invokeinterface io.reactivex.Observer.onError:(Ljava/lang/Throwable;)V
19: iconst_1
ireturn
20: StackMap locals: java.lang.Throwable
StackMap stack:
iload 2
ifeq 25
21: aload 0
iconst_1
putfield io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.cancelled:Z
22: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.cancel:()V
23: aload 3
invokeinterface io.reactivex.Observer.onComplete:()V
24: iconst_1
ireturn
end local 6 25: StackMap locals:
StackMap stack:
iconst_0
ireturn
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 26 0 this Lio/reactivex/internal/operators/observable/ObservableZip$ZipCoordinator<TT;TR;>;
0 26 1 d Z
0 26 2 empty Z
0 26 3 a Lio/reactivex/Observer<-TR;>;
0 26 4 delayError Z
0 26 5 source Lio/reactivex/internal/operators/observable/ObservableZip$ZipObserver<**>;
7 14 6 e Ljava/lang/Throwable;
15 25 6 e Ljava/lang/Throwable;
Signature: (ZZLio/reactivex/Observer<-TR;>;ZLio/reactivex/internal/operators/observable/ObservableZip$ZipObserver<**>;)Z
MethodParameters:
Name Flags
d
empty
a
delayError
source
}
Signature: <T:Ljava/lang/Object;R:Ljava/lang/Object;>Ljava/util/concurrent/atomic/AtomicInteger;Lio/reactivex/disposables/Disposable;
SourceFile: "ObservableZip.java"
NestHost: io.reactivex.internal.operators.observable.ObservableZip
InnerClasses:
final ZipCoordinator = io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator of io.reactivex.internal.operators.observable.ObservableZip
final ZipObserver = io.reactivex.internal.operators.observable.ObservableZip$ZipObserver of io.reactivex.internal.operators.observable.ObservableZip