public final class io.reactivex.internal.operators.flowable.FlowableRefCount<T> extends io.reactivex.Flowable<T>
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: io.reactivex.internal.operators.flowable.FlowableRefCount
super_class: io.reactivex.Flowable
{
final io.reactivex.flowables.ConnectableFlowable<T> source;
descriptor: Lio/reactivex/flowables/ConnectableFlowable;
flags: (0x0010) ACC_FINAL
Signature: Lio/reactivex/flowables/ConnectableFlowable<TT;>;
final int n;
descriptor: I
flags: (0x0010) ACC_FINAL
final long timeout;
descriptor: J
flags: (0x0010) ACC_FINAL
final java.util.concurrent.TimeUnit unit;
descriptor: Ljava/util/concurrent/TimeUnit;
flags: (0x0010) ACC_FINAL
final io.reactivex.Scheduler scheduler;
descriptor: Lio/reactivex/Scheduler;
flags: (0x0010) ACC_FINAL
io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection connection;
descriptor: Lio/reactivex/internal/operators/flowable/FlowableRefCount$RefConnection;
flags: (0x0000)
public void <init>(io.reactivex.flowables.ConnectableFlowable<T>);
descriptor: (Lio/reactivex/flowables/ConnectableFlowable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
lconst_0
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
aconst_null
invokespecial io.reactivex.internal.operators.flowable.FlowableRefCount.<init>:(Lio/reactivex/flowables/ConnectableFlowable;IJLjava/util/concurrent/TimeUnit;Lio/reactivex/Scheduler;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/reactivex/internal/operators/flowable/FlowableRefCount<TT;>;
0 2 1 source Lio/reactivex/flowables/ConnectableFlowable<TT;>;
Signature: (Lio/reactivex/flowables/ConnectableFlowable<TT;>;)V
MethodParameters:
Name Flags
source
public void <init>(io.reactivex.flowables.ConnectableFlowable<T>, int, long, java.util.concurrent.TimeUnit, io.reactivex.Scheduler);
descriptor: (Lio/reactivex/flowables/ConnectableFlowable;IJLjava/util/concurrent/TimeUnit;Lio/reactivex/Scheduler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 5 start local 6 0: aload 0
invokespecial io.reactivex.Flowable.<init>:()V
1: aload 0
aload 1
putfield io.reactivex.internal.operators.flowable.FlowableRefCount.source:Lio/reactivex/flowables/ConnectableFlowable;
2: aload 0
iload 2
putfield io.reactivex.internal.operators.flowable.FlowableRefCount.n:I
3: aload 0
lload 3
putfield io.reactivex.internal.operators.flowable.FlowableRefCount.timeout:J
4: aload 0
aload 5
putfield io.reactivex.internal.operators.flowable.FlowableRefCount.unit:Ljava/util/concurrent/TimeUnit;
5: aload 0
aload 6
putfield io.reactivex.internal.operators.flowable.FlowableRefCount.scheduler:Lio/reactivex/Scheduler;
6: 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 7 0 this Lio/reactivex/internal/operators/flowable/FlowableRefCount<TT;>;
0 7 1 source Lio/reactivex/flowables/ConnectableFlowable<TT;>;
0 7 2 n I
0 7 3 timeout J
0 7 5 unit Ljava/util/concurrent/TimeUnit;
0 7 6 scheduler Lio/reactivex/Scheduler;
Signature: (Lio/reactivex/flowables/ConnectableFlowable<TT;>;IJLjava/util/concurrent/TimeUnit;Lio/reactivex/Scheduler;)V
MethodParameters:
Name Flags
source
n
timeout
unit
scheduler
protected void subscribeActual(org.reactivestreams.Subscriber<? super T>);
descriptor: (Lorg/reactivestreams/Subscriber;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=7, args_size=2
start local 0 start local 1 0: iconst_0
istore 3
start local 3 1: aload 0
dup
astore 4
monitorenter
2: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableRefCount.connection:Lio/reactivex/internal/operators/flowable/FlowableRefCount$RefConnection;
astore 2
start local 2 3: aload 2
ifnonnull 6
4: new io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection
dup
aload 0
invokespecial io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection.<init>:(Lio/reactivex/internal/operators/flowable/FlowableRefCount;)V
astore 2
5: aload 0
aload 2
putfield io.reactivex.internal.operators.flowable.FlowableRefCount.connection:Lio/reactivex/internal/operators/flowable/FlowableRefCount$RefConnection;
6: StackMap locals: io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection int io.reactivex.internal.operators.flowable.FlowableRefCount
StackMap stack:
aload 2
getfield io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection.subscriberCount:J
lstore 5
start local 5 7: lload 5
lconst_0
lcmp
ifne 9
aload 2
getfield io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection.timer:Lio/reactivex/disposables/Disposable;
ifnull 9
8: aload 2
getfield io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection.timer:Lio/reactivex/disposables/Disposable;
invokeinterface io.reactivex.disposables.Disposable.dispose:()V
9: StackMap locals: long
StackMap stack:
aload 2
lload 5
lconst_1
ladd
putfield io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection.subscriberCount:J
10: aload 2
getfield io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection.connected:Z
ifne 13
lload 5
lconst_1
ladd
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableRefCount.n:I
i2l
lcmp
ifne 13
11: iconst_1
istore 3
12: aload 2
iconst_1
putfield io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection.connected:Z
end local 5 13: StackMap locals:
StackMap stack:
aload 4
monitorexit
14: goto 17
end local 2 StackMap locals: io.reactivex.internal.operators.flowable.FlowableRefCount org.reactivestreams.Subscriber top int io.reactivex.internal.operators.flowable.FlowableRefCount
StackMap stack: java.lang.Throwable
15: aload 4
monitorexit
16: athrow
start local 2 17: StackMap locals: io.reactivex.internal.operators.flowable.FlowableRefCount org.reactivestreams.Subscriber io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection int
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableRefCount.source:Lio/reactivex/flowables/ConnectableFlowable;
new io.reactivex.internal.operators.flowable.FlowableRefCount$RefCountSubscriber
dup
aload 1
aload 0
aload 2
invokespecial io.reactivex.internal.operators.flowable.FlowableRefCount$RefCountSubscriber.<init>:(Lorg/reactivestreams/Subscriber;Lio/reactivex/internal/operators/flowable/FlowableRefCount;Lio/reactivex/internal/operators/flowable/FlowableRefCount$RefConnection;)V
invokevirtual io.reactivex.flowables.ConnectableFlowable.subscribe:(Lio/reactivex/FlowableSubscriber;)V
18: iload 3
ifeq 20
19: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableRefCount.source:Lio/reactivex/flowables/ConnectableFlowable;
aload 2
invokevirtual io.reactivex.flowables.ConnectableFlowable.connect:(Lio/reactivex/functions/Consumer;)V
20: StackMap locals:
StackMap stack:
return
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/FlowableRefCount<TT;>;
0 21 1 s Lorg/reactivestreams/Subscriber<-TT;>;
3 15 2 conn Lio/reactivex/internal/operators/flowable/FlowableRefCount$RefConnection;
17 21 2 conn Lio/reactivex/internal/operators/flowable/FlowableRefCount$RefConnection;
1 21 3 connect Z
7 13 5 c J
Exception table:
from to target type
2 14 15 any
15 16 15 any
Signature: (Lorg/reactivestreams/Subscriber<-TT;>;)V
MethodParameters:
Name Flags
s
void cancel(io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection);
descriptor: (Lio/reactivex/internal/operators/flowable/FlowableRefCount$RefConnection;)V
flags: (0x0000)
Code:
stack=6, locals=6, args_size=2
start local 0 start local 1 0: aload 0
dup
astore 3
monitorenter
1: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableRefCount.connection:Lio/reactivex/internal/operators/flowable/FlowableRefCount$RefConnection;
ifnull 2
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableRefCount.connection:Lio/reactivex/internal/operators/flowable/FlowableRefCount$RefConnection;
aload 1
if_acmpeq 4
2: StackMap locals: io.reactivex.internal.operators.flowable.FlowableRefCount io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection top io.reactivex.internal.operators.flowable.FlowableRefCount
StackMap stack:
aload 3
monitorexit
3: return
4: StackMap locals:
StackMap stack:
aload 1
getfield io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection.subscriberCount:J
lconst_1
lsub
lstore 4
start local 4 5: aload 1
lload 4
putfield io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection.subscriberCount:J
6: lload 4
lconst_0
lcmp
ifne 7
aload 1
getfield io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection.connected:Z
ifne 9
7: StackMap locals: long
StackMap stack:
aload 3
monitorexit
8: return
9: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableRefCount.timeout:J
lconst_0
lcmp
ifne 13
10: aload 0
aload 1
invokevirtual io.reactivex.internal.operators.flowable.FlowableRefCount.timeout:(Lio/reactivex/internal/operators/flowable/FlowableRefCount$RefConnection;)V
11: aload 3
monitorexit
12: return
13: StackMap locals:
StackMap stack:
new io.reactivex.internal.disposables.SequentialDisposable
dup
invokespecial io.reactivex.internal.disposables.SequentialDisposable.<init>:()V
astore 2
start local 2 14: aload 1
aload 2
putfield io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection.timer:Lio/reactivex/disposables/Disposable;
end local 4 15: aload 3
monitorexit
16: goto 19
end local 2 StackMap locals: io.reactivex.internal.operators.flowable.FlowableRefCount io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection top io.reactivex.internal.operators.flowable.FlowableRefCount
StackMap stack: java.lang.Throwable
17: aload 3
monitorexit
18: athrow
start local 2 19: StackMap locals: io.reactivex.internal.operators.flowable.FlowableRefCount io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection io.reactivex.internal.disposables.SequentialDisposable
StackMap stack:
aload 2
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableRefCount.scheduler:Lio/reactivex/Scheduler;
aload 1
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableRefCount.timeout:J
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableRefCount.unit:Ljava/util/concurrent/TimeUnit;
invokevirtual io.reactivex.Scheduler.scheduleDirect:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/Disposable;
invokevirtual io.reactivex.internal.disposables.SequentialDisposable.replace:(Lio/reactivex/disposables/Disposable;)Z
pop
20: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lio/reactivex/internal/operators/flowable/FlowableRefCount<TT;>;
0 21 1 rc Lio/reactivex/internal/operators/flowable/FlowableRefCount$RefConnection;
14 17 2 sd Lio/reactivex/internal/disposables/SequentialDisposable;
19 21 2 sd Lio/reactivex/internal/disposables/SequentialDisposable;
5 15 4 c J
Exception table:
from to target type
1 3 17 any
4 8 17 any
9 12 17 any
13 16 17 any
17 18 17 any
MethodParameters:
Name Flags
rc
void terminated(io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection);
descriptor: (Lio/reactivex/internal/operators/flowable/FlowableRefCount$RefConnection;)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
dup
astore 2
monitorenter
1: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableRefCount.connection:Lio/reactivex/internal/operators/flowable/FlowableRefCount$RefConnection;
ifnull 5
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableRefCount.connection:Lio/reactivex/internal/operators/flowable/FlowableRefCount$RefConnection;
aload 1
if_acmpne 5
2: aload 0
aconst_null
putfield io.reactivex.internal.operators.flowable.FlowableRefCount.connection:Lio/reactivex/internal/operators/flowable/FlowableRefCount$RefConnection;
3: aload 1
getfield io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection.timer:Lio/reactivex/disposables/Disposable;
ifnull 5
4: aload 1
getfield io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection.timer:Lio/reactivex/disposables/Disposable;
invokeinterface io.reactivex.disposables.Disposable.dispose:()V
5: StackMap locals: io.reactivex.internal.operators.flowable.FlowableRefCount
StackMap stack:
aload 1
dup
getfield io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection.subscriberCount:J
lconst_1
lsub
dup2_x1
putfield io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection.subscriberCount:J
lconst_0
lcmp
ifne 11
6: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableRefCount.source:Lio/reactivex/flowables/ConnectableFlowable;
instanceof io.reactivex.disposables.Disposable
ifeq 9
7: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableRefCount.source:Lio/reactivex/flowables/ConnectableFlowable;
checkcast io.reactivex.disposables.Disposable
invokeinterface io.reactivex.disposables.Disposable.dispose:()V
8: goto 11
StackMap locals:
StackMap stack:
9: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableRefCount.source:Lio/reactivex/flowables/ConnectableFlowable;
instanceof io.reactivex.internal.disposables.ResettableConnectable
ifeq 11
10: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableRefCount.source:Lio/reactivex/flowables/ConnectableFlowable;
checkcast io.reactivex.internal.disposables.ResettableConnectable
aload 1
invokevirtual io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection.get:()Ljava/lang/Object;
checkcast io.reactivex.disposables.Disposable
invokeinterface io.reactivex.internal.disposables.ResettableConnectable.resetIf:(Lio/reactivex/disposables/Disposable;)V
11: StackMap locals:
StackMap stack:
aload 2
monitorexit
12: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
13: aload 2
monitorexit
14: athrow
15: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lio/reactivex/internal/operators/flowable/FlowableRefCount<TT;>;
0 16 1 rc Lio/reactivex/internal/operators/flowable/FlowableRefCount$RefConnection;
Exception table:
from to target type
1 12 13 any
13 14 13 any
MethodParameters:
Name Flags
rc
void timeout(io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection);
descriptor: (Lio/reactivex/internal/operators/flowable/FlowableRefCount$RefConnection;)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
dup
astore 2
monitorenter
1: aload 1
getfield io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection.subscriberCount:J
lconst_0
lcmp
ifne 13
aload 1
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableRefCount.connection:Lio/reactivex/internal/operators/flowable/FlowableRefCount$RefConnection;
if_acmpne 13
2: aload 0
aconst_null
putfield io.reactivex.internal.operators.flowable.FlowableRefCount.connection:Lio/reactivex/internal/operators/flowable/FlowableRefCount$RefConnection;
3: aload 1
invokevirtual io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection.get:()Ljava/lang/Object;
checkcast io.reactivex.disposables.Disposable
astore 3
start local 3 4: aload 1
invokestatic io.reactivex.internal.disposables.DisposableHelper.dispose:(Ljava/util/concurrent/atomic/AtomicReference;)Z
pop
5: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableRefCount.source:Lio/reactivex/flowables/ConnectableFlowable;
instanceof io.reactivex.disposables.Disposable
ifeq 8
6: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableRefCount.source:Lio/reactivex/flowables/ConnectableFlowable;
checkcast io.reactivex.disposables.Disposable
invokeinterface io.reactivex.disposables.Disposable.dispose:()V
7: goto 13
StackMap locals: io.reactivex.internal.operators.flowable.FlowableRefCount io.reactivex.disposables.Disposable
StackMap stack:
8: aload 0
getfield io.reactivex.internal.operators.flowable.FlowableRefCount.source:Lio/reactivex/flowables/ConnectableFlowable;
instanceof io.reactivex.internal.disposables.ResettableConnectable
ifeq 13
9: aload 3
ifnonnull 12
10: aload 1
iconst_1
putfield io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection.disconnectedEarly:Z
11: goto 13
12: StackMap locals:
StackMap stack:
aload 0
getfield io.reactivex.internal.operators.flowable.FlowableRefCount.source:Lio/reactivex/flowables/ConnectableFlowable;
checkcast io.reactivex.internal.disposables.ResettableConnectable
aload 3
invokeinterface io.reactivex.internal.disposables.ResettableConnectable.resetIf:(Lio/reactivex/disposables/Disposable;)V
end local 3 13: StackMap locals:
StackMap stack:
aload 2
monitorexit
14: goto 17
StackMap locals:
StackMap stack: java.lang.Throwable
15: aload 2
monitorexit
16: athrow
17: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lio/reactivex/internal/operators/flowable/FlowableRefCount<TT;>;
0 18 1 rc Lio/reactivex/internal/operators/flowable/FlowableRefCount$RefConnection;
4 13 3 connectionObject Lio/reactivex/disposables/Disposable;
Exception table:
from to target type
1 14 15 any
15 16 15 any
MethodParameters:
Name Flags
rc
}
Signature: <T:Ljava/lang/Object;>Lio/reactivex/Flowable<TT;>;
SourceFile: "FlowableRefCount.java"
NestMembers:
io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection io.reactivex.internal.operators.flowable.FlowableRefCount$RefCountSubscriber
InnerClasses:
final RefConnection = io.reactivex.internal.operators.flowable.FlowableRefCount$RefConnection of io.reactivex.internal.operators.flowable.FlowableRefCount
final RefCountSubscriber = io.reactivex.internal.operators.flowable.FlowableRefCount$RefCountSubscriber of io.reactivex.internal.operators.flowable.FlowableRefCount