TestSubscriber.smali
.class public Lio/reactivex/subscribers/TestSubscriber;
.super Lio/reactivex/observers/BaseTestConsumer;
.source "TestSubscriber.java"
# interfaces
.implements Lio/reactivex/FlowableSubscriber;
.implements Lorg/reactivestreams/Subscription;
.implements Lio/reactivex/disposables/Disposable;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lio/reactivex/subscribers/TestSubscriber$EmptySubscriber;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">",
"Lio/reactivex/observers/BaseTestConsumer<",
"TT;",
"Lio/reactivex/subscribers/TestSubscriber<",
"TT;>;>;",
"Lio/reactivex/FlowableSubscriber<",
"TT;>;",
"Lorg/reactivestreams/Subscription;",
"Lio/reactivex/disposables/Disposable;"
}
.end annotation
# instance fields
.field private final actual:Lorg/reactivestreams/Subscriber;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/reactivestreams/Subscriber<",
"-TT;>;"
}
.end annotation
.end field
.field private volatile cancelled:Z
.field private final missedRequested:Ljava/util/concurrent/atomic/AtomicLong;
.field private qs:Lio/reactivex/internal/fuseable/QueueSubscription;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lio/reactivex/internal/fuseable/QueueSubscription<",
"TT;>;"
}
.end annotation
.end field
.field private final subscription:Ljava/util/concurrent/atomic/AtomicReference;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/atomic/AtomicReference<",
"Lorg/reactivestreams/Subscription;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>()V
.registers 4
.line 90
.local p0, "this":Lio/reactivex/subscribers/TestSubscriber;, "Lio/reactivex/subscribers/TestSubscriber<TT;>;"
sget-object v0, Lio/reactivex/subscribers/TestSubscriber$EmptySubscriber;->INSTANCE:Lio/reactivex/subscribers/TestSubscriber$EmptySubscriber;
const-wide v1, 0x7fffffffffffffffL
invoke-direct {p0, v0, v1, v2}, Lio/reactivex/subscribers/TestSubscriber;-><init>(Lorg/reactivestreams/Subscriber;J)V
.line 91
return-void
.end method
.method public constructor <init>(J)V
.registers 4
.param p1, "initialRequest" # J
.line 100
.local p0, "this":Lio/reactivex/subscribers/TestSubscriber;, "Lio/reactivex/subscribers/TestSubscriber<TT;>;"
sget-object v0, Lio/reactivex/subscribers/TestSubscriber$EmptySubscriber;->INSTANCE:Lio/reactivex/subscribers/TestSubscriber$EmptySubscriber;
invoke-direct {p0, v0, p1, p2}, Lio/reactivex/subscribers/TestSubscriber;-><init>(Lorg/reactivestreams/Subscriber;J)V
.line 101
return-void
.end method
.method public constructor <init>(Lorg/reactivestreams/Subscriber;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lorg/reactivestreams/Subscriber<",
"-TT;>;)V"
}
.end annotation
.line 108
.local p0, "this":Lio/reactivex/subscribers/TestSubscriber;, "Lio/reactivex/subscribers/TestSubscriber<TT;>;"
.local p1, "actual":Lorg/reactivestreams/Subscriber;, "Lorg/reactivestreams/Subscriber<-TT;>;"
const-wide v0, 0x7fffffffffffffffL
invoke-direct {p0, p1, v0, v1}, Lio/reactivex/subscribers/TestSubscriber;-><init>(Lorg/reactivestreams/Subscriber;J)V
.line 109
return-void
.end method
.method public constructor <init>(Lorg/reactivestreams/Subscriber;J)V
.registers 7
.param p2, "initialRequest" # J
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lorg/reactivestreams/Subscriber<",
"-TT;>;J)V"
}
.end annotation
.line 119
.local p0, "this":Lio/reactivex/subscribers/TestSubscriber;, "Lio/reactivex/subscribers/TestSubscriber<TT;>;"
.local p1, "actual":Lorg/reactivestreams/Subscriber;, "Lorg/reactivestreams/Subscriber<-TT;>;"
invoke-direct {p0}, Lio/reactivex/observers/BaseTestConsumer;-><init>()V
.line 120
const-wide/16 v0, 0x0
cmp-long v2, p2, v0
if-ltz v2, :cond_1a
.line 123
iput-object p1, p0, Lio/reactivex/subscribers/TestSubscriber;->actual:Lorg/reactivestreams/Subscriber;
.line 124
new-instance v0, Ljava/util/concurrent/atomic/AtomicReference;
invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicReference;-><init>()V
iput-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
.line 125
new-instance v0, Ljava/util/concurrent/atomic/AtomicLong;
invoke-direct {v0, p2, p3}, Ljava/util/concurrent/atomic/AtomicLong;-><init>(J)V
iput-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->missedRequested:Ljava/util/concurrent/atomic/AtomicLong;
.line 126
return-void
.line 121
:cond_1a
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "Negative initial request not allowed"
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public static create()Lio/reactivex/subscribers/TestSubscriber;
.registers 1
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">()",
"Lio/reactivex/subscribers/TestSubscriber<",
"TT;>;"
}
.end annotation
.line 63
new-instance v0, Lio/reactivex/subscribers/TestSubscriber;
invoke-direct {v0}, Lio/reactivex/subscribers/TestSubscriber;-><init>()V
return-object v0
.end method
.method public static create(J)Lio/reactivex/subscribers/TestSubscriber;
.registers 3
.param p0, "initialRequested" # J
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(J)",
"Lio/reactivex/subscribers/TestSubscriber<",
"TT;>;"
}
.end annotation
.line 73
new-instance v0, Lio/reactivex/subscribers/TestSubscriber;
invoke-direct {v0, p0, p1}, Lio/reactivex/subscribers/TestSubscriber;-><init>(J)V
return-object v0
.end method
.method public static create(Lorg/reactivestreams/Subscriber;)Lio/reactivex/subscribers/TestSubscriber;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lorg/reactivestreams/Subscriber<",
"-TT;>;)",
"Lio/reactivex/subscribers/TestSubscriber<",
"TT;>;"
}
.end annotation
.line 83
.local p0, "delegate":Lorg/reactivestreams/Subscriber;, "Lorg/reactivestreams/Subscriber<-TT;>;"
new-instance v0, Lio/reactivex/subscribers/TestSubscriber;
invoke-direct {v0, p0}, Lio/reactivex/subscribers/TestSubscriber;-><init>(Lorg/reactivestreams/Subscriber;)V
return-object v0
.end method
.method static fusionModeToString(I)Ljava/lang/String;
.registers 3
.param p0, "mode" # I
.line 363
if-eqz p0, :cond_25
const/4 v0, 0x1
if-eq p0, v0, :cond_22
const/4 v0, 0x2
if-eq p0, v0, :cond_1f
.line 367
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Unknown("
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, ")"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.line 366
:cond_1f
const-string v0, "ASYNC"
return-object v0
.line 365
:cond_22
const-string v0, "SYNC"
return-object v0
.line 364
:cond_25
const-string v0, "NONE"
return-object v0
.end method
# virtual methods
.method final assertFuseable()Lio/reactivex/subscribers/TestSubscriber;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lio/reactivex/subscribers/TestSubscriber<",
"TT;>;"
}
.end annotation
.line 378
.local p0, "this":Lio/reactivex/subscribers/TestSubscriber;, "Lio/reactivex/subscribers/TestSubscriber<TT;>;"
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->qs:Lio/reactivex/internal/fuseable/QueueSubscription;
if-eqz v0, :cond_5
.line 381
return-object p0
.line 379
:cond_5
new-instance v0, Ljava/lang/AssertionError;
const-string v1, "Upstream is not fuseable."
invoke-direct {v0, v1}, Ljava/lang/AssertionError;-><init>(Ljava/lang/Object;)V
throw v0
.end method
.method final assertFusionMode(I)Lio/reactivex/subscribers/TestSubscriber;
.registers 6
.param p1, "mode" # I
.annotation system Ldalvik/annotation/Signature;
value = {
"(I)",
"Lio/reactivex/subscribers/TestSubscriber<",
"TT;>;"
}
.end annotation
.line 350
.local p0, "this":Lio/reactivex/subscribers/TestSubscriber;, "Lio/reactivex/subscribers/TestSubscriber<TT;>;"
iget v0, p0, Lio/reactivex/subscribers/TestSubscriber;->establishedFusionMode:I
.line 351
.local v0, "m":I
if-eq v0, p1, :cond_36
.line 352
iget-object v1, p0, Lio/reactivex/subscribers/TestSubscriber;->qs:Lio/reactivex/internal/fuseable/QueueSubscription;
if-eqz v1, :cond_2f
.line 353
new-instance v1, Ljava/lang/AssertionError;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Fusion mode different. Expected: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {p1}, Lio/reactivex/subscribers/TestSubscriber;->fusionModeToString(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, ", actual: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 354
invoke-static {v0}, Lio/reactivex/subscribers/TestSubscriber;->fusionModeToString(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Ljava/lang/AssertionError;-><init>(Ljava/lang/Object;)V
throw v1
.line 356
:cond_2f
const-string v1, "Upstream is not fuseable"
invoke-virtual {p0, v1}, Lio/reactivex/subscribers/TestSubscriber;->fail(Ljava/lang/String;)Ljava/lang/AssertionError;
move-result-object v1
throw v1
.line 359
:cond_36
return-object p0
.end method
.method final assertNotFuseable()Lio/reactivex/subscribers/TestSubscriber;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lio/reactivex/subscribers/TestSubscriber<",
"TT;>;"
}
.end annotation
.line 391
.local p0, "this":Lio/reactivex/subscribers/TestSubscriber;, "Lio/reactivex/subscribers/TestSubscriber<TT;>;"
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->qs:Lio/reactivex/internal/fuseable/QueueSubscription;
if-nez v0, :cond_5
.line 394
return-object p0
.line 392
:cond_5
new-instance v0, Ljava/lang/AssertionError;
const-string v1, "Upstream is fuseable."
invoke-direct {v0, v1}, Ljava/lang/AssertionError;-><init>(Ljava/lang/Object;)V
throw v0
.end method
.method public bridge synthetic assertNotSubscribed()Lio/reactivex/observers/BaseTestConsumer;
.registers 2
.line 40
.local p0, "this":Lio/reactivex/subscribers/TestSubscriber;, "Lio/reactivex/subscribers/TestSubscriber<TT;>;"
invoke-virtual {p0}, Lio/reactivex/subscribers/TestSubscriber;->assertNotSubscribed()Lio/reactivex/subscribers/TestSubscriber;
move-result-object v0
return-object v0
.end method
.method public final assertNotSubscribed()Lio/reactivex/subscribers/TestSubscriber;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lio/reactivex/subscribers/TestSubscriber<",
"TT;>;"
}
.end annotation
.line 321
.local p0, "this":Lio/reactivex/subscribers/TestSubscriber;, "Lio/reactivex/subscribers/TestSubscriber<TT;>;"
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
if-nez v0, :cond_18
.line 324
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->errors:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->isEmpty()Z
move-result v0
if-eqz v0, :cond_11
.line 327
return-object p0
.line 325
:cond_11
const-string v0, "Not subscribed but errors found"
invoke-virtual {p0, v0}, Lio/reactivex/subscribers/TestSubscriber;->fail(Ljava/lang/String;)Ljava/lang/AssertionError;
move-result-object v0
throw v0
.line 322
:cond_18
const-string v0, "Subscribed!"
invoke-virtual {p0, v0}, Lio/reactivex/subscribers/TestSubscriber;->fail(Ljava/lang/String;)Ljava/lang/AssertionError;
move-result-object v0
throw v0
.end method
.method public final assertOf(Lio/reactivex/functions/Consumer;)Lio/reactivex/subscribers/TestSubscriber;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lio/reactivex/functions/Consumer<",
"-",
"Lio/reactivex/subscribers/TestSubscriber<",
"TT;>;>;)",
"Lio/reactivex/subscribers/TestSubscriber<",
"TT;>;"
}
.end annotation
.line 404
.local p0, "this":Lio/reactivex/subscribers/TestSubscriber;, "Lio/reactivex/subscribers/TestSubscriber<TT;>;"
.local p1, "check":Lio/reactivex/functions/Consumer;, "Lio/reactivex/functions/Consumer<-Lio/reactivex/subscribers/TestSubscriber<TT;>;>;"
:try_start_0
invoke-interface {p1, p0}, Lio/reactivex/functions/Consumer;->accept(Ljava/lang/Object;)V
:try_end_3
.catchall {:try_start_0 .. :try_end_3} :catchall_5
.line 407
nop
.line 408
return-object p0
.line 405
:catchall_5
move-exception v0
.line 406
.local v0, "ex":Ljava/lang/Throwable;
invoke-static {v0}, Lio/reactivex/internal/util/ExceptionHelper;->wrapOrThrow(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
move-result-object v1
throw v1
.end method
.method public bridge synthetic assertSubscribed()Lio/reactivex/observers/BaseTestConsumer;
.registers 2
.line 40
.local p0, "this":Lio/reactivex/subscribers/TestSubscriber;, "Lio/reactivex/subscribers/TestSubscriber<TT;>;"
invoke-virtual {p0}, Lio/reactivex/subscribers/TestSubscriber;->assertSubscribed()Lio/reactivex/subscribers/TestSubscriber;
move-result-object v0
return-object v0
.end method
.method public final assertSubscribed()Lio/reactivex/subscribers/TestSubscriber;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lio/reactivex/subscribers/TestSubscriber<",
"TT;>;"
}
.end annotation
.line 309
.local p0, "this":Lio/reactivex/subscribers/TestSubscriber;, "Lio/reactivex/subscribers/TestSubscriber<TT;>;"
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
if-eqz v0, :cond_9
.line 312
return-object p0
.line 310
:cond_9
const-string v0, "Not subscribed!"
invoke-virtual {p0, v0}, Lio/reactivex/subscribers/TestSubscriber;->fail(Ljava/lang/String;)Ljava/lang/AssertionError;
move-result-object v0
throw v0
.end method
.method public final cancel()V
.registers 2
.line 267
.local p0, "this":Lio/reactivex/subscribers/TestSubscriber;, "Lio/reactivex/subscribers/TestSubscriber<TT;>;"
iget-boolean v0, p0, Lio/reactivex/subscribers/TestSubscriber;->cancelled:Z
if-nez v0, :cond_c
.line 268
const/4 v0, 0x1
iput-boolean v0, p0, Lio/reactivex/subscribers/TestSubscriber;->cancelled:Z
.line 269
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
invoke-static {v0}, Lio/reactivex/internal/subscriptions/SubscriptionHelper;->cancel(Ljava/util/concurrent/atomic/AtomicReference;)Z
.line 271
:cond_c
return-void
.end method
.method public final dispose()V
.registers 1
.line 283
.local p0, "this":Lio/reactivex/subscribers/TestSubscriber;, "Lio/reactivex/subscribers/TestSubscriber<TT;>;"
invoke-virtual {p0}, Lio/reactivex/subscribers/TestSubscriber;->cancel()V
.line 284
return-void
.end method
.method public final hasSubscription()Z
.registers 2
.line 298
.local p0, "this":Lio/reactivex/subscribers/TestSubscriber;, "Lio/reactivex/subscribers/TestSubscriber<TT;>;"
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
if-eqz v0, :cond_a
const/4 v0, 0x1
goto :goto_b
:cond_a
const/4 v0, 0x0
:goto_b
return v0
.end method
.method public final isCancelled()Z
.registers 2
.line 278
.local p0, "this":Lio/reactivex/subscribers/TestSubscriber;, "Lio/reactivex/subscribers/TestSubscriber<TT;>;"
iget-boolean v0, p0, Lio/reactivex/subscribers/TestSubscriber;->cancelled:Z
return v0
.end method
.method public final isDisposed()Z
.registers 2
.line 288
.local p0, "this":Lio/reactivex/subscribers/TestSubscriber;, "Lio/reactivex/subscribers/TestSubscriber<TT;>;"
iget-boolean v0, p0, Lio/reactivex/subscribers/TestSubscriber;->cancelled:Z
return v0
.end method
.method public onComplete()V
.registers 5
.line 244
.local p0, "this":Lio/reactivex/subscribers/TestSubscriber;, "Lio/reactivex/subscribers/TestSubscriber<TT;>;"
iget-boolean v0, p0, Lio/reactivex/subscribers/TestSubscriber;->checkSubscriptionOnce:Z
if-nez v0, :cond_1b
.line 245
const/4 v0, 0x1
iput-boolean v0, p0, Lio/reactivex/subscribers/TestSubscriber;->checkSubscriptionOnce:Z
.line 246
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
if-nez v0, :cond_1b
.line 247
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->errors:Ljava/util/List;
new-instance v1, Ljava/lang/IllegalStateException;
const-string v2, "onSubscribe not called in proper order"
invoke-direct {v1, v2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 251
:cond_1b
:try_start_1b
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
iput-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->lastThread:Ljava/lang/Thread;
.line 252
iget-wide v0, p0, Lio/reactivex/subscribers/TestSubscriber;->completions:J
const-wide/16 v2, 0x1
add-long/2addr v0, v2
iput-wide v0, p0, Lio/reactivex/subscribers/TestSubscriber;->completions:J
.line 254
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->actual:Lorg/reactivestreams/Subscriber;
invoke-interface {v0}, Lorg/reactivestreams/Subscriber;->onComplete()V
:try_end_2d
.catchall {:try_start_1b .. :try_end_2d} :catchall_34
.line 256
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->done:Ljava/util/concurrent/CountDownLatch;
invoke-virtual {v0}, Ljava/util/concurrent/CountDownLatch;->countDown()V
.line 257
nop
.line 258
return-void
.line 256
:catchall_34
move-exception v0
iget-object v1, p0, Lio/reactivex/subscribers/TestSubscriber;->done:Ljava/util/concurrent/CountDownLatch;
invoke-virtual {v1}, Ljava/util/concurrent/CountDownLatch;->countDown()V
throw v0
.end method
.method public onError(Ljava/lang/Throwable;)V
.registers 5
.param p1, "t" # Ljava/lang/Throwable;
.line 222
.local p0, "this":Lio/reactivex/subscribers/TestSubscriber;, "Lio/reactivex/subscribers/TestSubscriber<TT;>;"
iget-boolean v0, p0, Lio/reactivex/subscribers/TestSubscriber;->checkSubscriptionOnce:Z
if-nez v0, :cond_1b
.line 223
const/4 v0, 0x1
iput-boolean v0, p0, Lio/reactivex/subscribers/TestSubscriber;->checkSubscriptionOnce:Z
.line 224
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
if-nez v0, :cond_1b
.line 225
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->errors:Ljava/util/List;
new-instance v1, Ljava/lang/NullPointerException;
const-string v2, "onSubscribe not called in proper order"
invoke-direct {v1, v2}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 229
:cond_1b
:try_start_1b
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
iput-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->lastThread:Ljava/lang/Thread;
.line 230
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->errors:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 232
if-nez p1, :cond_34
.line 233
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->errors:Ljava/util/List;
new-instance v1, Ljava/lang/IllegalStateException;
const-string v2, "onError received a null Throwable"
invoke-direct {v1, v2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 236
:cond_34
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->actual:Lorg/reactivestreams/Subscriber;
invoke-interface {v0, p1}, Lorg/reactivestreams/Subscriber;->onError(Ljava/lang/Throwable;)V
:try_end_39
.catchall {:try_start_1b .. :try_end_39} :catchall_40
.line 238
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->done:Ljava/util/concurrent/CountDownLatch;
invoke-virtual {v0}, Ljava/util/concurrent/CountDownLatch;->countDown()V
.line 239
nop
.line 240
return-void
.line 238
:catchall_40
move-exception v0
iget-object v1, p0, Lio/reactivex/subscribers/TestSubscriber;->done:Ljava/util/concurrent/CountDownLatch;
invoke-virtual {v1}, Ljava/util/concurrent/CountDownLatch;->countDown()V
throw v0
.end method
.method public onNext(Ljava/lang/Object;)V
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(TT;)V"
}
.end annotation
.line 190
.local p0, "this":Lio/reactivex/subscribers/TestSubscriber;, "Lio/reactivex/subscribers/TestSubscriber<TT;>;"
.local p1, "t":Ljava/lang/Object;, "TT;"
iget-boolean v0, p0, Lio/reactivex/subscribers/TestSubscriber;->checkSubscriptionOnce:Z
if-nez v0, :cond_1b
.line 191
const/4 v0, 0x1
iput-boolean v0, p0, Lio/reactivex/subscribers/TestSubscriber;->checkSubscriptionOnce:Z
.line 192
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
if-nez v0, :cond_1b
.line 193
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->errors:Ljava/util/List;
new-instance v1, Ljava/lang/IllegalStateException;
const-string v2, "onSubscribe not called in proper order"
invoke-direct {v1, v2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 196
:cond_1b
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
iput-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->lastThread:Ljava/lang/Thread;
.line 198
iget v0, p0, Lio/reactivex/subscribers/TestSubscriber;->establishedFusionMode:I
const/4 v1, 0x2
if-ne v0, v1, :cond_42
.line 200
:goto_26
:try_start_26
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->qs:Lio/reactivex/internal/fuseable/QueueSubscription;
invoke-interface {v0}, Lio/reactivex/internal/fuseable/QueueSubscription;->poll()Ljava/lang/Object;
move-result-object v0
move-object p1, v0
if-eqz v0, :cond_35
.line 201
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->values:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
:try_end_34
.catchall {:try_start_26 .. :try_end_34} :catchall_36
goto :goto_26
.line 207
:cond_35
goto :goto_41
.line 203
:catchall_36
move-exception v0
.line 205
.local v0, "ex":Ljava/lang/Throwable;
iget-object v1, p0, Lio/reactivex/subscribers/TestSubscriber;->errors:Ljava/util/List;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 206
iget-object v1, p0, Lio/reactivex/subscribers/TestSubscriber;->qs:Lio/reactivex/internal/fuseable/QueueSubscription;
invoke-interface {v1}, Lio/reactivex/internal/fuseable/QueueSubscription;->cancel()V
.line 208
.end local v0 # "ex":Ljava/lang/Throwable;
:goto_41
return-void
.line 211
:cond_42
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->values:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 213
if-nez p1, :cond_55
.line 214
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->errors:Ljava/util/List;
new-instance v1, Ljava/lang/NullPointerException;
const-string v2, "onNext received a null value"
invoke-direct {v1, v2}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 217
:cond_55
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->actual:Lorg/reactivestreams/Subscriber;
invoke-interface {v0, p1}, Lorg/reactivestreams/Subscriber;->onNext(Ljava/lang/Object;)V
.line 218
return-void
.end method
.method protected onStart()V
.registers 1
.line 186
.local p0, "this":Lio/reactivex/subscribers/TestSubscriber;, "Lio/reactivex/subscribers/TestSubscriber<TT;>;"
return-void
.end method
.method public onSubscribe(Lorg/reactivestreams/Subscription;)V
.registers 9
.param p1, "s" # Lorg/reactivestreams/Subscription;
.line 131
.local p0, "this":Lio/reactivex/subscribers/TestSubscriber;, "Lio/reactivex/subscribers/TestSubscriber<TT;>;"
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
iput-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->lastThread:Ljava/lang/Thread;
.line 133
if-nez p1, :cond_15
.line 134
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->errors:Ljava/util/List;
new-instance v1, Ljava/lang/NullPointerException;
const-string v2, "onSubscribe received a null Subscription"
invoke-direct {v1, v2}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 135
return-void
.line 137
:cond_15
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
const/4 v1, 0x0
invoke-virtual {v0, v1, p1}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_47
.line 138
invoke-interface {p1}, Lorg/reactivestreams/Subscription;->cancel()V
.line 139
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
sget-object v1, Lio/reactivex/internal/subscriptions/SubscriptionHelper;->CANCELLED:Lio/reactivex/internal/subscriptions/SubscriptionHelper;
if-eq v0, v1, :cond_46
.line 140
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->errors:Ljava/util/List;
new-instance v1, Ljava/lang/IllegalStateException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "onSubscribe received multiple subscriptions: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 142
:cond_46
return-void
.line 145
:cond_47
iget v0, p0, Lio/reactivex/subscribers/TestSubscriber;->initialFusionMode:I
if-eqz v0, :cond_85
.line 146
instance-of v0, p1, Lio/reactivex/internal/fuseable/QueueSubscription;
if-eqz v0, :cond_85
.line 147
move-object v0, p1
check-cast v0, Lio/reactivex/internal/fuseable/QueueSubscription;
iput-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->qs:Lio/reactivex/internal/fuseable/QueueSubscription;
.line 149
iget v1, p0, Lio/reactivex/subscribers/TestSubscriber;->initialFusionMode:I
invoke-interface {v0, v1}, Lio/reactivex/internal/fuseable/QueueSubscription;->requestFusion(I)I
move-result v0
.line 150
.local v0, "m":I
iput v0, p0, Lio/reactivex/subscribers/TestSubscriber;->establishedFusionMode:I
.line 152
const/4 v1, 0x1
if-ne v0, v1, :cond_85
.line 153
iput-boolean v1, p0, Lio/reactivex/subscribers/TestSubscriber;->checkSubscriptionOnce:Z
.line 154
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v1
iput-object v1, p0, Lio/reactivex/subscribers/TestSubscriber;->lastThread:Ljava/lang/Thread;
.line 157
:goto_67
:try_start_67
iget-object v1, p0, Lio/reactivex/subscribers/TestSubscriber;->qs:Lio/reactivex/internal/fuseable/QueueSubscription;
invoke-interface {v1}, Lio/reactivex/internal/fuseable/QueueSubscription;->poll()Ljava/lang/Object;
move-result-object v1
move-object v2, v1
.local v2, "t":Ljava/lang/Object;, "TT;"
if-eqz v1, :cond_76
.line 158
iget-object v1, p0, Lio/reactivex/subscribers/TestSubscriber;->values:Ljava/util/List;
invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_67
.line 160
:cond_76
iget-wide v3, p0, Lio/reactivex/subscribers/TestSubscriber;->completions:J
const-wide/16 v5, 0x1
add-long/2addr v3, v5
iput-wide v3, p0, Lio/reactivex/subscribers/TestSubscriber;->completions:J
:try_end_7d
.catchall {:try_start_67 .. :try_end_7d} :catchall_7e
.line 164
.end local v2 # "t":Ljava/lang/Object;, "TT;"
goto :goto_84
.line 161
:catchall_7e
move-exception v1
.line 163
.local v1, "ex":Ljava/lang/Throwable;
iget-object v2, p0, Lio/reactivex/subscribers/TestSubscriber;->errors:Ljava/util/List;
invoke-interface {v2, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 165
.end local v1 # "ex":Ljava/lang/Throwable;
:goto_84
return-void
.line 171
.end local v0 # "m":I
:cond_85
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->actual:Lorg/reactivestreams/Subscriber;
invoke-interface {v0, p1}, Lorg/reactivestreams/Subscriber;->onSubscribe(Lorg/reactivestreams/Subscription;)V
.line 173
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->missedRequested:Ljava/util/concurrent/atomic/AtomicLong;
const-wide/16 v1, 0x0
invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicLong;->getAndSet(J)J
move-result-wide v3
.line 174
.local v3, "mr":J
cmp-long v0, v3, v1
if-eqz v0, :cond_99
.line 175
invoke-interface {p1, v3, v4}, Lorg/reactivestreams/Subscription;->request(J)V
.line 178
:cond_99
invoke-virtual {p0}, Lio/reactivex/subscribers/TestSubscriber;->onStart()V
.line 179
return-void
.end method
.method public final request(J)V
.registers 5
.param p1, "n" # J
.line 262
.local p0, "this":Lio/reactivex/subscribers/TestSubscriber;, "Lio/reactivex/subscribers/TestSubscriber<TT;>;"
iget-object v0, p0, Lio/reactivex/subscribers/TestSubscriber;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
iget-object v1, p0, Lio/reactivex/subscribers/TestSubscriber;->missedRequested:Ljava/util/concurrent/atomic/AtomicLong;
invoke-static {v0, v1, p1, p2}, Lio/reactivex/internal/subscriptions/SubscriptionHelper;->deferredRequest(Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/atomic/AtomicLong;J)V
.line 263
return-void
.end method
.method public final requestMore(J)Lio/reactivex/subscribers/TestSubscriber;
.registers 3
.param p1, "n" # J
.annotation system Ldalvik/annotation/Signature;
value = {
"(J)",
"Lio/reactivex/subscribers/TestSubscriber<",
"TT;>;"
}
.end annotation
.line 419
.local p0, "this":Lio/reactivex/subscribers/TestSubscriber;, "Lio/reactivex/subscribers/TestSubscriber<TT;>;"
invoke-virtual {p0, p1, p2}, Lio/reactivex/subscribers/TestSubscriber;->request(J)V
.line 420
return-object p0
.end method
.method final setInitialFusionMode(I)Lio/reactivex/subscribers/TestSubscriber;
.registers 2
.param p1, "mode" # I
.annotation system Ldalvik/annotation/Signature;
value = {
"(I)",
"Lio/reactivex/subscribers/TestSubscriber<",
"TT;>;"
}
.end annotation
.line 338
.local p0, "this":Lio/reactivex/subscribers/TestSubscriber;, "Lio/reactivex/subscribers/TestSubscriber<TT;>;"
iput p1, p0, Lio/reactivex/subscribers/TestSubscriber;->initialFusionMode:I
.line 339
return-object p0
.end method