final class io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver<T> extends java.util.concurrent.atomic.AtomicInteger implements io.reactivex.FlowableSubscriber<T>, org.reactivestreams.Subscription
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver
super_class: java.util.concurrent.atomic.AtomicInteger
{
private static final long serialVersionUID;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -4592979584110982903
final org.reactivestreams.Subscriber<? super T> downstream;
descriptor: Lorg/reactivestreams/Subscriber;
flags: (0x0010) ACC_FINAL
Signature: Lorg/reactivestreams/Subscriber<-TT;>;
final java.util.concurrent.atomic.AtomicReference<org.reactivestreams.Subscription> mainSubscription;
descriptor: Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReference<Lorg/reactivestreams/Subscription;>;
final io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver$OtherObserver<T> otherObserver;
descriptor: Lio/reactivex/internal/operators/flowable/FlowableMergeWithSingle$MergeWithObserver$OtherObserver;
flags: (0x0010) ACC_FINAL
Signature: Lio/reactivex/internal/operators/flowable/FlowableMergeWithSingle$MergeWithObserver$OtherObserver<TT;>;
final io.reactivex.internal.util.AtomicThrowable error;
descriptor: Lio/reactivex/internal/util/AtomicThrowable;
flags: (0x0010) ACC_FINAL
final java.util.concurrent.atomic.AtomicLong requested;
descriptor: Ljava/util/concurrent/atomic/AtomicLong;
flags: (0x0010) ACC_FINAL
final int prefetch;
descriptor: I
flags: (0x0010) ACC_FINAL
final int limit;
descriptor: I
flags: (0x0010) ACC_FINAL
volatile io.reactivex.internal.fuseable.SimplePlainQueue<T> queue;
descriptor: Lio/reactivex/internal/fuseable/SimplePlainQueue;
flags: (0x0040) ACC_VOLATILE
Signature: Lio/reactivex/internal/fuseable/SimplePlainQueue<TT;>;
T singleItem;
descriptor: Ljava/lang/Object;
flags: (0x0000)
Signature: TT;
volatile boolean cancelled;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
volatile boolean mainDone;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
volatile int otherState;
descriptor: I
flags: (0x0040) ACC_VOLATILE
long emitted;
descriptor: J
flags: (0x0000)
int consumed;
descriptor: I
flags: (0x0000)
static final int OTHER_STATE_HAS_VALUE;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1
static final int OTHER_STATE_CONSUMED_OR_EMPTY;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 2
void <init>(org.reactivestreams.Subscriber<? super T>);
descriptor: (Lorg/reactivestreams/Subscriber;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:()V
1: aload 0
aload 1
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.downstream:Lorg/reactivestreams/Subscriber;
2: aload 0
new java.util.concurrent.atomic.AtomicReference
dup
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.mainSubscription:Ljava/util/concurrent/atomic/AtomicReference;
3: aload 0
new io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver$OtherObserver
dup
aload 0
invokespecial io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver$OtherObserver.<init>:(Lio/reactivex/internal/operators/flowable/FlowableMergeWithSingle$MergeWithObserver;)V
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.otherObserver:Lio/reactivex/internal/operators/flowable/FlowableMergeWithSingle$MergeWithObserver$OtherObserver;
4: aload 0
new io.reactivex.internal.util.AtomicThrowable
dup
invokespecial io.reactivex.internal.util.AtomicThrowable.<init>:()V
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.error:Lio/reactivex/internal/util/AtomicThrowable;
5: aload 0
new java.util.concurrent.atomic.AtomicLong
dup
invokespecial java.util.concurrent.atomic.AtomicLong.<init>:()V
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.requested:Ljava/util/concurrent/atomic/AtomicLong;
6: aload 0
invokestatic io.reactivex.internal.operators.flowable.FlowableMergeWithSingle.bufferSize:()I
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.prefetch:I
7: aload 0
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.prefetch:I
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.prefetch:I
iconst_2
ishr
isub
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.limit:I
8: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/reactivex/internal/operators/flowable/FlowableMergeWithSingle$MergeWithObserver<TT;>;
0 9 1 downstream Lorg/reactivestreams/Subscriber<-TT;>;
Signature: (Lorg/reactivestreams/Subscriber<-TT;>;)V
MethodParameters:
Name Flags
downstream
public void onSubscribe(org.reactivestreams.Subscription);
descriptor: (Lorg/reactivestreams/Subscription;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.mainSubscription:Ljava/util/concurrent/atomic/AtomicReference;
aload 1
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.prefetch:I
i2l
invokestatic io.reactivex.internal.subscriptions.SubscriptionHelper.setOnce:(Ljava/util/concurrent/atomic/AtomicReference;Lorg/reactivestreams/Subscription;J)Z
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/reactivex/internal/operators/flowable/FlowableMergeWithSingle$MergeWithObserver<TT;>;
0 2 1 s Lorg/reactivestreams/Subscription;
MethodParameters:
Name Flags
s
public void onNext();
descriptor: (Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 0
iconst_0
iconst_1
invokevirtual io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.compareAndSet:(II)Z
ifeq 20
1: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.emitted:J
lstore 2
start local 2 2: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.requested:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lload 2
lcmp
ifeq 16
3: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.queue:Lio/reactivex/internal/fuseable/SimplePlainQueue;
astore 4
start local 4 4: aload 4
ifnull 5
aload 4
invokeinterface io.reactivex.internal.fuseable.SimplePlainQueue.isEmpty:()Z
ifeq 14
5: StackMap locals: long io.reactivex.internal.fuseable.SimplePlainQueue
StackMap stack:
aload 0
lload 2
lconst_1
ladd
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.emitted:J
6: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.downstream:Lorg/reactivestreams/Subscriber;
aload 1
invokeinterface org.reactivestreams.Subscriber.onNext:(Ljava/lang/Object;)V
7: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.consumed:I
iconst_1
iadd
istore 5
start local 5 8: iload 5
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.limit:I
if_icmpne 12
9: aload 0
iconst_0
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.consumed:I
10: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.mainSubscription:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast org.reactivestreams.Subscription
iload 5
i2l
invokeinterface org.reactivestreams.Subscription.request:(J)V
11: goto 18
12: StackMap locals: int
StackMap stack:
aload 0
iload 5
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.consumed:I
end local 5 13: goto 18
14: StackMap locals:
StackMap stack:
aload 4
aload 1
invokeinterface io.reactivex.internal.fuseable.SimplePlainQueue.offer:(Ljava/lang/Object;)Z
pop
end local 4 15: goto 18
16: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.getOrCreateQueue:()Lio/reactivex/internal/fuseable/SimplePlainQueue;
astore 4
start local 4 17: aload 4
aload 1
invokeinterface io.reactivex.internal.fuseable.SimplePlainQueue.offer:(Ljava/lang/Object;)Z
pop
end local 4 18: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.decrementAndGet:()I
ifne 24
19: return
end local 2 20: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.getOrCreateQueue:()Lio/reactivex/internal/fuseable/SimplePlainQueue;
astore 2
start local 2 21: aload 2
aload 1
invokeinterface io.reactivex.internal.fuseable.SimplePlainQueue.offer:(Ljava/lang/Object;)Z
pop
22: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.getAndIncrement:()I
ifeq 24
23: return
end local 2 24: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.drainLoop:()V
25: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lio/reactivex/internal/operators/flowable/FlowableMergeWithSingle$MergeWithObserver<TT;>;
0 26 1 t TT;
2 20 2 e J
4 15 4 q Lio/reactivex/internal/fuseable/SimplePlainQueue<TT;>;
8 13 5 c I
17 18 4 q Lio/reactivex/internal/fuseable/SimplePlainQueue<TT;>;
21 24 2 q Lio/reactivex/internal/fuseable/SimplePlainQueue<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.flowable.FlowableMergeWithSingle$MergeWithObserver.error:Lio/reactivex/internal/util/AtomicThrowable;
aload 1
invokevirtual io.reactivex.internal.util.AtomicThrowable.addThrowable:(Ljava/lang/Throwable;)Z
ifeq 4
1: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.otherObserver:Lio/reactivex/internal/operators/flowable/FlowableMergeWithSingle$MergeWithObserver$OtherObserver;
invokestatic io.reactivex.internal.disposables.DisposableHelper.dispose:(Ljava/util/concurrent/atomic/AtomicReference;)Z
pop
2: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.drain:()V
3: goto 5
4: StackMap locals:
StackMap stack:
aload 1
invokestatic io.reactivex.plugins.RxJavaPlugins.onError:(Ljava/lang/Throwable;)V
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/reactivex/internal/operators/flowable/FlowableMergeWithSingle$MergeWithObserver<TT;>;
0 6 1 ex Ljava/lang/Throwable;
MethodParameters:
Name Flags
ex
public void onComplete();
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.FlowableMergeWithSingle$MergeWithObserver.mainDone:Z
1: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.drain:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/reactivex/internal/operators/flowable/FlowableMergeWithSingle$MergeWithObserver<TT;>;
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: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.requested:Ljava/util/concurrent/atomic/AtomicLong;
lload 1
invokestatic io.reactivex.internal.util.BackpressureHelper.add:(Ljava/util/concurrent/atomic/AtomicLong;J)J
pop2
1: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.drain:()V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/reactivex/internal/operators/flowable/FlowableMergeWithSingle$MergeWithObserver<TT;>;
0 3 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.FlowableMergeWithSingle$MergeWithObserver.cancelled:Z
1: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.mainSubscription:Ljava/util/concurrent/atomic/AtomicReference;
invokestatic io.reactivex.internal.subscriptions.SubscriptionHelper.cancel:(Ljava/util/concurrent/atomic/AtomicReference;)Z
pop
2: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.otherObserver:Lio/reactivex/internal/operators/flowable/FlowableMergeWithSingle$MergeWithObserver$OtherObserver;
invokestatic io.reactivex.internal.disposables.DisposableHelper.dispose:(Ljava/util/concurrent/atomic/AtomicReference;)Z
pop
3: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.getAndIncrement:()I
ifne 6
4: aload 0
aconst_null
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.queue:Lio/reactivex/internal/fuseable/SimplePlainQueue;
5: aload 0
aconst_null
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.singleItem:Ljava/lang/Object;
6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/reactivex/internal/operators/flowable/FlowableMergeWithSingle$MergeWithObserver<TT;>;
void otherSuccess();
descriptor: (Ljava/lang/Object;)V
flags: (0x0000)
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
iconst_0
iconst_1
invokevirtual io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.compareAndSet:(II)Z
ifeq 11
1: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.emitted:J
lstore 2
start local 2 2: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.requested:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lload 2
lcmp
ifeq 7
3: aload 0
lload 2
lconst_1
ladd
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.emitted:J
4: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.downstream:Lorg/reactivestreams/Subscriber;
aload 1
invokeinterface org.reactivestreams.Subscriber.onNext:(Ljava/lang/Object;)V
5: aload 0
iconst_2
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.otherState:I
6: goto 15
7: StackMap locals: long
StackMap stack:
aload 0
aload 1
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.singleItem:Ljava/lang/Object;
8: aload 0
iconst_1
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.otherState:I
9: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.decrementAndGet:()I
ifne 15
10: return
end local 2 11: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.singleItem:Ljava/lang/Object;
12: aload 0
iconst_1
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.otherState:I
13: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.getAndIncrement:()I
ifeq 15
14: return
15: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.drainLoop:()V
16: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lio/reactivex/internal/operators/flowable/FlowableMergeWithSingle$MergeWithObserver<TT;>;
0 17 1 value TT;
2 11 2 e J
Signature: (TT;)V
MethodParameters:
Name Flags
value
void otherError(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.error:Lio/reactivex/internal/util/AtomicThrowable;
aload 1
invokevirtual io.reactivex.internal.util.AtomicThrowable.addThrowable:(Ljava/lang/Throwable;)Z
ifeq 4
1: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.mainSubscription:Ljava/util/concurrent/atomic/AtomicReference;
invokestatic io.reactivex.internal.subscriptions.SubscriptionHelper.cancel:(Ljava/util/concurrent/atomic/AtomicReference;)Z
pop
2: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.drain:()V
3: goto 5
4: StackMap locals:
StackMap stack:
aload 1
invokestatic io.reactivex.plugins.RxJavaPlugins.onError:(Ljava/lang/Throwable;)V
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/reactivex/internal/operators/flowable/FlowableMergeWithSingle$MergeWithObserver<TT;>;
0 6 1 ex Ljava/lang/Throwable;
MethodParameters:
Name Flags
ex
io.reactivex.internal.fuseable.SimplePlainQueue<T> getOrCreateQueue();
descriptor: ()Lio/reactivex/internal/fuseable/SimplePlainQueue;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.queue:Lio/reactivex/internal/fuseable/SimplePlainQueue;
astore 1
start local 1 1: aload 1
ifnonnull 4
2: new io.reactivex.internal.queue.SpscArrayQueue
dup
invokestatic io.reactivex.internal.operators.flowable.FlowableMergeWithSingle.bufferSize:()I
invokespecial io.reactivex.internal.queue.SpscArrayQueue.<init>:(I)V
astore 1
3: aload 0
aload 1
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.queue:Lio/reactivex/internal/fuseable/SimplePlainQueue;
4: StackMap locals: io.reactivex.internal.fuseable.SimplePlainQueue
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/reactivex/internal/operators/flowable/FlowableMergeWithSingle$MergeWithObserver<TT;>;
1 5 1 q Lio/reactivex/internal/fuseable/SimplePlainQueue<TT;>;
Signature: ()Lio/reactivex/internal/fuseable/SimplePlainQueue<TT;>;
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.FlowableMergeWithSingle$MergeWithObserver.getAndIncrement:()I
ifne 2
1: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.drainLoop:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/reactivex/internal/operators/flowable/FlowableMergeWithSingle$MergeWithObserver<TT;>;
void drainLoop();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=14, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.downstream:Lorg/reactivestreams/Subscriber;
astore 1
start local 1 1: iconst_1
istore 2
start local 2 2: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.emitted:J
lstore 3
start local 3 3: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.consumed:I
istore 5
start local 5 4: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.limit:I
istore 6
start local 6 5: StackMap locals: io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver org.reactivestreams.Subscriber int long int int
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.requested:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lstore 7
start local 7 6: goto 44
7: StackMap locals: long
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.cancelled:Z
ifeq 11
8: aload 0
aconst_null
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.singleItem:Ljava/lang/Object;
9: aload 0
aconst_null
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.queue:Lio/reactivex/internal/fuseable/SimplePlainQueue;
10: return
11: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.error:Lio/reactivex/internal/util/AtomicThrowable;
invokevirtual io.reactivex.internal.util.AtomicThrowable.get:()Ljava/lang/Object;
ifnull 16
12: aload 0
aconst_null
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.singleItem:Ljava/lang/Object;
13: aload 0
aconst_null
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.queue:Lio/reactivex/internal/fuseable/SimplePlainQueue;
14: aload 1
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.error:Lio/reactivex/internal/util/AtomicThrowable;
invokevirtual io.reactivex.internal.util.AtomicThrowable.terminate:()Ljava/lang/Throwable;
invokeinterface org.reactivestreams.Subscriber.onError:(Ljava/lang/Throwable;)V
15: return
16: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.otherState:I
istore 9
start local 9 17: iload 9
iconst_1
if_icmpne 25
18: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.singleItem:Ljava/lang/Object;
astore 10
start local 10 19: aload 0
aconst_null
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.singleItem:Ljava/lang/Object;
20: aload 0
iconst_2
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.otherState:I
21: iconst_2
istore 9
22: aload 1
aload 10
invokeinterface org.reactivestreams.Subscriber.onNext:(Ljava/lang/Object;)V
23: lload 3
lconst_1
ladd
lstore 3
24: goto 44
end local 10 25: StackMap locals: int
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.mainDone:Z
istore 10
start local 10 26: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.queue:Lio/reactivex/internal/fuseable/SimplePlainQueue;
astore 11
start local 11 27: aload 11
ifnull 28
aload 11
invokeinterface io.reactivex.internal.fuseable.SimplePlainQueue.poll:()Ljava/lang/Object;
goto 29
StackMap locals: int io.reactivex.internal.fuseable.SimplePlainQueue
StackMap stack:
28: aconst_null
StackMap locals:
StackMap stack: java.lang.Object
29: astore 12
start local 12 30: aload 12
ifnonnull 31
iconst_1
goto 32
StackMap locals: java.lang.Object
StackMap stack:
31: iconst_0
StackMap locals:
StackMap stack: int
32: istore 13
start local 13 33: iload 10
ifeq 37
iload 13
ifeq 37
iload 9
iconst_2
if_icmpne 37
34: aload 0
aconst_null
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.queue:Lio/reactivex/internal/fuseable/SimplePlainQueue;
35: aload 1
invokeinterface org.reactivestreams.Subscriber.onComplete:()V
36: return
37: StackMap locals: int
StackMap stack:
iload 13
ifeq 39
38: goto 45
39: StackMap locals:
StackMap stack:
aload 1
aload 12
invokeinterface org.reactivestreams.Subscriber.onNext:(Ljava/lang/Object;)V
40: lload 3
lconst_1
ladd
lstore 3
41: iinc 5 1
iload 5
iload 6
if_icmpne 44
42: iconst_0
istore 5
43: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.mainSubscription:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast org.reactivestreams.Subscription
iload 6
i2l
invokeinterface org.reactivestreams.Subscription.request:(J)V
end local 13 end local 12 end local 11 end local 10 end local 9 44: StackMap locals: io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver org.reactivestreams.Subscriber int long int int long
StackMap stack:
lload 3
lload 7
lcmp
ifne 7
45: StackMap locals:
StackMap stack:
lload 3
lload 7
lcmp
ifne 64
46: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.cancelled:Z
ifeq 50
47: aload 0
aconst_null
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.singleItem:Ljava/lang/Object;
48: aload 0
aconst_null
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.queue:Lio/reactivex/internal/fuseable/SimplePlainQueue;
49: return
50: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.error:Lio/reactivex/internal/util/AtomicThrowable;
invokevirtual io.reactivex.internal.util.AtomicThrowable.get:()Ljava/lang/Object;
ifnull 55
51: aload 0
aconst_null
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.singleItem:Ljava/lang/Object;
52: aload 0
aconst_null
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.queue:Lio/reactivex/internal/fuseable/SimplePlainQueue;
53: aload 1
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.error:Lio/reactivex/internal/util/AtomicThrowable;
invokevirtual io.reactivex.internal.util.AtomicThrowable.terminate:()Ljava/lang/Throwable;
invokeinterface org.reactivestreams.Subscriber.onError:(Ljava/lang/Throwable;)V
54: return
55: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.mainDone:Z
istore 9
start local 9 56: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.queue:Lio/reactivex/internal/fuseable/SimplePlainQueue;
astore 10
start local 10 57: aload 10
ifnull 58
aload 10
invokeinterface io.reactivex.internal.fuseable.SimplePlainQueue.isEmpty:()Z
ifne 58
iconst_0
goto 59
StackMap locals: int io.reactivex.internal.fuseable.SimplePlainQueue
StackMap stack:
58: iconst_1
StackMap locals:
StackMap stack: int
59: istore 11
start local 11 60: iload 9
ifeq 64
iload 11
ifeq 64
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.otherState:I
iconst_2
if_icmpne 64
61: aload 0
aconst_null
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.queue:Lio/reactivex/internal/fuseable/SimplePlainQueue;
62: aload 1
invokeinterface org.reactivestreams.Subscriber.onComplete:()V
63: return
end local 11 end local 10 end local 9 64: StackMap locals:
StackMap stack:
aload 0
lload 3
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.emitted:J
65: aload 0
iload 5
putfield io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.consumed:I
66: aload 0
iload 2
ineg
invokevirtual io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver.addAndGet:(I)I
istore 2
67: iload 2
ifne 5
end local 7 68: return
end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 69 0 this Lio/reactivex/internal/operators/flowable/FlowableMergeWithSingle$MergeWithObserver<TT;>;
1 69 1 actual Lorg/reactivestreams/Subscriber<-TT;>;
2 69 2 missed I
3 69 3 e J
4 69 5 c I
5 69 6 lim I
6 68 7 r J
17 44 9 os I
19 25 10 v TT;
26 44 10 d Z
27 44 11 q Lio/reactivex/internal/fuseable/SimplePlainQueue<TT;>;
30 44 12 v TT;
33 44 13 empty Z
56 64 9 d Z
57 64 10 q Lio/reactivex/internal/fuseable/SimplePlainQueue<TT;>;
60 64 11 empty Z
}
Signature: <T:Ljava/lang/Object;>Ljava/util/concurrent/atomic/AtomicInteger;Lio/reactivex/FlowableSubscriber<TT;>;Lorg/reactivestreams/Subscription;
SourceFile: "FlowableMergeWithSingle.java"
NestHost: io.reactivex.internal.operators.flowable.FlowableMergeWithSingle
InnerClasses:
final MergeWithObserver = io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver of io.reactivex.internal.operators.flowable.FlowableMergeWithSingle
final OtherObserver = io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver$OtherObserver of io.reactivex.internal.operators.flowable.FlowableMergeWithSingle$MergeWithObserver