PushableTimeout.smali
4.0 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
.class final Lcom/brplug/okio/PushableTimeout;
.super Lcom/brplug/okio/Timeout;
.source "PushableTimeout.java"
# instance fields
.field private originalDeadlineNanoTime:J
.field private originalHasDeadline:Z
.field private originalTimeoutNanos:J
.field private pushed:Lcom/brplug/okio/Timeout;
# direct methods
.method constructor <init>()V
.locals 0
.line 26
invoke-direct {p0}, Lcom/brplug/okio/Timeout;-><init>()V
return-void
.end method
# virtual methods
.method pop()V
.locals 4
.line 48
iget-object v0, p0, Lcom/brplug/okio/PushableTimeout;->pushed:Lcom/brplug/okio/Timeout;
iget-wide v1, p0, Lcom/brplug/okio/PushableTimeout;->originalTimeoutNanos:J
sget-object v3, Ljava/util/concurrent/TimeUnit;->NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invoke-virtual {v0, v1, v2, v3}, Lcom/brplug/okio/Timeout;->timeout(JLjava/util/concurrent/TimeUnit;)Lcom/brplug/okio/Timeout;
.line 50
iget-boolean v0, p0, Lcom/brplug/okio/PushableTimeout;->originalHasDeadline:Z
if-eqz v0, :cond_0
.line 51
iget-object v0, p0, Lcom/brplug/okio/PushableTimeout;->pushed:Lcom/brplug/okio/Timeout;
iget-wide v1, p0, Lcom/brplug/okio/PushableTimeout;->originalDeadlineNanoTime:J
invoke-virtual {v0, v1, v2}, Lcom/brplug/okio/Timeout;->deadlineNanoTime(J)Lcom/brplug/okio/Timeout;
goto :goto_0
.line 53
:cond_0
iget-object v0, p0, Lcom/brplug/okio/PushableTimeout;->pushed:Lcom/brplug/okio/Timeout;
invoke-virtual {v0}, Lcom/brplug/okio/Timeout;->clearDeadline()Lcom/brplug/okio/Timeout;
:goto_0
return-void
.end method
.method push(Lcom/brplug/okio/Timeout;)V
.locals 4
.line 33
iput-object p1, p0, Lcom/brplug/okio/PushableTimeout;->pushed:Lcom/brplug/okio/Timeout;
.line 34
invoke-virtual {p1}, Lcom/brplug/okio/Timeout;->hasDeadline()Z
move-result v0
iput-boolean v0, p0, Lcom/brplug/okio/PushableTimeout;->originalHasDeadline:Z
.line 35
iget-boolean v0, p0, Lcom/brplug/okio/PushableTimeout;->originalHasDeadline:Z
if-eqz v0, :cond_0
invoke-virtual {p1}, Lcom/brplug/okio/Timeout;->deadlineNanoTime()J
move-result-wide v0
goto :goto_0
:cond_0
const-wide/16 v0, -0x1
:goto_0
iput-wide v0, p0, Lcom/brplug/okio/PushableTimeout;->originalDeadlineNanoTime:J
.line 36
invoke-virtual {p1}, Lcom/brplug/okio/Timeout;->timeoutNanos()J
move-result-wide v0
iput-wide v0, p0, Lcom/brplug/okio/PushableTimeout;->originalTimeoutNanos:J
.line 38
iget-wide v0, p0, Lcom/brplug/okio/PushableTimeout;->originalTimeoutNanos:J
invoke-virtual {p0}, Lcom/brplug/okio/PushableTimeout;->timeoutNanos()J
move-result-wide v2
invoke-static {v0, v1, v2, v3}, Lcom/brplug/okio/PushableTimeout;->minTimeout(JJ)J
move-result-wide v0
sget-object v2, Ljava/util/concurrent/TimeUnit;->NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invoke-virtual {p1, v0, v1, v2}, Lcom/brplug/okio/Timeout;->timeout(JLjava/util/concurrent/TimeUnit;)Lcom/brplug/okio/Timeout;
.line 40
iget-boolean v0, p0, Lcom/brplug/okio/PushableTimeout;->originalHasDeadline:Z
if-eqz v0, :cond_1
invoke-virtual {p0}, Lcom/brplug/okio/PushableTimeout;->hasDeadline()Z
move-result v0
if-eqz v0, :cond_1
.line 41
invoke-virtual {p0}, Lcom/brplug/okio/PushableTimeout;->deadlineNanoTime()J
move-result-wide v0
iget-wide v2, p0, Lcom/brplug/okio/PushableTimeout;->originalDeadlineNanoTime:J
invoke-static {v0, v1, v2, v3}, Ljava/lang/Math;->min(JJ)J
move-result-wide v0
invoke-virtual {p1, v0, v1}, Lcom/brplug/okio/Timeout;->deadlineNanoTime(J)Lcom/brplug/okio/Timeout;
goto :goto_1
.line 42
:cond_1
invoke-virtual {p0}, Lcom/brplug/okio/PushableTimeout;->hasDeadline()Z
move-result v0
if-eqz v0, :cond_2
.line 43
invoke-virtual {p0}, Lcom/brplug/okio/PushableTimeout;->deadlineNanoTime()J
move-result-wide v0
invoke-virtual {p1, v0, v1}, Lcom/brplug/okio/Timeout;->deadlineNanoTime(J)Lcom/brplug/okio/Timeout;
:cond_2
:goto_1
return-void
.end method