MergerBiFunction.smali 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  1. .class public final Lio/reactivex/internal/util/MergerBiFunction;
  2. .super Ljava/lang/Object;
  3. .source "MergerBiFunction.java"
  4. # interfaces
  5. .implements Lio/reactivex/functions/BiFunction;
  6. # annotations
  7. .annotation system Ldalvik/annotation/Signature;
  8. value = {
  9. "<T:",
  10. "Ljava/lang/Object;",
  11. ">",
  12. "Ljava/lang/Object;",
  13. "Lio/reactivex/functions/BiFunction<",
  14. "Ljava/util/List<",
  15. "TT;>;",
  16. "Ljava/util/List<",
  17. "TT;>;",
  18. "Ljava/util/List<",
  19. "TT;>;>;"
  20. }
  21. .end annotation
  22. # instance fields
  23. .field comparator:Ljava/util/Comparator;
  24. .annotation system Ldalvik/annotation/Signature;
  25. value = {
  26. "Ljava/util/Comparator<",
  27. "-TT;>;"
  28. }
  29. .end annotation
  30. .end field
  31. # direct methods
  32. .method public constructor <init>(Ljava/util/Comparator;)V
  33. .locals 0
  34. .annotation system Ldalvik/annotation/Signature;
  35. value = {
  36. "(",
  37. "Ljava/util/Comparator<",
  38. "-TT;>;)V"
  39. }
  40. .end annotation
  41. .line 28
  42. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  43. .line 29
  44. iput-object p1, p0, Lio/reactivex/internal/util/MergerBiFunction;->comparator:Ljava/util/Comparator;
  45. return-void
  46. .end method
  47. # virtual methods
  48. .method public bridge synthetic apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
  49. .locals 0
  50. .annotation system Ldalvik/annotation/Throws;
  51. value = {
  52. Ljava/lang/Exception;
  53. }
  54. .end annotation
  55. .line 24
  56. check-cast p1, Ljava/util/List;
  57. check-cast p2, Ljava/util/List;
  58. invoke-virtual {p0, p1, p2}, Lio/reactivex/internal/util/MergerBiFunction;->apply(Ljava/util/List;Ljava/util/List;)Ljava/util/List;
  59. move-result-object p1
  60. return-object p1
  61. .end method
  62. .method public apply(Ljava/util/List;Ljava/util/List;)Ljava/util/List;
  63. .locals 5
  64. .annotation system Ldalvik/annotation/Signature;
  65. value = {
  66. "(",
  67. "Ljava/util/List<",
  68. "TT;>;",
  69. "Ljava/util/List<",
  70. "TT;>;)",
  71. "Ljava/util/List<",
  72. "TT;>;"
  73. }
  74. .end annotation
  75. .annotation system Ldalvik/annotation/Throws;
  76. value = {
  77. Ljava/lang/Exception;
  78. }
  79. .end annotation
  80. .line 34
  81. invoke-interface {p1}, Ljava/util/List;->size()I
  82. move-result v0
  83. invoke-interface {p2}, Ljava/util/List;->size()I
  84. move-result v1
  85. add-int/2addr v0, v1
  86. if-nez v0, :cond_0
  87. .line 36
  88. new-instance p1, Ljava/util/ArrayList;
  89. invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V
  90. return-object p1
  91. .line 38
  92. :cond_0
  93. new-instance v1, Ljava/util/ArrayList;
  94. invoke-direct {v1, v0}, Ljava/util/ArrayList;-><init>(I)V
  95. .line 40
  96. invoke-interface {p1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
  97. move-result-object p1
  98. .line 41
  99. invoke-interface {p2}, Ljava/util/List;->iterator()Ljava/util/Iterator;
  100. move-result-object p2
  101. .line 43
  102. invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
  103. move-result v0
  104. const/4 v2, 0x0
  105. if-eqz v0, :cond_1
  106. invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
  107. move-result-object v0
  108. goto :goto_0
  109. :cond_1
  110. move-object v0, v2
  111. .line 44
  112. :goto_0
  113. invoke-interface {p2}, Ljava/util/Iterator;->hasNext()Z
  114. move-result v3
  115. if-eqz v3, :cond_2
  116. invoke-interface {p2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
  117. move-result-object v3
  118. goto :goto_1
  119. :cond_2
  120. move-object v3, v2
  121. :goto_1
  122. if-eqz v0, :cond_5
  123. if-eqz v3, :cond_5
  124. .line 47
  125. iget-object v4, p0, Lio/reactivex/internal/util/MergerBiFunction;->comparator:Ljava/util/Comparator;
  126. invoke-interface {v4, v0, v3}, Ljava/util/Comparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
  127. move-result v4
  128. if-gez v4, :cond_4
  129. .line 48
  130. invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  131. .line 49
  132. invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
  133. move-result v0
  134. if-eqz v0, :cond_3
  135. invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
  136. move-result-object v0
  137. goto :goto_1
  138. :cond_3
  139. move-object v0, v2
  140. goto :goto_1
  141. .line 51
  142. :cond_4
  143. invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  144. .line 52
  145. invoke-interface {p2}, Ljava/util/Iterator;->hasNext()Z
  146. move-result v3
  147. if-eqz v3, :cond_2
  148. invoke-interface {p2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
  149. move-result-object v3
  150. goto :goto_1
  151. :cond_5
  152. if-eqz v0, :cond_6
  153. .line 57
  154. invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  155. .line 58
  156. :goto_2
  157. invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
  158. move-result p2
  159. if-eqz p2, :cond_7
  160. .line 59
  161. invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
  162. move-result-object p2
  163. invoke-interface {v1, p2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  164. goto :goto_2
  165. :cond_6
  166. if-eqz v3, :cond_7
  167. .line 63
  168. invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  169. .line 64
  170. :goto_3
  171. invoke-interface {p2}, Ljava/util/Iterator;->hasNext()Z
  172. move-result p1
  173. if-eqz p1, :cond_7
  174. .line 65
  175. invoke-interface {p2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
  176. move-result-object p1
  177. invoke-interface {v1, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  178. goto :goto_3
  179. :cond_7
  180. return-object v1
  181. .end method