ObservablePublish.smali
.class public final Lio/reactivex/internal/operators/observable/ObservablePublish;
.super Lio/reactivex/c/a;
.source "ObservablePublish.java"
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">",
"Lio/reactivex/c/a",
"<TT;>;"
}
.end annotation
# instance fields
.field private bQF:Lio/reactivex/p;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lio/reactivex/p",
"<TT;>;"
}
.end annotation
.end field
.field private current:Ljava/util/concurrent/atomic/AtomicReference;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/atomic/AtomicReference",
"<",
"Lio/reactivex/internal/operators/observable/ec",
"<TT;>;>;"
}
.end annotation
.end field
.field private source:Lio/reactivex/p;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lio/reactivex/p",
"<TT;>;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>(Lio/reactivex/p;Lio/reactivex/p;Ljava/util/concurrent/atomic/AtomicReference;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lio/reactivex/p",
"<TT;>;",
"Lio/reactivex/p",
"<TT;>;",
"Ljava/util/concurrent/atomic/AtomicReference",
"<",
"Lio/reactivex/internal/operators/observable/ec",
"<TT;>;>;)V"
}
.end annotation
.prologue
.line 55
invoke-direct {p0}, Lio/reactivex/c/a;-><init>()V
.line 56
iput-object p1, p0, Lio/reactivex/internal/operators/observable/ObservablePublish;->bQF:Lio/reactivex/p;
.line 57
iput-object p2, p0, Lio/reactivex/internal/operators/observable/ObservablePublish;->source:Lio/reactivex/p;
.line 58
iput-object p3, p0, Lio/reactivex/internal/operators/observable/ObservablePublish;->current:Ljava/util/concurrent/atomic/AtomicReference;
.line 59
return-void
.end method
# virtual methods
.method public final d(Lio/reactivex/b/g;)V
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lio/reactivex/b/g",
"<-",
"Lio/reactivex/disposables/b;",
">;)V"
}
.end annotation
.prologue
const/4 v2, 0x1
const/4 v3, 0x0
.line 78
:cond_2
iget-object v0, p0, Lio/reactivex/internal/operators/observable/ObservablePublish;->current:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lio/reactivex/internal/operators/observable/ec;
.line 80
if-eqz v0, :cond_12
invoke-virtual {v0}, Lio/reactivex/internal/operators/observable/ec;->isDisposed()Z
move-result v1
if-eqz v1, :cond_22
.line 82
:cond_12
new-instance v1, Lio/reactivex/internal/operators/observable/ec;
iget-object v4, p0, Lio/reactivex/internal/operators/observable/ObservablePublish;->current:Ljava/util/concurrent/atomic/AtomicReference;
invoke-direct {v1, v4}, Lio/reactivex/internal/operators/observable/ec;-><init>(Ljava/util/concurrent/atomic/AtomicReference;)V
.line 84
iget-object v4, p0, Lio/reactivex/internal/operators/observable/ObservablePublish;->current:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v4, v0, v1}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_2
move-object v0, v1
.line 93
:cond_22
iget-object v1, v0, Lio/reactivex/internal/operators/observable/ec;->shouldConnect:Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicBoolean;->get()Z
move-result v1
if-nez v1, :cond_3e
iget-object v1, v0, Lio/reactivex/internal/operators/observable/ec;->shouldConnect:Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-virtual {v1, v3, v2}, Ljava/util/concurrent/atomic/AtomicBoolean;->compareAndSet(ZZ)Z
move-result v1
if-eqz v1, :cond_3e
move v1, v2
.line 110
:goto_33
:try_start_33
invoke-interface {p1, v0}, Lio/reactivex/b/g;->accept(Ljava/lang/Object;)V
:try_end_36
.catch Ljava/lang/Throwable; {:try_start_33 .. :try_end_36} :catch_40
.line 115
if-eqz v1, :cond_3d
.line 116
iget-object v1, p0, Lio/reactivex/internal/operators/observable/ObservablePublish;->source:Lio/reactivex/p;
invoke-interface {v1, v0}, Lio/reactivex/p;->subscribe(Lio/reactivex/r;)V
.line 118
:cond_3d
return-void
:cond_3e
move v1, v3
.line 93
goto :goto_33
.line 111
:catch_40
move-exception v0
.line 112
invoke-static {v0}, Lio/reactivex/exceptions/d;->throwIfFatal(Ljava/lang/Throwable;)V
.line 113
invoke-static {v0}, Lio/reactivex/internal/util/ExceptionHelper;->l(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.end method
.method protected final subscribeActual(Lio/reactivex/r;)V
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lio/reactivex/r",
"<-TT;>;)V"
}
.end annotation
.prologue
.line 68
iget-object v0, p0, Lio/reactivex/internal/operators/observable/ObservablePublish;->bQF:Lio/reactivex/p;
invoke-interface {v0, p1}, Lio/reactivex/p;->subscribe(Lio/reactivex/r;)V
.line 69
return-void
.end method