SerialDisposable.smali 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. .class public final Lio/reactivex/disposables/SerialDisposable;
  2. .super Ljava/lang/Object;
  3. .source "SerialDisposable.java"
  4. # interfaces
  5. .implements Lio/reactivex/disposables/Disposable;
  6. # instance fields
  7. .field final resource:Ljava/util/concurrent/atomic/AtomicReference;
  8. .annotation system Ldalvik/annotation/Signature;
  9. value = {
  10. "Ljava/util/concurrent/atomic/AtomicReference<",
  11. "Lio/reactivex/disposables/Disposable;",
  12. ">;"
  13. }
  14. .end annotation
  15. .end field
  16. # direct methods
  17. .method public constructor <init>()V
  18. .locals 1
  19. .line 31
  20. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  21. .line 32
  22. new-instance v0, Ljava/util/concurrent/atomic/AtomicReference;
  23. invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicReference;-><init>()V
  24. iput-object v0, p0, Lio/reactivex/disposables/SerialDisposable;->resource:Ljava/util/concurrent/atomic/AtomicReference;
  25. return-void
  26. .end method
  27. .method public constructor <init>(Lio/reactivex/disposables/Disposable;)V
  28. .locals 1
  29. .line 39
  30. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  31. .line 40
  32. new-instance v0, Ljava/util/concurrent/atomic/AtomicReference;
  33. invoke-direct {v0, p1}, Ljava/util/concurrent/atomic/AtomicReference;-><init>(Ljava/lang/Object;)V
  34. iput-object v0, p0, Lio/reactivex/disposables/SerialDisposable;->resource:Ljava/util/concurrent/atomic/AtomicReference;
  35. return-void
  36. .end method
  37. # virtual methods
  38. .method public dispose()V
  39. .locals 1
  40. .line 79
  41. iget-object v0, p0, Lio/reactivex/disposables/SerialDisposable;->resource:Ljava/util/concurrent/atomic/AtomicReference;
  42. invoke-static {v0}, Lio/reactivex/internal/disposables/DisposableHelper;->dispose(Ljava/util/concurrent/atomic/AtomicReference;)Z
  43. return-void
  44. .end method
  45. .method public get()Lio/reactivex/disposables/Disposable;
  46. .locals 2
  47. .line 70
  48. iget-object v0, p0, Lio/reactivex/disposables/SerialDisposable;->resource:Ljava/util/concurrent/atomic/AtomicReference;
  49. invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
  50. move-result-object v0
  51. check-cast v0, Lio/reactivex/disposables/Disposable;
  52. .line 71
  53. sget-object v1, Lio/reactivex/internal/disposables/DisposableHelper;->DISPOSED:Lio/reactivex/internal/disposables/DisposableHelper;
  54. if-ne v0, v1, :cond_0
  55. .line 72
  56. invoke-static {}, Lio/reactivex/disposables/Disposables;->disposed()Lio/reactivex/disposables/Disposable;
  57. move-result-object v0
  58. :cond_0
  59. return-object v0
  60. .end method
  61. .method public isDisposed()Z
  62. .locals 1
  63. .line 84
  64. iget-object v0, p0, Lio/reactivex/disposables/SerialDisposable;->resource:Ljava/util/concurrent/atomic/AtomicReference;
  65. invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
  66. move-result-object v0
  67. check-cast v0, Lio/reactivex/disposables/Disposable;
  68. invoke-static {v0}, Lio/reactivex/internal/disposables/DisposableHelper;->isDisposed(Lio/reactivex/disposables/Disposable;)Z
  69. move-result v0
  70. return v0
  71. .end method
  72. .method public replace(Lio/reactivex/disposables/Disposable;)Z
  73. .locals 1
  74. .line 62
  75. iget-object v0, p0, Lio/reactivex/disposables/SerialDisposable;->resource:Ljava/util/concurrent/atomic/AtomicReference;
  76. invoke-static {v0, p1}, Lio/reactivex/internal/disposables/DisposableHelper;->replace(Ljava/util/concurrent/atomic/AtomicReference;Lio/reactivex/disposables/Disposable;)Z
  77. move-result p1
  78. return p1
  79. .end method
  80. .method public set(Lio/reactivex/disposables/Disposable;)Z
  81. .locals 1
  82. .line 51
  83. iget-object v0, p0, Lio/reactivex/disposables/SerialDisposable;->resource:Ljava/util/concurrent/atomic/AtomicReference;
  84. invoke-static {v0, p1}, Lio/reactivex/internal/disposables/DisposableHelper;->set(Ljava/util/concurrent/atomic/AtomicReference;Lio/reactivex/disposables/Disposable;)Z
  85. move-result p1
  86. return p1
  87. .end method