final class io.reactivex.internal.operators.observable.ObservablePublish$PublishSource<T> implements io.reactivex.ObservableSource<T>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.reactivex.internal.operators.observable.ObservablePublish$PublishSource
super_class: java.lang.Object
{
private final java.util.concurrent.atomic.AtomicReference<io.reactivex.internal.operators.observable.ObservablePublish$PublishObserver<T>> curr;
descriptor: Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReference<Lio/reactivex/internal/operators/observable/ObservablePublish$PublishObserver<TT;>;>;
void <init>(java.util.concurrent.atomic.AtomicReference<io.reactivex.internal.operators.observable.ObservablePublish$PublishObserver<T>>);
descriptor: (Ljava/util/concurrent/atomic/AtomicReference;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield io.reactivex.internal.operators.observable.ObservablePublish$PublishSource.curr:Ljava/util/concurrent/atomic/AtomicReference;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/reactivex/internal/operators/observable/ObservablePublish$PublishSource<TT;>;
0 3 1 curr Ljava/util/concurrent/atomic/AtomicReference<Lio/reactivex/internal/operators/observable/ObservablePublish$PublishObserver<TT;>;>;
Signature: (Ljava/util/concurrent/atomic/AtomicReference<Lio/reactivex/internal/operators/observable/ObservablePublish$PublishObserver<TT;>;>;)V
MethodParameters:
Name Flags
curr
public void subscribe(io.reactivex.Observer<? super T>);
descriptor: (Lio/reactivex/Observer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: new io.reactivex.internal.operators.observable.ObservablePublish$InnerDisposable
dup
aload 1
invokespecial io.reactivex.internal.operators.observable.ObservablePublish$InnerDisposable.<init>:(Lio/reactivex/Observer;)V
astore 2
start local 2 1: aload 1
aload 2
invokeinterface io.reactivex.Observer.onSubscribe:(Lio/reactivex/disposables/Disposable;)V
2: StackMap locals: io.reactivex.internal.operators.observable.ObservablePublish$InnerDisposable
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.observable.ObservablePublish$PublishSource.curr:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast io.reactivex.internal.operators.observable.ObservablePublish$PublishObserver
astore 3
start local 3 3: aload 3
ifnull 4
aload 3
invokevirtual io.reactivex.internal.operators.observable.ObservablePublish$PublishObserver.isDisposed:()Z
ifeq 8
4: StackMap locals: io.reactivex.internal.operators.observable.ObservablePublish$PublishObserver
StackMap stack:
new io.reactivex.internal.operators.observable.ObservablePublish$PublishObserver
dup
aload 0
getfield io.reactivex.internal.operators.observable.ObservablePublish$PublishSource.curr:Ljava/util/concurrent/atomic/AtomicReference;
invokespecial io.reactivex.internal.operators.observable.ObservablePublish$PublishObserver.<init>:(Ljava/util/concurrent/atomic/AtomicReference;)V
astore 4
start local 4 5: aload 0
getfield io.reactivex.internal.operators.observable.ObservablePublish$PublishSource.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.observable.ObservablePublish$PublishObserver
StackMap stack:
aload 4
astore 3
end local 4 8: StackMap locals:
StackMap stack:
aload 3
aload 2
invokevirtual io.reactivex.internal.operators.observable.ObservablePublish$PublishObserver.add:(Lio/reactivex/internal/operators/observable/ObservablePublish$InnerDisposable;)Z
ifeq 2
9: aload 2
aload 3
invokevirtual io.reactivex.internal.operators.observable.ObservablePublish$InnerDisposable.setParent:(Lio/reactivex/internal/operators/observable/ObservablePublish$PublishObserver;)V
end local 3 10: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/reactivex/internal/operators/observable/ObservablePublish$PublishSource<TT;>;
0 11 1 child Lio/reactivex/Observer<-TT;>;
1 11 2 inner Lio/reactivex/internal/operators/observable/ObservablePublish$InnerDisposable<TT;>;
3 10 3 r Lio/reactivex/internal/operators/observable/ObservablePublish$PublishObserver<TT;>;
5 8 4 u Lio/reactivex/internal/operators/observable/ObservablePublish$PublishObserver<TT;>;
Signature: (Lio/reactivex/Observer<-TT;>;)V
MethodParameters:
Name Flags
child
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Lio/reactivex/ObservableSource<TT;>;
SourceFile: "ObservablePublish.java"
NestHost: io.reactivex.internal.operators.observable.ObservablePublish
InnerClasses:
final InnerDisposable = io.reactivex.internal.operators.observable.ObservablePublish$InnerDisposable of io.reactivex.internal.operators.observable.ObservablePublish
final PublishObserver = io.reactivex.internal.operators.observable.ObservablePublish$PublishObserver of io.reactivex.internal.operators.observable.ObservablePublish
final PublishSource = io.reactivex.internal.operators.observable.ObservablePublish$PublishSource of io.reactivex.internal.operators.observable.ObservablePublish