ObservableGenerate$GeneratorDisposable.smali
.class final Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;
.super Ljava/lang/Object;
.source "ObservableGenerate.java"
# interfaces
.implements Lio/reactivex/Emitter;
.implements Lio/reactivex/disposables/Disposable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/operators/observable/ObservableGenerate;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x18
name = "GeneratorDisposable"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
"S:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;",
"Lio/reactivex/Emitter<",
"TT;>;",
"Lio/reactivex/disposables/Disposable;"
}
.end annotation
# instance fields
.field final actual:Lio/reactivex/Observer;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lio/reactivex/Observer<",
"-TT;>;"
}
.end annotation
.end field
.field volatile cancelled:Z
.field final disposeState:Lio/reactivex/functions/Consumer;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lio/reactivex/functions/Consumer<",
"-TS;>;"
}
.end annotation
.end field
.field final generator:Lio/reactivex/functions/BiFunction;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lio/reactivex/functions/BiFunction<",
"TS;-",
"Lio/reactivex/Emitter<",
"TT;>;TS;>;"
}
.end annotation
.end field
.field hasNext:Z
.field state:Ljava/lang/Object;
.annotation system Ldalvik/annotation/Signature;
value = {
"TS;"
}
.end annotation
.end field
.field terminate:Z
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method constructor <init>(Lio/reactivex/Observer;Lio/reactivex/functions/BiFunction;Lio/reactivex/functions/Consumer;Ljava/lang/Object;)V
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lio/reactivex/Observer<",
"-TT;>;",
"Lio/reactivex/functions/BiFunction<",
"TS;-",
"Lio/reactivex/Emitter<",
"TT;>;TS;>;",
"Lio/reactivex/functions/Consumer<",
"-TS;>;TS;)V"
}
.end annotation
.line 71
.local p0, "this":Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;, "Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable<TT;TS;>;"
.local p1, "actual":Lio/reactivex/Observer;, "Lio/reactivex/Observer<-TT;>;"
.local p2, "generator":Lio/reactivex/functions/BiFunction;, "Lio/reactivex/functions/BiFunction<TS;-Lio/reactivex/Emitter<TT;>;TS;>;"
.local p3, "disposeState":Lio/reactivex/functions/Consumer;, "Lio/reactivex/functions/Consumer<-TS;>;"
.local p4, "initialState":Ljava/lang/Object;, "TS;"
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 72
iput-object p1, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->actual:Lio/reactivex/Observer;
.line 73
iput-object p2, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->generator:Lio/reactivex/functions/BiFunction;
.line 74
iput-object p3, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->disposeState:Lio/reactivex/functions/Consumer;
.line 75
iput-object p4, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->state:Ljava/lang/Object;
.line 76
return-void
.end method
.method private dispose(Ljava/lang/Object;)V
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(TS;)V"
}
.end annotation
.line 122
.local p0, "this":Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;, "Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable<TT;TS;>;"
.local p1, "s":Ljava/lang/Object;, "TS;"
:try_start_0
iget-object v0, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->disposeState:Lio/reactivex/functions/Consumer;
invoke-interface {v0, p1}, Lio/reactivex/functions/Consumer;->accept(Ljava/lang/Object;)V
:try_end_5
.catchall {:try_start_0 .. :try_end_5} :catchall_6
.line 126
goto :goto_d
.line 123
:catchall_6
move-exception v0
.line 124
.local v0, "ex":Ljava/lang/Throwable;
invoke-static {v0}, Lio/reactivex/exceptions/Exceptions;->throwIfFatal(Ljava/lang/Throwable;)V
.line 125
invoke-static {v0}, Lio/reactivex/plugins/RxJavaPlugins;->onError(Ljava/lang/Throwable;)V
.line 127
.end local v0 # "ex":Ljava/lang/Throwable;
:goto_d
return-void
.end method
# virtual methods
.method public dispose()V
.registers 2
.line 131
.local p0, "this":Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;, "Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable<TT;TS;>;"
const/4 v0, 0x1
iput-boolean v0, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->cancelled:Z
.line 132
return-void
.end method
.method public isDisposed()Z
.registers 2
.line 136
.local p0, "this":Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;, "Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable<TT;TS;>;"
iget-boolean v0, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->cancelled:Z
return v0
.end method
.method public onComplete()V
.registers 2
.line 171
.local p0, "this":Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;, "Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable<TT;TS;>;"
iget-boolean v0, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->terminate:Z
if-nez v0, :cond_c
.line 172
const/4 v0, 0x1
iput-boolean v0, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->terminate:Z
.line 173
iget-object v0, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->actual:Lio/reactivex/Observer;
invoke-interface {v0}, Lio/reactivex/Observer;->onComplete()V
.line 175
:cond_c
return-void
.end method
.method public onError(Ljava/lang/Throwable;)V
.registers 4
.param p1, "t" # Ljava/lang/Throwable;
.line 158
.local p0, "this":Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;, "Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable<TT;TS;>;"
iget-boolean v0, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->terminate:Z
if-eqz v0, :cond_8
.line 159
invoke-static {p1}, Lio/reactivex/plugins/RxJavaPlugins;->onError(Ljava/lang/Throwable;)V
goto :goto_1a
.line 161
:cond_8
if-nez p1, :cond_12
.line 162
new-instance v0, Ljava/lang/NullPointerException;
const-string v1, "onError called with null. Null values are generally not allowed in 2.x operators and sources."
invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
move-object p1, v0
.line 164
:cond_12
const/4 v0, 0x1
iput-boolean v0, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->terminate:Z
.line 165
iget-object v0, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->actual:Lio/reactivex/Observer;
invoke-interface {v0, p1}, Lio/reactivex/Observer;->onError(Ljava/lang/Throwable;)V
.line 167
:goto_1a
return-void
.end method
.method public onNext(Ljava/lang/Object;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(TT;)V"
}
.end annotation
.line 142
.local p0, "this":Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;, "Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable<TT;TS;>;"
.local p1, "t":Ljava/lang/Object;, "TT;"
iget-boolean v0, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->terminate:Z
if-nez v0, :cond_28
.line 143
iget-boolean v0, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->hasNext:Z
if-eqz v0, :cond_13
.line 144
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "onNext already called in this generate turn"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
invoke-virtual {p0, v0}, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->onError(Ljava/lang/Throwable;)V
goto :goto_28
.line 146
:cond_13
if-nez p1, :cond_20
.line 147
new-instance v0, Ljava/lang/NullPointerException;
const-string v1, "onNext called with null. Null values are generally not allowed in 2.x operators and sources."
invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
invoke-virtual {p0, v0}, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->onError(Ljava/lang/Throwable;)V
goto :goto_28
.line 149
:cond_20
const/4 v0, 0x1
iput-boolean v0, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->hasNext:Z
.line 150
iget-object v0, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->actual:Lio/reactivex/Observer;
invoke-interface {v0, p1}, Lio/reactivex/Observer;->onNext(Ljava/lang/Object;)V
.line 154
:cond_28
:goto_28
return-void
.end method
.method public run()V
.registers 6
.line 79
.local p0, "this":Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;, "Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable<TT;TS;>;"
iget-object v0, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->state:Ljava/lang/Object;
.line 81
.local v0, "s":Ljava/lang/Object;, "TS;"
iget-boolean v1, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->cancelled:Z
const/4 v2, 0x0
if-eqz v1, :cond_d
.line 82
iput-object v2, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->state:Ljava/lang/Object;
.line 83
invoke-direct {p0, v0}, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->dispose(Ljava/lang/Object;)V
.line 84
return-void
.line 87
:cond_d
iget-object v1, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->generator:Lio/reactivex/functions/BiFunction;
.line 91
.local v1, "f":Lio/reactivex/functions/BiFunction;, "Lio/reactivex/functions/BiFunction<TS;-Lio/reactivex/Emitter<TT;>;TS;>;"
:cond_f
iget-boolean v3, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->cancelled:Z
if-eqz v3, :cond_19
.line 92
iput-object v2, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->state:Ljava/lang/Object;
.line 93
invoke-direct {p0, v0}, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->dispose(Ljava/lang/Object;)V
.line 94
return-void
.line 97
:cond_19
const/4 v3, 0x0
iput-boolean v3, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->hasNext:Z
.line 100
const/4 v3, 0x1
:try_start_1d
invoke-interface {v1, v0, p0}, Lio/reactivex/functions/BiFunction;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v4
:try_end_21
.catchall {:try_start_1d .. :try_end_21} :catchall_2f
move-object v0, v4
.line 108
nop
.line 110
iget-boolean v4, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->terminate:Z
if-eqz v4, :cond_f
.line 111
iput-boolean v3, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->cancelled:Z
.line 112
iput-object v2, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->state:Ljava/lang/Object;
.line 113
invoke-direct {p0, v0}, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->dispose(Ljava/lang/Object;)V
.line 114
return-void
.line 101
:catchall_2f
move-exception v4
.line 102
.local v4, "ex":Ljava/lang/Throwable;
invoke-static {v4}, Lio/reactivex/exceptions/Exceptions;->throwIfFatal(Ljava/lang/Throwable;)V
.line 103
iput-object v2, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->state:Ljava/lang/Object;
.line 104
iput-boolean v3, p0, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->cancelled:Z
.line 105
invoke-virtual {p0, v4}, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->onError(Ljava/lang/Throwable;)V
.line 106
invoke-direct {p0, v0}, Lio/reactivex/internal/operators/observable/ObservableGenerate$GeneratorDisposable;->dispose(Ljava/lang/Object;)V
.line 107
return-void
.end method