DisposableHelper.smali 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432
  1. .class public final enum Lio/reactivex/internal/disposables/DisposableHelper;
  2. .super Ljava/lang/Enum;
  3. .source "DisposableHelper.java"
  4. # interfaces
  5. .implements Lio/reactivex/disposables/Disposable;
  6. # annotations
  7. .annotation system Ldalvik/annotation/Signature;
  8. value = {
  9. "Ljava/lang/Enum<",
  10. "Lio/reactivex/internal/disposables/DisposableHelper;",
  11. ">;",
  12. "Lio/reactivex/disposables/Disposable;"
  13. }
  14. .end annotation
  15. # static fields
  16. .field private static final synthetic $VALUES:[Lio/reactivex/internal/disposables/DisposableHelper;
  17. .field public static final enum DISPOSED:Lio/reactivex/internal/disposables/DisposableHelper;
  18. # direct methods
  19. .method static constructor <clinit>()V
  20. .locals 3
  21. .line 29
  22. new-instance v0, Lio/reactivex/internal/disposables/DisposableHelper;
  23. const/4 v1, 0x0
  24. const-string v2, "DISPOSED"
  25. invoke-direct {v0, v2, v1}, Lio/reactivex/internal/disposables/DisposableHelper;-><init>(Ljava/lang/String;I)V
  26. sput-object v0, Lio/reactivex/internal/disposables/DisposableHelper;->DISPOSED:Lio/reactivex/internal/disposables/DisposableHelper;
  27. const/4 v0, 0x1
  28. .line 25
  29. new-array v0, v0, [Lio/reactivex/internal/disposables/DisposableHelper;
  30. sget-object v2, Lio/reactivex/internal/disposables/DisposableHelper;->DISPOSED:Lio/reactivex/internal/disposables/DisposableHelper;
  31. aput-object v2, v0, v1
  32. sput-object v0, Lio/reactivex/internal/disposables/DisposableHelper;->$VALUES:[Lio/reactivex/internal/disposables/DisposableHelper;
  33. return-void
  34. .end method
  35. .method private constructor <init>(Ljava/lang/String;I)V
  36. .locals 0
  37. .annotation system Ldalvik/annotation/Signature;
  38. value = {
  39. "()V"
  40. }
  41. .end annotation
  42. .line 25
  43. invoke-direct {p0, p1, p2}, Ljava/lang/Enum;-><init>(Ljava/lang/String;I)V
  44. return-void
  45. .end method
  46. .method public static dispose(Ljava/util/concurrent/atomic/AtomicReference;)Z
  47. .locals 2
  48. .annotation system Ldalvik/annotation/Signature;
  49. value = {
  50. "(",
  51. "Ljava/util/concurrent/atomic/AtomicReference<",
  52. "Lio/reactivex/disposables/Disposable;",
  53. ">;)Z"
  54. }
  55. .end annotation
  56. .line 117
  57. invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
  58. move-result-object v0
  59. check-cast v0, Lio/reactivex/disposables/Disposable;
  60. .line 118
  61. sget-object v1, Lio/reactivex/internal/disposables/DisposableHelper;->DISPOSED:Lio/reactivex/internal/disposables/DisposableHelper;
  62. if-eq v0, v1, :cond_1
  63. .line 120
  64. invoke-virtual {p0, v1}, Ljava/util/concurrent/atomic/AtomicReference;->getAndSet(Ljava/lang/Object;)Ljava/lang/Object;
  65. move-result-object p0
  66. check-cast p0, Lio/reactivex/disposables/Disposable;
  67. if-eq p0, v1, :cond_1
  68. if-eqz p0, :cond_0
  69. .line 123
  70. invoke-interface {p0}, Lio/reactivex/disposables/Disposable;->dispose()V
  71. :cond_0
  72. const/4 p0, 0x1
  73. return p0
  74. :cond_1
  75. const/4 p0, 0x0
  76. return p0
  77. .end method
  78. .method public static isDisposed(Lio/reactivex/disposables/Disposable;)Z
  79. .locals 1
  80. .line 38
  81. sget-object v0, Lio/reactivex/internal/disposables/DisposableHelper;->DISPOSED:Lio/reactivex/internal/disposables/DisposableHelper;
  82. if-ne p0, v0, :cond_0
  83. const/4 p0, 0x1
  84. goto :goto_0
  85. :cond_0
  86. const/4 p0, 0x0
  87. :goto_0
  88. return p0
  89. .end method
  90. .method public static replace(Ljava/util/concurrent/atomic/AtomicReference;Lio/reactivex/disposables/Disposable;)Z
  91. .locals 2
  92. .annotation system Ldalvik/annotation/Signature;
  93. value = {
  94. "(",
  95. "Ljava/util/concurrent/atomic/AtomicReference<",
  96. "Lio/reactivex/disposables/Disposable;",
  97. ">;",
  98. "Lio/reactivex/disposables/Disposable;",
  99. ")Z"
  100. }
  101. .end annotation
  102. .line 98
  103. :cond_0
  104. invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
  105. move-result-object v0
  106. check-cast v0, Lio/reactivex/disposables/Disposable;
  107. .line 99
  108. sget-object v1, Lio/reactivex/internal/disposables/DisposableHelper;->DISPOSED:Lio/reactivex/internal/disposables/DisposableHelper;
  109. if-ne v0, v1, :cond_2
  110. if-eqz p1, :cond_1
  111. .line 101
  112. invoke-interface {p1}, Lio/reactivex/disposables/Disposable;->dispose()V
  113. :cond_1
  114. const/4 p0, 0x0
  115. return p0
  116. .line 105
  117. :cond_2
  118. invoke-virtual {p0, v0, p1}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
  119. move-result v0
  120. if-eqz v0, :cond_0
  121. const/4 p0, 0x1
  122. return p0
  123. .end method
  124. .method public static reportDisposableSet()V
  125. .locals 2
  126. .line 155
  127. new-instance v0, Ljava/lang/IllegalStateException;
  128. const-string v1, "Disposable already set!"
  129. invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
  130. invoke-static {v0}, Lio/reactivex/plugins/RxJavaPlugins;->onError(Ljava/lang/Throwable;)V
  131. return-void
  132. .end method
  133. .method public static set(Ljava/util/concurrent/atomic/AtomicReference;Lio/reactivex/disposables/Disposable;)Z
  134. .locals 2
  135. .annotation system Ldalvik/annotation/Signature;
  136. value = {
  137. "(",
  138. "Ljava/util/concurrent/atomic/AtomicReference<",
  139. "Lio/reactivex/disposables/Disposable;",
  140. ">;",
  141. "Lio/reactivex/disposables/Disposable;",
  142. ")Z"
  143. }
  144. .end annotation
  145. .line 49
  146. :cond_0
  147. invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
  148. move-result-object v0
  149. check-cast v0, Lio/reactivex/disposables/Disposable;
  150. .line 50
  151. sget-object v1, Lio/reactivex/internal/disposables/DisposableHelper;->DISPOSED:Lio/reactivex/internal/disposables/DisposableHelper;
  152. if-ne v0, v1, :cond_2
  153. if-eqz p1, :cond_1
  154. .line 52
  155. invoke-interface {p1}, Lio/reactivex/disposables/Disposable;->dispose()V
  156. :cond_1
  157. const/4 p0, 0x0
  158. return p0
  159. .line 56
  160. :cond_2
  161. invoke-virtual {p0, v0, p1}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
  162. move-result v1
  163. if-eqz v1, :cond_0
  164. if-eqz v0, :cond_3
  165. .line 58
  166. invoke-interface {v0}, Lio/reactivex/disposables/Disposable;->dispose()V
  167. :cond_3
  168. const/4 p0, 0x1
  169. return p0
  170. .end method
  171. .method public static setOnce(Ljava/util/concurrent/atomic/AtomicReference;Lio/reactivex/disposables/Disposable;)Z
  172. .locals 1
  173. .annotation system Ldalvik/annotation/Signature;
  174. value = {
  175. "(",
  176. "Ljava/util/concurrent/atomic/AtomicReference<",
  177. "Lio/reactivex/disposables/Disposable;",
  178. ">;",
  179. "Lio/reactivex/disposables/Disposable;",
  180. ")Z"
  181. }
  182. .end annotation
  183. const-string v0, "d is null"
  184. .line 77
  185. invoke-static {p1, v0}, Lio/reactivex/internal/functions/ObjectHelper;->requireNonNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
  186. const/4 v0, 0x0
  187. .line 78
  188. invoke-virtual {p0, v0, p1}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
  189. move-result v0
  190. if-nez v0, :cond_1
  191. .line 79
  192. invoke-interface {p1}, Lio/reactivex/disposables/Disposable;->dispose()V
  193. .line 80
  194. invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
  195. move-result-object p0
  196. sget-object p1, Lio/reactivex/internal/disposables/DisposableHelper;->DISPOSED:Lio/reactivex/internal/disposables/DisposableHelper;
  197. if-eq p0, p1, :cond_0
  198. .line 81
  199. invoke-static {}, Lio/reactivex/internal/disposables/DisposableHelper;->reportDisposableSet()V
  200. :cond_0
  201. const/4 p0, 0x0
  202. return p0
  203. :cond_1
  204. const/4 p0, 0x1
  205. return p0
  206. .end method
  207. .method public static trySet(Ljava/util/concurrent/atomic/AtomicReference;Lio/reactivex/disposables/Disposable;)Z
  208. .locals 1
  209. .annotation system Ldalvik/annotation/Signature;
  210. value = {
  211. "(",
  212. "Ljava/util/concurrent/atomic/AtomicReference<",
  213. "Lio/reactivex/disposables/Disposable;",
  214. ">;",
  215. "Lio/reactivex/disposables/Disposable;",
  216. ")Z"
  217. }
  218. .end annotation
  219. const/4 v0, 0x0
  220. .line 166
  221. invoke-virtual {p0, v0, p1}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
  222. move-result v0
  223. if-nez v0, :cond_1
  224. .line 167
  225. invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
  226. move-result-object p0
  227. sget-object v0, Lio/reactivex/internal/disposables/DisposableHelper;->DISPOSED:Lio/reactivex/internal/disposables/DisposableHelper;
  228. if-ne p0, v0, :cond_0
  229. .line 168
  230. invoke-interface {p1}, Lio/reactivex/disposables/Disposable;->dispose()V
  231. :cond_0
  232. const/4 p0, 0x0
  233. return p0
  234. :cond_1
  235. const/4 p0, 0x1
  236. return p0
  237. .end method
  238. .method public static validate(Lio/reactivex/disposables/Disposable;Lio/reactivex/disposables/Disposable;)Z
  239. .locals 1
  240. const/4 v0, 0x0
  241. if-nez p1, :cond_0
  242. .line 140
  243. new-instance p0, Ljava/lang/NullPointerException;
  244. const-string p1, "next is null"
  245. invoke-direct {p0, p1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
  246. invoke-static {p0}, Lio/reactivex/plugins/RxJavaPlugins;->onError(Ljava/lang/Throwable;)V
  247. return v0
  248. :cond_0
  249. if-eqz p0, :cond_1
  250. .line 144
  251. invoke-interface {p1}, Lio/reactivex/disposables/Disposable;->dispose()V
  252. .line 145
  253. invoke-static {}, Lio/reactivex/internal/disposables/DisposableHelper;->reportDisposableSet()V
  254. return v0
  255. :cond_1
  256. const/4 p0, 0x1
  257. return p0
  258. .end method
  259. .method public static valueOf(Ljava/lang/String;)Lio/reactivex/internal/disposables/DisposableHelper;
  260. .locals 1
  261. .line 25
  262. const-class v0, Lio/reactivex/internal/disposables/DisposableHelper;
  263. invoke-static {v0, p0}, Ljava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
  264. move-result-object p0
  265. check-cast p0, Lio/reactivex/internal/disposables/DisposableHelper;
  266. return-object p0
  267. .end method
  268. .method public static values()[Lio/reactivex/internal/disposables/DisposableHelper;
  269. .locals 1
  270. .line 25
  271. sget-object v0, Lio/reactivex/internal/disposables/DisposableHelper;->$VALUES:[Lio/reactivex/internal/disposables/DisposableHelper;
  272. invoke-virtual {v0}, [Lio/reactivex/internal/disposables/DisposableHelper;->clone()Ljava/lang/Object;
  273. move-result-object v0
  274. check-cast v0, [Lio/reactivex/internal/disposables/DisposableHelper;
  275. return-object v0
  276. .end method
  277. # virtual methods
  278. .method public dispose()V
  279. .locals 0
  280. return-void
  281. .end method
  282. .method public isDisposed()Z
  283. .locals 1
  284. const/4 v0, 0x1
  285. return v0
  286. .end method