a.smali
.class public final Lrx/c/a/a;
.super Ljava/lang/Object;
.source "SourceFile"
# direct methods
.method public static a(JJ)J
.registers 11
mul-long v0, p0, p2
or-long v2, p0, p2
const/16 v4, 0x1f
ushr-long/2addr v2, v4
const-wide/16 v4, 0x0
cmp-long v6, v2, v4
if-eqz v6, :cond_1c
cmp-long v2, p2, v4
if-eqz v2, :cond_1c
.line 102
div-long p2, v0, p2
cmp-long v2, p2, p0
if-eqz v2, :cond_1c
const-wide v0, 0x7fffffffffffffffL
:cond_1c
return-wide v0
.end method
.method public static a(Ljava/util/concurrent/atomic/AtomicLong;J)J
.registers 7
.line 85
:cond_0
invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicLong;->get()J
move-result-wide v0
.line 86
invoke-static {v0, v1, p1, p2}, Lrx/c/a/a;->b(JJ)J
move-result-wide v2
.line 87
invoke-virtual {p0, v0, v1, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;->compareAndSet(JJ)Z
move-result v2
if-eqz v2, :cond_0
return-wide v0
.end method
.method static a(Ljava/util/concurrent/atomic/AtomicLong;Ljava/util/Queue;Lrx/i;Lrx/b/f;)V
.registers 14
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
"R:",
"Ljava/lang/Object;",
">(",
"Ljava/util/concurrent/atomic/AtomicLong;",
"Ljava/util/Queue<",
"TT;>;",
"Lrx/i<",
"-TR;>;",
"Lrx/b/f<",
"-TT;+TR;>;)V"
}
.end annotation
.line 294
invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicLong;->get()J
move-result-wide v0
const-wide v2, 0x7fffffffffffffffL
cmp-long v4, v0, v2
if-nez v4, :cond_26
.line 299
:goto_d
invoke-virtual {p2}, Lrx/i;->isUnsubscribed()Z
move-result p0
if-eqz p0, :cond_14
return-void
.line 303
:cond_14
invoke-interface {p1}, Ljava/util/Queue;->poll()Ljava/lang/Object;
move-result-object p0
if-nez p0, :cond_1e
.line 306
invoke-virtual {p2}, Lrx/i;->a()V
return-void
.line 310
:cond_1e
invoke-interface {p3, p0}, Lrx/b/f;->call(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
invoke-virtual {p2, p0}, Lrx/i;->a(Ljava/lang/Object;)V
goto :goto_d
:cond_26
const-wide/high16 v4, -0x8000000000000000L
:cond_28
move-wide v6, v4
:cond_29
:goto_29
cmp-long v8, v6, v0
if-eqz v8, :cond_49
.line 337
invoke-virtual {p2}, Lrx/i;->isUnsubscribed()Z
move-result v8
if-eqz v8, :cond_34
return-void
.line 341
:cond_34
invoke-interface {p1}, Ljava/util/Queue;->poll()Ljava/lang/Object;
move-result-object v8
if-nez v8, :cond_3e
.line 344
invoke-virtual {p2}, Lrx/i;->a()V
return-void
.line 348
:cond_3e
invoke-interface {p3, v8}, Lrx/b/f;->call(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v8
invoke-virtual {p2, v8}, Lrx/i;->a(Ljava/lang/Object;)V
const-wide/16 v8, 0x1
add-long/2addr v6, v8
goto :goto_29
:cond_49
cmp-long v8, v6, v0
if-nez v8, :cond_5e
.line 360
invoke-virtual {p2}, Lrx/i;->isUnsubscribed()Z
move-result v0
if-eqz v0, :cond_54
return-void
.line 363
:cond_54
invoke-interface {p1}, Ljava/util/Queue;->isEmpty()Z
move-result v0
if-eqz v0, :cond_5e
.line 364
invoke-virtual {p2}, Lrx/i;->a()V
return-void
.line 373
:cond_5e
invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicLong;->get()J
move-result-wide v0
cmp-long v8, v0, v6
if-nez v8, :cond_29
and-long v0, v6, v2
neg-long v0, v0
.line 382
invoke-virtual {p0, v0, v1}, Ljava/util/concurrent/atomic/AtomicLong;->addAndGet(J)J
move-result-wide v0
cmp-long v6, v0, v4
if-nez v6, :cond_28
return-void
.end method
.method public static b(JJ)J
.registers 5
add-long/2addr p0, p2
const-wide/16 p2, 0x0
cmp-long v0, p0, p2
if-gez v0, :cond_c
const-wide p0, 0x7fffffffffffffffL
:cond_c
return-wide p0
.end method
.method public static b(Ljava/util/concurrent/atomic/AtomicLong;J)J
.registers 10
.line 403
:cond_0
invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicLong;->get()J
move-result-wide v0
const-wide v2, 0x7fffffffffffffffL
cmp-long v4, v0, v2
if-nez v4, :cond_e
return-wide v2
:cond_e
sub-long v2, v0, p1
const-wide/16 v4, 0x0
cmp-long v6, v2, v4
if-ltz v6, :cond_1d
.line 411
invoke-virtual {p0, v0, v1, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;->compareAndSet(JJ)Z
move-result v0
if-eqz v0, :cond_0
return-wide v2
.line 409
:cond_1d
new-instance p0, Ljava/lang/IllegalStateException;
invoke-static {v2, v3}, Ljava/lang/String;->valueOf(J)Ljava/lang/String;
move-result-object p1
const-string p2, "More produced than requested: "
invoke-virtual {p2, p1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
invoke-direct {p0, p1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
goto :goto_2e
:goto_2d
throw p0
:goto_2e
goto :goto_2d
.end method