final class io.reactivex.internal.operators.flowable.FlowableReplay$ReplayPublisher<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.FlowableReplay$ReplayPublisher
super_class: java.lang.Object
{
private final java.util.concurrent.atomic.AtomicReference<io.reactivex.internal.operators.flowable.FlowableReplay$ReplaySubscriber<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/FlowableReplay$ReplaySubscriber<TT;>;>;
private final java.util.concurrent.Callable<? extends io.reactivex.internal.operators.flowable.FlowableReplay$ReplayBuffer<T>> bufferFactory;
descriptor: Ljava/util/concurrent/Callable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/Callable<+Lio/reactivex/internal/operators/flowable/FlowableReplay$ReplayBuffer<TT;>;>;
void <init>(java.util.concurrent.atomic.AtomicReference<io.reactivex.internal.operators.flowable.FlowableReplay$ReplaySubscriber<T>>, java.util.concurrent.Callable<? extends io.reactivex.internal.operators.flowable.FlowableReplay$ReplayBuffer<T>>);
descriptor: (Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/Callable;)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.FlowableReplay$ReplayPublisher.curr:Ljava/util/concurrent/atomic/AtomicReference;
2: aload 0
aload 2
putfield io.reactivex.internal.operators.flowable.FlowableReplay$ReplayPublisher.bufferFactory:Ljava/util/concurrent/Callable;
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/FlowableReplay$ReplayPublisher<TT;>;
0 4 1 curr Ljava/util/concurrent/atomic/AtomicReference<Lio/reactivex/internal/operators/flowable/FlowableReplay$ReplaySubscriber<TT;>;>;
0 4 2 bufferFactory Ljava/util/concurrent/Callable<+Lio/reactivex/internal/operators/flowable/FlowableReplay$ReplayBuffer<TT;>;>;
Signature: (Ljava/util/concurrent/atomic/AtomicReference<Lio/reactivex/internal/operators/flowable/FlowableReplay$ReplaySubscriber<TT;>;>;Ljava/util/concurrent/Callable<+Lio/reactivex/internal/operators/flowable/FlowableReplay$ReplayBuffer<TT;>;>;)V
MethodParameters:
Name Flags
curr
bufferFactory
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: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableReplay$ReplayPublisher.curr:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast io.reactivex.internal.operators.flowable.FlowableReplay$ReplaySubscriber
astore 2
start local 2 1: aload 2
ifnonnull 12
2: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableReplay$ReplayPublisher.bufferFactory:Ljava/util/concurrent/Callable;
invokeinterface java.util.concurrent.Callable.call:()Ljava/lang/Object;
checkcast io.reactivex.internal.operators.flowable.FlowableReplay$ReplayBuffer
astore 3
start local 3 3: goto 8
end local 3 StackMap locals: io.reactivex.internal.operators.flowable.FlowableReplay$ReplayPublisher org.reactivestreams.Subscriber io.reactivex.internal.operators.flowable.FlowableReplay$ReplaySubscriber
StackMap stack: java.lang.Throwable
4: astore 4
start local 4 5: aload 4
invokestatic io.reactivex.exceptions.Exceptions.throwIfFatal:(Ljava/lang/Throwable;)V
6: aload 4
aload 1
invokestatic io.reactivex.internal.subscriptions.EmptySubscription.error:(Ljava/lang/Throwable;Lorg/reactivestreams/Subscriber;)V
7: return
end local 4 start local 3 8: StackMap locals: io.reactivex.internal.operators.flowable.FlowableReplay$ReplayBuffer
StackMap stack:
new io.reactivex.internal.operators.flowable.FlowableReplay$ReplaySubscriber
dup
aload 3
invokespecial io.reactivex.internal.operators.flowable.FlowableReplay$ReplaySubscriber.<init>:(Lio/reactivex/internal/operators/flowable/FlowableReplay$ReplayBuffer;)V
astore 4
start local 4 9: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableReplay$ReplayPublisher.curr:Ljava/util/concurrent/atomic/AtomicReference;
aconst_null
aload 4
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifne 11
10: goto 0
11: StackMap locals: io.reactivex.internal.operators.flowable.FlowableReplay$ReplaySubscriber
StackMap stack:
aload 4
astore 2
end local 4 end local 3 12: StackMap locals:
StackMap stack:
new io.reactivex.internal.operators.flowable.FlowableReplay$InnerSubscription
dup
aload 2
aload 1
invokespecial io.reactivex.internal.operators.flowable.FlowableReplay$InnerSubscription.<init>:(Lio/reactivex/internal/operators/flowable/FlowableReplay$ReplaySubscriber;Lorg/reactivestreams/Subscriber;)V
astore 3
start local 3 13: aload 1
aload 3
invokeinterface org.reactivestreams.Subscriber.onSubscribe:(Lorg/reactivestreams/Subscription;)V
14: aload 2
aload 3
invokevirtual io.reactivex.internal.operators.flowable.FlowableReplay$ReplaySubscriber.add:(Lio/reactivex/internal/operators/flowable/FlowableReplay$InnerSubscription;)Z
pop
15: aload 3
invokevirtual io.reactivex.internal.operators.flowable.FlowableReplay$InnerSubscription.isDisposed:()Z
ifeq 18
16: aload 2
aload 3
invokevirtual io.reactivex.internal.operators.flowable.FlowableReplay$ReplaySubscriber.remove:(Lio/reactivex/internal/operators/flowable/FlowableReplay$InnerSubscription;)V
17: return
18: StackMap locals: io.reactivex.internal.operators.flowable.FlowableReplay$InnerSubscription
StackMap stack:
aload 2
invokevirtual io.reactivex.internal.operators.flowable.FlowableReplay$ReplaySubscriber.manageRequests:()V
19: aload 2
getfield io.reactivex.internal.operators.flowable.FlowableReplay$ReplaySubscriber.buffer:Lio/reactivex/internal/operators/flowable/FlowableReplay$ReplayBuffer;
aload 3
invokeinterface io.reactivex.internal.operators.flowable.FlowableReplay$ReplayBuffer.replay:(Lio/reactivex/internal/operators/flowable/FlowableReplay$InnerSubscription;)V
end local 3 end local 2 20: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lio/reactivex/internal/operators/flowable/FlowableReplay$ReplayPublisher<TT;>;
0 21 1 child Lorg/reactivestreams/Subscriber<-TT;>;
1 20 2 r Lio/reactivex/internal/operators/flowable/FlowableReplay$ReplaySubscriber<TT;>;
3 4 3 buf Lio/reactivex/internal/operators/flowable/FlowableReplay$ReplayBuffer<TT;>;
8 12 3 buf Lio/reactivex/internal/operators/flowable/FlowableReplay$ReplayBuffer<TT;>;
5 8 4 ex Ljava/lang/Throwable;
9 12 4 u Lio/reactivex/internal/operators/flowable/FlowableReplay$ReplaySubscriber<TT;>;
13 20 3 inner Lio/reactivex/internal/operators/flowable/FlowableReplay$InnerSubscription<TT;>;
Exception table:
from to target type
2 3 4 Class java.lang.Throwable
Signature: (Lorg/reactivestreams/Subscriber<-TT;>;)V
MethodParameters:
Name Flags
child
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Lorg/reactivestreams/Publisher<TT;>;
SourceFile: "FlowableReplay.java"
NestHost: io.reactivex.internal.operators.flowable.FlowableReplay
InnerClasses:
final InnerSubscription = io.reactivex.internal.operators.flowable.FlowableReplay$InnerSubscription of io.reactivex.internal.operators.flowable.FlowableReplay
abstract ReplayBuffer = io.reactivex.internal.operators.flowable.FlowableReplay$ReplayBuffer of io.reactivex.internal.operators.flowable.FlowableReplay
final ReplayPublisher = io.reactivex.internal.operators.flowable.FlowableReplay$ReplayPublisher of io.reactivex.internal.operators.flowable.FlowableReplay
final ReplaySubscriber = io.reactivex.internal.operators.flowable.FlowableReplay$ReplaySubscriber of io.reactivex.internal.operators.flowable.FlowableReplay