public final class io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber<T, K, V> extends io.reactivex.internal.subscriptions.BasicIntQueueSubscription<io.reactivex.flowables.GroupedFlowable<K, V>> implements io.reactivex.FlowableSubscriber<T>
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber
super_class: io.reactivex.internal.subscriptions.BasicIntQueueSubscription
{
private static final long serialVersionUID;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -3688291656102519502
final org.reactivestreams.Subscriber<? super io.reactivex.flowables.GroupedFlowable<K, V>> downstream;
descriptor: Lorg/reactivestreams/Subscriber;
flags: (0x0010) ACC_FINAL
Signature: Lorg/reactivestreams/Subscriber<-Lio/reactivex/flowables/GroupedFlowable<TK;TV;>;>;
final io.reactivex.functions.Function<? super T, ? extends K> keySelector;
descriptor: Lio/reactivex/functions/Function;
flags: (0x0010) ACC_FINAL
Signature: Lio/reactivex/functions/Function<-TT;+TK;>;
final io.reactivex.functions.Function<? super T, ? extends V> valueSelector;
descriptor: Lio/reactivex/functions/Function;
flags: (0x0010) ACC_FINAL
Signature: Lio/reactivex/functions/Function<-TT;+TV;>;
final int bufferSize;
descriptor: I
flags: (0x0010) ACC_FINAL
final boolean delayError;
descriptor: Z
flags: (0x0010) ACC_FINAL
final java.util.Map<java.lang.Object, io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupedUnicast<K, V>> groups;
descriptor: Ljava/util/Map;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Object;Lio/reactivex/internal/operators/flowable/FlowableGroupBy$GroupedUnicast<TK;TV;>;>;
final io.reactivex.internal.queue.SpscLinkedArrayQueue<io.reactivex.flowables.GroupedFlowable<K, V>> queue;
descriptor: Lio/reactivex/internal/queue/SpscLinkedArrayQueue;
flags: (0x0010) ACC_FINAL
Signature: Lio/reactivex/internal/queue/SpscLinkedArrayQueue<Lio/reactivex/flowables/GroupedFlowable<TK;TV;>;>;
final java.util.Queue<io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupedUnicast<K, V>> evictedGroups;
descriptor: Ljava/util/Queue;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Queue<Lio/reactivex/internal/operators/flowable/FlowableGroupBy$GroupedUnicast<TK;TV;>;>;
static final java.lang.Object NULL_KEY;
descriptor: Ljava/lang/Object;
flags: (0x0018) ACC_STATIC, ACC_FINAL
org.reactivestreams.Subscription upstream;
descriptor: Lorg/reactivestreams/Subscription;
flags: (0x0000)
final java.util.concurrent.atomic.AtomicBoolean cancelled;
descriptor: Ljava/util/concurrent/atomic/AtomicBoolean;
flags: (0x0010) ACC_FINAL
final java.util.concurrent.atomic.AtomicLong requested;
descriptor: Ljava/util/concurrent/atomic/AtomicLong;
flags: (0x0010) ACC_FINAL
final java.util.concurrent.atomic.AtomicInteger groupCount;
descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
flags: (0x0010) ACC_FINAL
java.lang.Throwable error;
descriptor: Ljava/lang/Throwable;
flags: (0x0000)
volatile boolean finished;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
boolean done;
descriptor: Z
flags: (0x0000)
boolean outputFused;
descriptor: Z
flags: (0x0000)
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putstatic io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.NULL_KEY:Ljava/lang/Object;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.reactivestreams.Subscriber<? super io.reactivex.flowables.GroupedFlowable<K, V>>, io.reactivex.functions.Function<? super T, ? extends K>, io.reactivex.functions.Function<? super T, ? extends V>, int, boolean, java.util.Map<java.lang.Object, io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupedUnicast<K, V>>, java.util.Queue<io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupedUnicast<K, V>>);
descriptor: (Lorg/reactivestreams/Subscriber;Lio/reactivex/functions/Function;Lio/reactivex/functions/Function;IZLjava/util/Map;Ljava/util/Queue;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=8, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
invokespecial io.reactivex.internal.subscriptions.BasicIntQueueSubscription.<init>:()V
1: aload 0
new java.util.concurrent.atomic.AtomicBoolean
dup
invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:()V
putfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.cancelled:Ljava/util/concurrent/atomic/AtomicBoolean;
2: aload 0
new java.util.concurrent.atomic.AtomicLong
dup
invokespecial java.util.concurrent.atomic.AtomicLong.<init>:()V
putfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.requested:Ljava/util/concurrent/atomic/AtomicLong;
3: aload 0
new java.util.concurrent.atomic.AtomicInteger
dup
iconst_1
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
putfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.groupCount:Ljava/util/concurrent/atomic/AtomicInteger;
4: aload 0
aload 1
putfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.downstream:Lorg/reactivestreams/Subscriber;
5: aload 0
aload 2
putfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.keySelector:Lio/reactivex/functions/Function;
6: aload 0
aload 3
putfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.valueSelector:Lio/reactivex/functions/Function;
7: aload 0
iload 4
putfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.bufferSize:I
8: aload 0
iload 5
putfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.delayError:Z
9: aload 0
aload 6
putfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.groups:Ljava/util/Map;
10: aload 0
aload 7
putfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.evictedGroups:Ljava/util/Queue;
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.FlowableGroupBy$GroupBySubscriber.queue:Lio/reactivex/internal/queue/SpscLinkedArrayQueue;
12: return
end local 7 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 13 0 this Lio/reactivex/internal/operators/flowable/FlowableGroupBy$GroupBySubscriber<TT;TK;TV;>;
0 13 1 actual Lorg/reactivestreams/Subscriber<-Lio/reactivex/flowables/GroupedFlowable<TK;TV;>;>;
0 13 2 keySelector Lio/reactivex/functions/Function<-TT;+TK;>;
0 13 3 valueSelector Lio/reactivex/functions/Function<-TT;+TV;>;
0 13 4 bufferSize I
0 13 5 delayError Z
0 13 6 groups Ljava/util/Map<Ljava/lang/Object;Lio/reactivex/internal/operators/flowable/FlowableGroupBy$GroupedUnicast<TK;TV;>;>;
0 13 7 evictedGroups Ljava/util/Queue<Lio/reactivex/internal/operators/flowable/FlowableGroupBy$GroupedUnicast<TK;TV;>;>;
Signature: (Lorg/reactivestreams/Subscriber<-Lio/reactivex/flowables/GroupedFlowable<TK;TV;>;>;Lio/reactivex/functions/Function<-TT;+TK;>;Lio/reactivex/functions/Function<-TT;+TV;>;IZLjava/util/Map<Ljava/lang/Object;Lio/reactivex/internal/operators/flowable/FlowableGroupBy$GroupedUnicast<TK;TV;>;>;Ljava/util/Queue<Lio/reactivex/internal/operators/flowable/FlowableGroupBy$GroupedUnicast<TK;TV;>;>;)V
MethodParameters:
Name Flags
actual
keySelector
valueSelector
bufferSize
delayError
groups
evictedGroups
public void onSubscribe(org.reactivestreams.Subscription);
descriptor: (Lorg/reactivestreams/Subscription;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.upstream:Lorg/reactivestreams/Subscription;
aload 1
invokestatic io.reactivex.internal.subscriptions.SubscriptionHelper.validate:(Lorg/reactivestreams/Subscription;Lorg/reactivestreams/Subscription;)Z
ifeq 4
1: aload 0
aload 1
putfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.upstream:Lorg/reactivestreams/Subscription;
2: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.downstream:Lorg/reactivestreams/Subscriber;
aload 0
invokeinterface org.reactivestreams.Subscriber.onSubscribe:(Lorg/reactivestreams/Subscription;)V
3: aload 1
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.bufferSize:I
i2l
invokeinterface org.reactivestreams.Subscription.request:(J)V
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/reactivex/internal/operators/flowable/FlowableGroupBy$GroupBySubscriber<TT;TK;TV;>;
0 5 1 s Lorg/reactivestreams/Subscription;
MethodParameters:
Name Flags
s
public void onNext();
descriptor: (Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=9, args_size=2
start local 0 start local 1 0: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.done:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.queue:Lio/reactivex/internal/queue/SpscLinkedArrayQueue;
astore 2
start local 2 3: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.keySelector:Lio/reactivex/functions/Function;
aload 1
invokeinterface io.reactivex.functions.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 4: goto 10
end local 3 StackMap locals: io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber java.lang.Object io.reactivex.internal.queue.SpscLinkedArrayQueue
StackMap stack: java.lang.Throwable
5: astore 4
start local 4 6: aload 4
invokestatic io.reactivex.exceptions.Exceptions.throwIfFatal:(Ljava/lang/Throwable;)V
7: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.upstream:Lorg/reactivestreams/Subscription;
invokeinterface org.reactivestreams.Subscription.cancel:()V
8: aload 0
aload 4
invokevirtual io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.onError:(Ljava/lang/Throwable;)V
9: return
end local 4 start local 3 10: StackMap locals: java.lang.Object
StackMap stack:
iconst_0
istore 4
start local 4 11: aload 3
ifnull 12
aload 3
goto 13
StackMap locals: int
StackMap stack:
12: getstatic io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.NULL_KEY:Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object
13: astore 5
start local 5 14: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.groups:Ljava/util/Map;
aload 5
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupedUnicast
astore 6
start local 6 15: aload 6
ifnonnull 22
16: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.cancelled:Ljava/util/concurrent/atomic/AtomicBoolean;
invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
ifeq 18
17: return
18: StackMap locals: java.lang.Object io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupedUnicast
StackMap stack:
aload 3
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.bufferSize:I
aload 0
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.delayError:Z
invokestatic io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupedUnicast.createWith:(Ljava/lang/Object;ILio/reactivex/internal/operators/flowable/FlowableGroupBy$GroupBySubscriber;Z)Lio/reactivex/internal/operators/flowable/FlowableGroupBy$GroupedUnicast;
astore 6
19: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.groups:Ljava/util/Map;
aload 5
aload 6
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
20: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.groupCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.getAndIncrement:()I
pop
21: iconst_1
istore 4
22: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.valueSelector:Lio/reactivex/functions/Function;
aload 1
invokeinterface io.reactivex.functions.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
ldc "The valueSelector returned null"
invokestatic io.reactivex.internal.functions.ObjectHelper.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
astore 7
start local 7 23: goto 29
end local 7 StackMap locals:
StackMap stack: java.lang.Throwable
24: astore 8
start local 8 25: aload 8
invokestatic io.reactivex.exceptions.Exceptions.throwIfFatal:(Ljava/lang/Throwable;)V
26: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.upstream:Lorg/reactivestreams/Subscription;
invokeinterface org.reactivestreams.Subscription.cancel:()V
27: aload 0
aload 8
invokevirtual io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.onError:(Ljava/lang/Throwable;)V
28: return
end local 8 start local 7 29: StackMap locals: java.lang.Object
StackMap stack:
aload 6
aload 7
invokevirtual io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupedUnicast.onNext:(Ljava/lang/Object;)V
30: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.completeEvictions:()V
31: iload 4
ifeq 34
32: aload 2
aload 6
invokevirtual io.reactivex.internal.queue.SpscLinkedArrayQueue.offer:(Ljava/lang/Object;)Z
pop
33: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.drain:()V
34: StackMap locals:
StackMap stack:
return
end local 7 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 35 0 this Lio/reactivex/internal/operators/flowable/FlowableGroupBy$GroupBySubscriber<TT;TK;TV;>;
0 35 1 t TT;
3 35 2 q Lio/reactivex/internal/queue/SpscLinkedArrayQueue<Lio/reactivex/flowables/GroupedFlowable<TK;TV;>;>;
4 5 3 key TK;
10 35 3 key TK;
6 10 4 ex Ljava/lang/Throwable;
11 35 4 newGroup Z
14 35 5 mapKey Ljava/lang/Object;
15 35 6 group Lio/reactivex/internal/operators/flowable/FlowableGroupBy$GroupedUnicast<TK;TV;>;
23 24 7 v TV;
29 35 7 v TV;
25 29 8 ex Ljava/lang/Throwable;
Exception table:
from to target type
3 4 5 Class java.lang.Throwable
22 23 24 Class java.lang.Throwable
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=4, args_size=2
start local 0 start local 1 0: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.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.flowable.FlowableGroupBy$GroupBySubscriber.done:Z
4: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.groups:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 7
StackMap locals: io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber java.lang.Throwable top java.util.Iterator
StackMap stack:
5: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupedUnicast
astore 2
start local 2 6: aload 2
aload 1
invokevirtual io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupedUnicast.onError:(Ljava/lang/Throwable;)V
end local 2 7: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
8: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.groups:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
9: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.evictedGroups:Ljava/util/Queue;
ifnull 11
10: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.evictedGroups:Ljava/util/Queue;
invokeinterface java.util.Queue.clear:()V
11: StackMap locals: io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber java.lang.Throwable
StackMap stack:
aload 0
aload 1
putfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.error:Ljava/lang/Throwable;
12: aload 0
iconst_1
putfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.finished:Z
13: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.drain:()V
14: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lio/reactivex/internal/operators/flowable/FlowableGroupBy$GroupBySubscriber<TT;TK;TV;>;
0 15 1 t Ljava/lang/Throwable;
6 7 2 g Lio/reactivex/internal/operators/flowable/FlowableGroupBy$GroupedUnicast<TK;TV;>;
MethodParameters:
Name Flags
t
public void onComplete();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.done:Z
ifne 11
1: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.groups:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 2
goto 4
StackMap locals: io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber top java.util.Iterator
StackMap stack:
2: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupedUnicast
astore 1
start local 1 3: aload 1
invokevirtual io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupedUnicast.onComplete:()V
end local 1 4: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.groups:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
6: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.evictedGroups:Ljava/util/Queue;
ifnull 8
7: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.evictedGroups:Ljava/util/Queue;
invokeinterface java.util.Queue.clear:()V
8: StackMap locals: io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber
StackMap stack:
aload 0
iconst_1
putfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.done:Z
9: aload 0
iconst_1
putfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.finished:Z
10: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.drain:()V
11: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lio/reactivex/internal/operators/flowable/FlowableGroupBy$GroupBySubscriber<TT;TK;TV;>;
3 4 1 g Lio/reactivex/internal/operators/flowable/FlowableGroupBy$GroupedUnicast<TK;TV;>;
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.FlowableGroupBy$GroupBySubscriber.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.FlowableGroupBy$GroupBySubscriber.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/FlowableGroupBy$GroupBySubscriber<TT;TK;TV;>;
0 4 1 n J
MethodParameters:
Name Flags
n
public void cancel();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.cancelled:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
ifeq 4
1: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.completeEvictions:()V
2: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.groupCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
ifne 4
3: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.upstream:Lorg/reactivestreams/Subscription;
invokeinterface org.reactivestreams.Subscription.cancel:()V
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/reactivex/internal/operators/flowable/FlowableGroupBy$GroupBySubscriber<TT;TK;TV;>;
private void completeEvictions();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.evictedGroups:Ljava/util/Queue;
ifnull 9
1: iconst_0
istore 1
start local 1 2: goto 5
start local 2 3: StackMap locals: int io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupedUnicast
StackMap stack:
aload 2
invokevirtual io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupedUnicast.onComplete:()V
4: iinc 1 1
end local 2 5: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.evictedGroups:Ljava/util/Queue;
invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
checkcast io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupedUnicast
dup
astore 2
start local 2 6: ifnonnull 3
7: iload 1
ifeq 9
8: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.groupCount:Ljava/util/concurrent/atomic/AtomicInteger;
iload 1
ineg
invokevirtual java.util.concurrent.atomic.AtomicInteger.addAndGet:(I)I
pop
end local 2 end local 1 9: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lio/reactivex/internal/operators/flowable/FlowableGroupBy$GroupBySubscriber<TT;TK;TV;>;
2 9 1 count I
3 5 2 evictedGroup Lio/reactivex/internal/operators/flowable/FlowableGroupBy$GroupedUnicast<TK;TV;>;
6 9 2 evictedGroup Lio/reactivex/internal/operators/flowable/FlowableGroupBy$GroupedUnicast<TK;TV;>;
public void cancel();
descriptor: (Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnull 1
aload 1
goto 2
StackMap locals:
StackMap stack:
1: getstatic io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.NULL_KEY:Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object
2: astore 2
start local 2 3: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.groups:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
4: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.groupCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
ifne 8
5: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.upstream:Lorg/reactivestreams/Subscription;
invokeinterface org.reactivestreams.Subscription.cancel:()V
6: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.getAndIncrement:()I
ifne 8
7: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.queue:Lio/reactivex/internal/queue/SpscLinkedArrayQueue;
invokevirtual io.reactivex.internal.queue.SpscLinkedArrayQueue.clear:()V
8: StackMap locals: java.lang.Object
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/reactivex/internal/operators/flowable/FlowableGroupBy$GroupBySubscriber<TT;TK;TV;>;
0 9 1 key TK;
3 9 2 mapKey Ljava/lang/Object;
Signature: (TK;)V
MethodParameters:
Name Flags
key
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.FlowableGroupBy$GroupBySubscriber.getAndIncrement:()I
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.outputFused:Z
ifeq 5
3: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.drainFused:()V
4: goto 6
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.drainNormal:()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/FlowableGroupBy$GroupBySubscriber<TT;TK;TV;>;
void drainFused();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=6, args_size=1
start local 0 0: iconst_1
istore 1
start local 1 1: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.queue:Lio/reactivex/internal/queue/SpscLinkedArrayQueue;
astore 2
start local 2 2: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.downstream:Lorg/reactivestreams/Subscriber;
astore 3
start local 3 3: StackMap locals: int io.reactivex.internal.queue.SpscLinkedArrayQueue org.reactivestreams.Subscriber
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.cancelled:Ljava/util/concurrent/atomic/AtomicBoolean;
invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()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.FlowableGroupBy$GroupBySubscriber.finished:Z
istore 4
start local 4 7: iload 4
ifeq 13
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.delayError:Z
ifne 13
8: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.error:Ljava/lang/Throwable;
astore 5
start local 5 9: aload 5
ifnull 13
10: aload 2
invokevirtual io.reactivex.internal.queue.SpscLinkedArrayQueue.clear:()V
11: aload 3
aload 5
invokeinterface org.reactivestreams.Subscriber.onError:(Ljava/lang/Throwable;)V
12: return
end local 5 13: StackMap locals: int
StackMap stack:
aload 3
aconst_null
invokeinterface org.reactivestreams.Subscriber.onNext:(Ljava/lang/Object;)V
14: iload 4
ifeq 21
15: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.error:Ljava/lang/Throwable;
astore 5
start local 5 16: aload 5
ifnull 19
17: aload 3
aload 5
invokeinterface org.reactivestreams.Subscriber.onError:(Ljava/lang/Throwable;)V
18: goto 20
19: StackMap locals: java.lang.Throwable
StackMap stack:
aload 3
invokeinterface org.reactivestreams.Subscriber.onComplete:()V
20: StackMap locals:
StackMap stack:
return
end local 5 21: StackMap locals:
StackMap stack:
aload 0
iload 1
ineg
invokevirtual io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.addAndGet:(I)I
istore 1
22: iload 1
ifne 3
23: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lio/reactivex/internal/operators/flowable/FlowableGroupBy$GroupBySubscriber<TT;TK;TV;>;
1 24 1 missed I
2 24 2 q Lio/reactivex/internal/queue/SpscLinkedArrayQueue<Lio/reactivex/flowables/GroupedFlowable<TK;TV;>;>;
3 24 3 a Lorg/reactivestreams/Subscriber<-Lio/reactivex/flowables/GroupedFlowable<TK;TV;>;>;
7 24 4 d Z
9 13 5 ex Ljava/lang/Throwable;
16 21 5 ex Ljava/lang/Throwable;
void drainNormal();
descriptor: ()V
flags: (0x0000)
Code:
stack=5, locals=11, args_size=1
start local 0 0: iconst_1
istore 1
start local 1 1: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.queue:Lio/reactivex/internal/queue/SpscLinkedArrayQueue;
astore 2
start local 2 2: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.downstream:Lorg/reactivestreams/Subscriber;
astore 3
start local 3 3: StackMap locals: int io.reactivex.internal.queue.SpscLinkedArrayQueue org.reactivestreams.Subscriber
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.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 17
6: StackMap locals: long long
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.finished:Z
istore 8
start local 8 7: aload 2
invokevirtual io.reactivex.internal.queue.SpscLinkedArrayQueue.poll:()Ljava/lang/Object;
checkcast io.reactivex.flowables.GroupedFlowable
astore 9
start local 9 8: aload 9
ifnonnull 9
iconst_1
goto 10
StackMap locals: int io.reactivex.flowables.GroupedFlowable
StackMap stack:
9: iconst_0
StackMap locals:
StackMap stack: int
10: istore 10
start local 10 11: aload 0
iload 8
iload 10
aload 3
aload 2
invokevirtual io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.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 18
15: StackMap locals:
StackMap stack:
aload 3
aload 9
invokeinterface org.reactivestreams.Subscriber.onNext:(Ljava/lang/Object;)V
16: lload 6
lconst_1
ladd
lstore 6
end local 10 end local 9 end local 8 17: StackMap locals:
StackMap stack:
lload 6
lload 4
lcmp
ifne 6
18: StackMap locals:
StackMap stack:
lload 6
lload 4
lcmp
ifne 20
aload 0
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.finished:Z
aload 2
invokevirtual io.reactivex.internal.queue.SpscLinkedArrayQueue.isEmpty:()Z
aload 3
aload 2
invokevirtual io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.checkTerminated:(ZZLorg/reactivestreams/Subscriber;Lio/reactivex/internal/queue/SpscLinkedArrayQueue;)Z
ifeq 20
19: return
20: StackMap locals:
StackMap stack:
lload 6
lconst_0
lcmp
ifeq 24
21: lload 4
ldc 9223372036854775807
lcmp
ifeq 23
22: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.requested:Ljava/util/concurrent/atomic/AtomicLong;
lload 6
lneg
invokevirtual java.util.concurrent.atomic.AtomicLong.addAndGet:(J)J
pop2
23: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.upstream:Lorg/reactivestreams/Subscription;
lload 6
invokeinterface org.reactivestreams.Subscription.request:(J)V
24: StackMap locals:
StackMap stack:
aload 0
iload 1
ineg
invokevirtual io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.addAndGet:(I)I
istore 1
25: iload 1
ifne 3
end local 6 end local 4 26: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lio/reactivex/internal/operators/flowable/FlowableGroupBy$GroupBySubscriber<TT;TK;TV;>;
1 27 1 missed I
2 27 2 q Lio/reactivex/internal/queue/SpscLinkedArrayQueue<Lio/reactivex/flowables/GroupedFlowable<TK;TV;>;>;
3 27 3 a Lorg/reactivestreams/Subscriber<-Lio/reactivex/flowables/GroupedFlowable<TK;TV;>;>;
4 26 4 r J
5 26 6 e J
7 17 8 d Z
8 17 9 t Lio/reactivex/flowables/GroupedFlowable<TK;TV;>;
11 17 10 empty Z
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.FlowableGroupBy$GroupBySubscriber.cancelled:Ljava/util/concurrent/atomic/AtomicBoolean;
invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
ifeq 3
1: aload 4
invokevirtual io.reactivex.internal.queue.SpscLinkedArrayQueue.clear:()V
2: iconst_1
ireturn
3: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.delayError:Z
ifeq 11
4: iload 1
ifeq 20
iload 2
ifeq 20
5: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.error:Ljava/lang/Throwable;
astore 5
start local 5 6: aload 5
ifnull 9
7: aload 3
aload 5
invokeinterface org.reactivestreams.Subscriber.onError:(Ljava/lang/Throwable;)V
8: goto 10
9: StackMap locals: java.lang.Throwable
StackMap stack:
aload 3
invokeinterface org.reactivestreams.Subscriber.onComplete:()V
10: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 5 11: StackMap locals:
StackMap stack:
iload 1
ifeq 20
12: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.error:Ljava/lang/Throwable;
astore 5
start local 5 13: aload 5
ifnull 17
14: aload 4
invokevirtual io.reactivex.internal.queue.SpscLinkedArrayQueue.clear:()V
15: aload 3
aload 5
invokeinterface org.reactivestreams.Subscriber.onError:(Ljava/lang/Throwable;)V
16: iconst_1
ireturn
17: StackMap locals: java.lang.Throwable
StackMap stack:
iload 2
ifeq 20
18: aload 3
invokeinterface org.reactivestreams.Subscriber.onComplete:()V
19: iconst_1
ireturn
end local 5 20: 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 21 0 this Lio/reactivex/internal/operators/flowable/FlowableGroupBy$GroupBySubscriber<TT;TK;TV;>;
0 21 1 d Z
0 21 2 empty Z
0 21 3 a Lorg/reactivestreams/Subscriber<*>;
0 21 4 q Lio/reactivex/internal/queue/SpscLinkedArrayQueue<*>;
6 11 5 ex Ljava/lang/Throwable;
13 20 5 ex Ljava/lang/Throwable;
Signature: (ZZLorg/reactivestreams/Subscriber<*>;Lio/reactivex/internal/queue/SpscLinkedArrayQueue<*>;)Z
MethodParameters:
Name Flags
d
empty
a
q
public int requestFusion(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
iconst_2
iand
ifeq 3
1: aload 0
iconst_1
putfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.outputFused:Z
2: iconst_2
ireturn
3: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/reactivex/internal/operators/flowable/FlowableGroupBy$GroupBySubscriber<TT;TK;TV;>;
0 4 1 mode I
MethodParameters:
Name Flags
mode
public io.reactivex.flowables.GroupedFlowable<K, V> poll();
descriptor: ()Lio/reactivex/flowables/GroupedFlowable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.queue:Lio/reactivex/internal/queue/SpscLinkedArrayQueue;
invokevirtual io.reactivex.internal.queue.SpscLinkedArrayQueue.poll:()Ljava/lang/Object;
checkcast io.reactivex.flowables.GroupedFlowable
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/reactivex/internal/operators/flowable/FlowableGroupBy$GroupBySubscriber<TT;TK;TV;>;
Signature: ()Lio/reactivex/flowables/GroupedFlowable<TK;TV;>;
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.FlowableGroupBy$GroupBySubscriber.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/FlowableGroupBy$GroupBySubscriber<TT;TK;TV;>;
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.FlowableGroupBy$GroupBySubscriber.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/FlowableGroupBy$GroupBySubscriber<TT;TK;TV;>;
public java.lang.Object poll();
descriptor: ()Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber.poll:()Lio/reactivex/flowables/GroupedFlowable;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
}
Signature: <T:Ljava/lang/Object;K:Ljava/lang/Object;V:Ljava/lang/Object;>Lio/reactivex/internal/subscriptions/BasicIntQueueSubscription<Lio/reactivex/flowables/GroupedFlowable<TK;TV;>;>;Lio/reactivex/FlowableSubscriber<TT;>;
SourceFile: "FlowableGroupBy.java"
NestHost: io.reactivex.internal.operators.flowable.FlowableGroupBy
InnerClasses:
public final GroupBySubscriber = io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupBySubscriber of io.reactivex.internal.operators.flowable.FlowableGroupBy
final GroupedUnicast = io.reactivex.internal.operators.flowable.FlowableGroupBy$GroupedUnicast of io.reactivex.internal.operators.flowable.FlowableGroupBy