final class io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver<T, U> extends java.util.concurrent.atomic.AtomicInteger implements io.reactivex.Observer<T>, io.reactivex.disposables.Disposable
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver
super_class: java.util.concurrent.atomic.AtomicInteger
{
private static final long serialVersionUID;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8828587559905699186
final io.reactivex.Observer<? super U> downstream;
descriptor: Lio/reactivex/Observer;
flags: (0x0010) ACC_FINAL
Signature: Lio/reactivex/Observer<-TU;>;
final io.reactivex.functions.Function<? super T, ? extends io.reactivex.ObservableSource<? extends U>> mapper;
descriptor: Lio/reactivex/functions/Function;
flags: (0x0010) ACC_FINAL
Signature: Lio/reactivex/functions/Function<-TT;+Lio/reactivex/ObservableSource<+TU;>;>;
final io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver$InnerObserver<U> inner;
descriptor: Lio/reactivex/internal/operators/observable/ObservableConcatMap$SourceObserver$InnerObserver;
flags: (0x0010) ACC_FINAL
Signature: Lio/reactivex/internal/operators/observable/ObservableConcatMap$SourceObserver$InnerObserver<TU;>;
final int bufferSize;
descriptor: I
flags: (0x0010) ACC_FINAL
io.reactivex.internal.fuseable.SimpleQueue<T> queue;
descriptor: Lio/reactivex/internal/fuseable/SimpleQueue;
flags: (0x0000)
Signature: Lio/reactivex/internal/fuseable/SimpleQueue<TT;>;
io.reactivex.disposables.Disposable upstream;
descriptor: Lio/reactivex/disposables/Disposable;
flags: (0x0000)
volatile boolean active;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
volatile boolean disposed;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
volatile boolean done;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
int fusionMode;
descriptor: I
flags: (0x0000)
void <init>(io.reactivex.Observer<? super U>, io.reactivex.functions.Function<? super T, ? extends io.reactivex.ObservableSource<? extends U>>, );
descriptor: (Lio/reactivex/Observer;Lio/reactivex/functions/Function;I)V
flags: (0x0000)
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:()V
1: aload 0
aload 1
putfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.downstream:Lio/reactivex/Observer;
2: aload 0
aload 2
putfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.mapper:Lio/reactivex/functions/Function;
3: aload 0
iload 3
putfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.bufferSize:I
4: aload 0
new io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver$InnerObserver
dup
aload 1
aload 0
invokespecial io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver$InnerObserver.<init>:(Lio/reactivex/Observer;Lio/reactivex/internal/operators/observable/ObservableConcatMap$SourceObserver;)V
putfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.inner:Lio/reactivex/internal/operators/observable/ObservableConcatMap$SourceObserver$InnerObserver;
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/reactivex/internal/operators/observable/ObservableConcatMap$SourceObserver<TT;TU;>;
0 6 1 actual Lio/reactivex/Observer<-TU;>;
0 6 2 mapper Lio/reactivex/functions/Function<-TT;+Lio/reactivex/ObservableSource<+TU;>;>;
0 6 3 bufferSize I
Signature: (Lio/reactivex/Observer<-TU;>;Lio/reactivex/functions/Function<-TT;+Lio/reactivex/ObservableSource<+TU;>;>;I)V
MethodParameters:
Name Flags
actual
mapper
bufferSize
public void onSubscribe(io.reactivex.disposables.Disposable);
descriptor: (Lio/reactivex/disposables/Disposable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.upstream:Lio/reactivex/disposables/Disposable;
aload 1
invokestatic io.reactivex.internal.disposables.DisposableHelper.validate:(Lio/reactivex/disposables/Disposable;Lio/reactivex/disposables/Disposable;)Z
ifeq 19
1: aload 0
aload 1
putfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.upstream:Lio/reactivex/disposables/Disposable;
2: aload 1
instanceof io.reactivex.internal.fuseable.QueueDisposable
ifeq 17
3: aload 1
checkcast io.reactivex.internal.fuseable.QueueDisposable
astore 2
start local 2 4: aload 2
iconst_3
invokeinterface io.reactivex.internal.fuseable.QueueDisposable.requestFusion:(I)I
istore 3
start local 3 5: iload 3
iconst_1
if_icmpne 12
6: aload 0
iload 3
putfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.fusionMode:I
7: aload 0
aload 2
putfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.queue:Lio/reactivex/internal/fuseable/SimpleQueue;
8: aload 0
iconst_1
putfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.done:Z
9: aload 0
getfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.downstream:Lio/reactivex/Observer;
aload 0
invokeinterface io.reactivex.Observer.onSubscribe:(Lio/reactivex/disposables/Disposable;)V
10: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.drain:()V
11: return
12: StackMap locals: io.reactivex.internal.fuseable.QueueDisposable int
StackMap stack:
iload 3
iconst_2
if_icmpne 17
13: aload 0
iload 3
putfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.fusionMode:I
14: aload 0
aload 2
putfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.queue:Lio/reactivex/internal/fuseable/SimpleQueue;
15: aload 0
getfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.downstream:Lio/reactivex/Observer;
aload 0
invokeinterface io.reactivex.Observer.onSubscribe:(Lio/reactivex/disposables/Disposable;)V
16: return
end local 3 end local 2 17: StackMap locals:
StackMap stack:
aload 0
new io.reactivex.internal.queue.SpscLinkedArrayQueue
dup
aload 0
getfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.bufferSize:I
invokespecial io.reactivex.internal.queue.SpscLinkedArrayQueue.<init>:(I)V
putfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.queue:Lio/reactivex/internal/fuseable/SimpleQueue;
18: aload 0
getfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.downstream:Lio/reactivex/Observer;
aload 0
invokeinterface io.reactivex.Observer.onSubscribe:(Lio/reactivex/disposables/Disposable;)V
19: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lio/reactivex/internal/operators/observable/ObservableConcatMap$SourceObserver<TT;TU;>;
0 20 1 d Lio/reactivex/disposables/Disposable;
4 17 2 qd Lio/reactivex/internal/fuseable/QueueDisposable<TT;>;
5 17 3 m I
MethodParameters:
Name Flags
d
public void onNext();
descriptor: (Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.done:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.fusionMode:I
ifne 4
3: aload 0
getfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.queue:Lio/reactivex/internal/fuseable/SimpleQueue;
aload 1
invokeinterface io.reactivex.internal.fuseable.SimpleQueue.offer:(Ljava/lang/Object;)Z
pop
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.drain:()V
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/reactivex/internal/operators/observable/ObservableConcatMap$SourceObserver<TT;TU;>;
0 6 1 t TT;
Signature: (TT;)V
MethodParameters:
Name Flags
t
public void onError(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.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
iconst_1
putfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.done:Z
4: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.dispose:()V
5: aload 0
getfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.downstream:Lio/reactivex/Observer;
aload 1
invokeinterface io.reactivex.Observer.onError:(Ljava/lang/Throwable;)V
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/reactivex/internal/operators/observable/ObservableConcatMap$SourceObserver<TT;TU;>;
0 7 1 t Ljava/lang/Throwable;
MethodParameters:
Name Flags
t
public void onComplete();
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.ObservableConcatMap$SourceObserver.done:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.done:Z
3: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.drain:()V
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/reactivex/internal/operators/observable/ObservableConcatMap$SourceObserver<TT;TU;>;
void innerComplete();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
putfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.active:Z
1: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.drain:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/reactivex/internal/operators/observable/ObservableConcatMap$SourceObserver<TT;TU;>;
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.ObservableConcatMap$SourceObserver.disposed:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/reactivex/internal/operators/observable/ObservableConcatMap$SourceObserver<TT;TU;>;
public void dispose();
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.observable.ObservableConcatMap$SourceObserver.disposed:Z
1: aload 0
getfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.inner:Lio/reactivex/internal/operators/observable/ObservableConcatMap$SourceObserver$InnerObserver;
invokevirtual io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver$InnerObserver.dispose:()V
2: aload 0
getfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.upstream:Lio/reactivex/disposables/Disposable;
invokeinterface io.reactivex.disposables.Disposable.dispose:()V
3: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.getAndIncrement:()I
ifne 5
4: aload 0
getfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.queue:Lio/reactivex/internal/fuseable/SimpleQueue;
invokeinterface io.reactivex.internal.fuseable.SimpleQueue.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/ObservableConcatMap$SourceObserver<TT;TU;>;
void drain();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=6, args_size=1
start local 0 0: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.getAndIncrement:()I
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.disposed:Z
ifeq 5
3: aload 0
getfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.queue:Lio/reactivex/internal/fuseable/SimpleQueue;
invokeinterface io.reactivex.internal.fuseable.SimpleQueue.clear:()V
4: return
5: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.active:Z
ifne 33
6: aload 0
getfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.done:Z
istore 1
start local 1 7: aload 0
getfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.queue:Lio/reactivex/internal/fuseable/SimpleQueue;
invokeinterface io.reactivex.internal.fuseable.SimpleQueue.poll:()Ljava/lang/Object;
astore 2
start local 2 8: goto 15
end local 2 StackMap locals: io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver int
StackMap stack: java.lang.Throwable
9: astore 3
start local 3 10: aload 3
invokestatic io.reactivex.exceptions.Exceptions.throwIfFatal:(Ljava/lang/Throwable;)V
11: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.dispose:()V
12: aload 0
getfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.queue:Lio/reactivex/internal/fuseable/SimpleQueue;
invokeinterface io.reactivex.internal.fuseable.SimpleQueue.clear:()V
13: aload 0
getfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.downstream:Lio/reactivex/Observer;
aload 3
invokeinterface io.reactivex.Observer.onError:(Ljava/lang/Throwable;)V
14: return
end local 3 start local 2 15: StackMap locals: java.lang.Object
StackMap stack:
aload 2
ifnonnull 16
iconst_1
goto 17
StackMap locals:
StackMap stack:
16: iconst_0
StackMap locals:
StackMap stack: int
17: istore 3
start local 3 18: iload 1
ifeq 22
iload 3
ifeq 22
19: aload 0
iconst_1
putfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.disposed:Z
20: aload 0
getfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.downstream:Lio/reactivex/Observer;
invokeinterface io.reactivex.Observer.onComplete:()V
21: return
22: StackMap locals: int
StackMap stack:
iload 3
ifne 33
23: aload 0
getfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.mapper:Lio/reactivex/functions/Function;
aload 2
invokeinterface io.reactivex.functions.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast io.reactivex.ObservableSource
ldc "The mapper returned a null ObservableSource"
invokestatic io.reactivex.internal.functions.ObjectHelper.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
checkcast io.reactivex.ObservableSource
astore 4
start local 4 24: goto 31
end local 4 StackMap locals:
StackMap stack: java.lang.Throwable
25: astore 5
start local 5 26: aload 5
invokestatic io.reactivex.exceptions.Exceptions.throwIfFatal:(Ljava/lang/Throwable;)V
27: aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.dispose:()V
28: aload 0
getfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.queue:Lio/reactivex/internal/fuseable/SimpleQueue;
invokeinterface io.reactivex.internal.fuseable.SimpleQueue.clear:()V
29: aload 0
getfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.downstream:Lio/reactivex/Observer;
aload 5
invokeinterface io.reactivex.Observer.onError:(Ljava/lang/Throwable;)V
30: return
end local 5 start local 4 31: StackMap locals: io.reactivex.ObservableSource
StackMap stack:
aload 0
iconst_1
putfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.active:Z
32: aload 4
aload 0
getfield io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.inner:Lio/reactivex/internal/operators/observable/ObservableConcatMap$SourceObserver$InnerObserver;
invokeinterface io.reactivex.ObservableSource.subscribe:(Lio/reactivex/Observer;)V
end local 4 end local 3 end local 2 end local 1 33: StackMap locals: io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver
StackMap stack:
aload 0
invokevirtual io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver.decrementAndGet:()I
ifne 2
34: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lio/reactivex/internal/operators/observable/ObservableConcatMap$SourceObserver<TT;TU;>;
7 33 1 d Z
8 9 2 t TT;
15 33 2 t TT;
10 15 3 ex Ljava/lang/Throwable;
18 33 3 empty Z
24 25 4 o Lio/reactivex/ObservableSource<+TU;>;
31 33 4 o Lio/reactivex/ObservableSource<+TU;>;
26 31 5 ex Ljava/lang/Throwable;
Exception table:
from to target type
7 8 9 Class java.lang.Throwable
23 24 25 Class java.lang.Throwable
}
Signature: <T:Ljava/lang/Object;U:Ljava/lang/Object;>Ljava/util/concurrent/atomic/AtomicInteger;Lio/reactivex/Observer<TT;>;Lio/reactivex/disposables/Disposable;
SourceFile: "ObservableConcatMap.java"
NestHost: io.reactivex.internal.operators.observable.ObservableConcatMap
InnerClasses:
final SourceObserver = io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver of io.reactivex.internal.operators.observable.ObservableConcatMap
final InnerObserver = io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver$InnerObserver of io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver