final class io.reactivex.internal.operators.flowable.FlowablePublish$FlowablePublisher<T> implements org.reactivestreams.Publisher<T>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.reactivex.internal.operators.flowable.FlowablePublish$FlowablePublisher
super_class: java.lang.Object
{
private final java.util.concurrent.atomic.AtomicReference<io.reactivex.internal.operators.flowable.FlowablePublish$PublishSubscriber<T>> curr;
descriptor: Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReference<Lio/reactivex/internal/operators/flowable/FlowablePublish$PublishSubscriber<TT;>;>;
private final int bufferSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(java.util.concurrent.atomic.AtomicReference<io.reactivex.internal.operators.flowable.FlowablePublish$PublishSubscriber<T>>, );
descriptor: (Ljava/util/concurrent/atomic/AtomicReference;I)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield io.reactivex.internal.operators.flowable.FlowablePublish$FlowablePublisher.curr:Ljava/util/concurrent/atomic/AtomicReference;
2: aload 0
iload 2
putfield io.reactivex.internal.operators.flowable.FlowablePublish$FlowablePublisher.bufferSize:I
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/reactivex/internal/operators/flowable/FlowablePublish$FlowablePublisher<TT;>;
0 4 1 curr Ljava/util/concurrent/atomic/AtomicReference<Lio/reactivex/internal/operators/flowable/FlowablePublish$PublishSubscriber<TT;>;>;
0 4 2 bufferSize I
Signature: (Ljava/util/concurrent/atomic/AtomicReference<Lio/reactivex/internal/operators/flowable/FlowablePublish$PublishSubscriber<TT;>;>;I)V
MethodParameters:
Name Flags
curr
bufferSize
public void subscribe(org.reactivestreams.Subscriber<? super T>);
descriptor: (Lorg/reactivestreams/Subscriber;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: new io.reactivex.internal.operators.flowable.FlowablePublish$InnerSubscriber
dup
aload 1
invokespecial io.reactivex.internal.operators.flowable.FlowablePublish$InnerSubscriber.<init>:(Lorg/reactivestreams/Subscriber;)V
astore 2
start local 2 1: aload 1
aload 2
invokeinterface org.reactivestreams.Subscriber.onSubscribe:(Lorg/reactivestreams/Subscription;)V
2: StackMap locals: io.reactivex.internal.operators.flowable.FlowablePublish$InnerSubscriber
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowablePublish$FlowablePublisher.curr:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast io.reactivex.internal.operators.flowable.FlowablePublish$PublishSubscriber
astore 3
start local 3 3: aload 3
ifnull 4
aload 3
invokevirtual io.reactivex.internal.operators.flowable.FlowablePublish$PublishSubscriber.isDisposed:()Z
ifeq 8
4: StackMap locals: io.reactivex.internal.operators.flowable.FlowablePublish$PublishSubscriber
StackMap stack:
new io.reactivex.internal.operators.flowable.FlowablePublish$PublishSubscriber
dup
aload 0
getfield io.reactivex.internal.operators.flowable.FlowablePublish$FlowablePublisher.curr:Ljava/util/concurrent/atomic/AtomicReference;
aload 0
getfield io.reactivex.internal.operators.flowable.FlowablePublish$FlowablePublisher.bufferSize:I
invokespecial io.reactivex.internal.operators.flowable.FlowablePublish$PublishSubscriber.<init>:(Ljava/util/concurrent/atomic/AtomicReference;I)V
astore 4
start local 4 5: aload 0
getfield io.reactivex.internal.operators.flowable.FlowablePublish$FlowablePublisher.curr:Ljava/util/concurrent/atomic/AtomicReference;
aload 3
aload 4
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifne 7
6: goto 2
7: StackMap locals: io.reactivex.internal.operators.flowable.FlowablePublish$PublishSubscriber
StackMap stack:
aload 4
astore 3
end local 4 8: StackMap locals:
StackMap stack:
aload 3
aload 2
invokevirtual io.reactivex.internal.operators.flowable.FlowablePublish$PublishSubscriber.add:(Lio/reactivex/internal/operators/flowable/FlowablePublish$InnerSubscriber;)Z
ifeq 2
9: aload 2
invokevirtual io.reactivex.internal.operators.flowable.FlowablePublish$InnerSubscriber.get:()J
ldc -9223372036854775808
lcmp
ifne 12
10: aload 3
aload 2
invokevirtual io.reactivex.internal.operators.flowable.FlowablePublish$PublishSubscriber.remove:(Lio/reactivex/internal/operators/flowable/FlowablePublish$InnerSubscriber;)V
11: goto 13
12: StackMap locals:
StackMap stack:
aload 2
aload 3
putfield io.reactivex.internal.operators.flowable.FlowablePublish$InnerSubscriber.parent:Lio/reactivex/internal/operators/flowable/FlowablePublish$PublishSubscriber;
13: StackMap locals:
StackMap stack:
aload 3
invokevirtual io.reactivex.internal.operators.flowable.FlowablePublish$PublishSubscriber.dispatch:()V
end local 3 14: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lio/reactivex/internal/operators/flowable/FlowablePublish$FlowablePublisher<TT;>;
0 15 1 child Lorg/reactivestreams/Subscriber<-TT;>;
1 15 2 inner Lio/reactivex/internal/operators/flowable/FlowablePublish$InnerSubscriber<TT;>;
3 14 3 r Lio/reactivex/internal/operators/flowable/FlowablePublish$PublishSubscriber<TT;>;
5 8 4 u Lio/reactivex/internal/operators/flowable/FlowablePublish$PublishSubscriber<TT;>;
Signature: (Lorg/reactivestreams/Subscriber<-TT;>;)V
MethodParameters:
Name Flags
child
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Lorg/reactivestreams/Publisher<TT;>;
SourceFile: "FlowablePublish.java"
NestHost: io.reactivex.internal.operators.flowable.FlowablePublish
InnerClasses:
final FlowablePublisher = io.reactivex.internal.operators.flowable.FlowablePublish$FlowablePublisher of io.reactivex.internal.operators.flowable.FlowablePublish
final InnerSubscriber = io.reactivex.internal.operators.flowable.FlowablePublish$InnerSubscriber of io.reactivex.internal.operators.flowable.FlowablePublish
final PublishSubscriber = io.reactivex.internal.operators.flowable.FlowablePublish$PublishSubscriber of io.reactivex.internal.operators.flowable.FlowablePublish