LongSparseArray.smali 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101
  1. .class public Landroid/support/v4/util/LongSparseArray;
  2. .super Ljava/lang/Object;
  3. .source "LongSparseArray.java"
  4. # interfaces
  5. .implements Ljava/lang/Cloneable;
  6. # annotations
  7. .annotation system Ldalvik/annotation/Signature;
  8. value = {
  9. "<E:",
  10. "Ljava/lang/Object;",
  11. ">",
  12. "Ljava/lang/Object;",
  13. "Ljava/lang/Cloneable;"
  14. }
  15. .end annotation
  16. # static fields
  17. .field private static final DELETED:Ljava/lang/Object;
  18. # instance fields
  19. .field private mGarbage:Z
  20. .field private mKeys:[J
  21. .field private mSize:I
  22. .field private mValues:[Ljava/lang/Object;
  23. # direct methods
  24. .method static constructor <clinit>()V
  25. .locals 1
  26. .prologue
  27. .line 44
  28. new-instance v0, Ljava/lang/Object;
  29. invoke-direct {v0}, Ljava/lang/Object;-><init>()V
  30. sput-object v0, Landroid/support/v4/util/LongSparseArray;->DELETED:Ljava/lang/Object;
  31. return-void
  32. .end method
  33. .method public constructor <init>()V
  34. .locals 1
  35. .prologue
  36. .line 55
  37. .local p0, "this":Landroid/support/v4/util/LongSparseArray;, "Landroid/support/v4/util/LongSparseArray<TE;>;"
  38. const/16 v0, 0xa
  39. invoke-direct {p0, v0}, Landroid/support/v4/util/LongSparseArray;-><init>(I)V
  40. .line 56
  41. return-void
  42. .end method
  43. .method public constructor <init>(I)V
  44. .locals 2
  45. .param p1, "initialCapacity" # I
  46. .prologue
  47. .local p0, "this":Landroid/support/v4/util/LongSparseArray;, "Landroid/support/v4/util/LongSparseArray<TE;>;"
  48. const/4 v1, 0x0
  49. .line 65
  50. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  51. .line 45
  52. iput-boolean v1, p0, Landroid/support/v4/util/LongSparseArray;->mGarbage:Z
  53. .line 66
  54. if-nez p1, :cond_0
  55. .line 67
  56. sget-object v0, Landroid/support/v4/util/ContainerHelpers;->EMPTY_LONGS:[J
  57. iput-object v0, p0, Landroid/support/v4/util/LongSparseArray;->mKeys:[J
  58. .line 68
  59. sget-object v0, Landroid/support/v4/util/ContainerHelpers;->EMPTY_OBJECTS:[Ljava/lang/Object;
  60. iput-object v0, p0, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  61. .line 74
  62. :goto_0
  63. iput v1, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  64. .line 75
  65. return-void
  66. .line 70
  67. :cond_0
  68. invoke-static {p1}, Landroid/support/v4/util/ContainerHelpers;->idealLongArraySize(I)I
  69. move-result p1
  70. .line 71
  71. new-array v0, p1, [J
  72. iput-object v0, p0, Landroid/support/v4/util/LongSparseArray;->mKeys:[J
  73. .line 72
  74. new-array v0, p1, [Ljava/lang/Object;
  75. iput-object v0, p0, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  76. goto :goto_0
  77. .end method
  78. .method private gc()V
  79. .locals 8
  80. .prologue
  81. .line 148
  82. .local p0, "this":Landroid/support/v4/util/LongSparseArray;, "Landroid/support/v4/util/LongSparseArray<TE;>;"
  83. iget v2, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  84. .line 149
  85. .local v2, "n":I
  86. const/4 v3, 0x0
  87. .line 150
  88. .local v3, "o":I
  89. iget-object v1, p0, Landroid/support/v4/util/LongSparseArray;->mKeys:[J
  90. .line 151
  91. .local v1, "keys":[J
  92. iget-object v5, p0, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  93. .line 153
  94. .local v5, "values":[Ljava/lang/Object;
  95. const/4 v0, 0x0
  96. .local v0, "i":I
  97. :goto_0
  98. if-ge v0, v2, :cond_2
  99. .line 154
  100. aget-object v4, v5, v0
  101. .line 156
  102. .local v4, "val":Ljava/lang/Object;
  103. sget-object v6, Landroid/support/v4/util/LongSparseArray;->DELETED:Ljava/lang/Object;
  104. if-eq v4, v6, :cond_1
  105. .line 157
  106. if-eq v0, v3, :cond_0
  107. .line 158
  108. aget-wide v6, v1, v0
  109. aput-wide v6, v1, v3
  110. .line 159
  111. aput-object v4, v5, v3
  112. .line 160
  113. const/4 v6, 0x0
  114. aput-object v6, v5, v0
  115. .line 163
  116. :cond_0
  117. add-int/lit8 v3, v3, 0x1
  118. .line 153
  119. :cond_1
  120. add-int/lit8 v0, v0, 0x1
  121. goto :goto_0
  122. .line 167
  123. .end local v4 # "val":Ljava/lang/Object;
  124. :cond_2
  125. const/4 v6, 0x0
  126. iput-boolean v6, p0, Landroid/support/v4/util/LongSparseArray;->mGarbage:Z
  127. .line 168
  128. iput v3, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  129. .line 171
  130. return-void
  131. .end method
  132. # virtual methods
  133. .method public append(JLjava/lang/Object;)V
  134. .locals 7
  135. .param p1, "key" # J
  136. .annotation system Ldalvik/annotation/Signature;
  137. value = {
  138. "(JTE;)V"
  139. }
  140. .end annotation
  141. .prologue
  142. .local p0, "this":Landroid/support/v4/util/LongSparseArray;, "Landroid/support/v4/util/LongSparseArray<TE;>;"
  143. .local p3, "value":Ljava/lang/Object;, "TE;"
  144. const/4 v6, 0x0
  145. .line 330
  146. iget v4, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  147. if-eqz v4, :cond_0
  148. iget-object v4, p0, Landroid/support/v4/util/LongSparseArray;->mKeys:[J
  149. iget v5, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  150. add-int/lit8 v5, v5, -0x1
  151. aget-wide v4, v4, v5
  152. cmp-long v4, p1, v4
  153. if-gtz v4, :cond_0
  154. .line 331
  155. invoke-virtual {p0, p1, p2, p3}, Landroid/support/v4/util/LongSparseArray;->put(JLjava/lang/Object;)V
  156. .line 357
  157. :goto_0
  158. return-void
  159. .line 335
  160. :cond_0
  161. iget-boolean v4, p0, Landroid/support/v4/util/LongSparseArray;->mGarbage:Z
  162. if-eqz v4, :cond_1
  163. iget v4, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  164. iget-object v5, p0, Landroid/support/v4/util/LongSparseArray;->mKeys:[J
  165. array-length v5, v5
  166. if-lt v4, v5, :cond_1
  167. .line 336
  168. invoke-direct {p0}, Landroid/support/v4/util/LongSparseArray;->gc()V
  169. .line 339
  170. :cond_1
  171. iget v3, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  172. .line 340
  173. .local v3, "pos":I
  174. iget-object v4, p0, Landroid/support/v4/util/LongSparseArray;->mKeys:[J
  175. array-length v4, v4
  176. if-lt v3, v4, :cond_2
  177. .line 341
  178. add-int/lit8 v4, v3, 0x1
  179. invoke-static {v4}, Landroid/support/v4/util/ContainerHelpers;->idealLongArraySize(I)I
  180. move-result v0
  181. .line 343
  182. .local v0, "n":I
  183. new-array v1, v0, [J
  184. .line 344
  185. .local v1, "nkeys":[J
  186. new-array v2, v0, [Ljava/lang/Object;
  187. .line 347
  188. .local v2, "nvalues":[Ljava/lang/Object;
  189. iget-object v4, p0, Landroid/support/v4/util/LongSparseArray;->mKeys:[J
  190. iget-object v5, p0, Landroid/support/v4/util/LongSparseArray;->mKeys:[J
  191. array-length v5, v5
  192. invoke-static {v4, v6, v1, v6, v5}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  193. .line 348
  194. iget-object v4, p0, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  195. iget-object v5, p0, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  196. array-length v5, v5
  197. invoke-static {v4, v6, v2, v6, v5}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  198. .line 350
  199. iput-object v1, p0, Landroid/support/v4/util/LongSparseArray;->mKeys:[J
  200. .line 351
  201. iput-object v2, p0, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  202. .line 354
  203. .end local v0 # "n":I
  204. .end local v1 # "nkeys":[J
  205. .end local v2 # "nvalues":[Ljava/lang/Object;
  206. :cond_2
  207. iget-object v4, p0, Landroid/support/v4/util/LongSparseArray;->mKeys:[J
  208. aput-wide p1, v4, v3
  209. .line 355
  210. iget-object v4, p0, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  211. aput-object p3, v4, v3
  212. .line 356
  213. add-int/lit8 v4, v3, 0x1
  214. iput v4, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  215. goto :goto_0
  216. .end method
  217. .method public clear()V
  218. .locals 5
  219. .prologue
  220. .local p0, "this":Landroid/support/v4/util/LongSparseArray;, "Landroid/support/v4/util/LongSparseArray<TE;>;"
  221. const/4 v4, 0x0
  222. .line 314
  223. iget v1, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  224. .line 315
  225. .local v1, "n":I
  226. iget-object v2, p0, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  227. .line 317
  228. .local v2, "values":[Ljava/lang/Object;
  229. const/4 v0, 0x0
  230. .local v0, "i":I
  231. :goto_0
  232. if-ge v0, v1, :cond_0
  233. .line 318
  234. const/4 v3, 0x0
  235. aput-object v3, v2, v0
  236. .line 317
  237. add-int/lit8 v0, v0, 0x1
  238. goto :goto_0
  239. .line 321
  240. :cond_0
  241. iput v4, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  242. .line 322
  243. iput-boolean v4, p0, Landroid/support/v4/util/LongSparseArray;->mGarbage:Z
  244. .line 323
  245. return-void
  246. .end method
  247. .method public clone()Landroid/support/v4/util/LongSparseArray;
  248. .locals 3
  249. .annotation system Ldalvik/annotation/Signature;
  250. value = {
  251. "()",
  252. "Landroid/support/v4/util/LongSparseArray",
  253. "<TE;>;"
  254. }
  255. .end annotation
  256. .prologue
  257. .line 80
  258. .local p0, "this":Landroid/support/v4/util/LongSparseArray;, "Landroid/support/v4/util/LongSparseArray<TE;>;"
  259. const/4 v1, 0x0
  260. .line 82
  261. .local v1, "clone":Landroid/support/v4/util/LongSparseArray;, "Landroid/support/v4/util/LongSparseArray<TE;>;"
  262. :try_start_0
  263. invoke-super {p0}, Ljava/lang/Object;->clone()Ljava/lang/Object;
  264. move-result-object v2
  265. move-object v0, v2
  266. check-cast v0, Landroid/support/v4/util/LongSparseArray;
  267. move-object v1, v0
  268. .line 83
  269. iget-object v2, p0, Landroid/support/v4/util/LongSparseArray;->mKeys:[J
  270. invoke-virtual {v2}, [J->clone()Ljava/lang/Object;
  271. move-result-object v2
  272. check-cast v2, [J
  273. iput-object v2, v1, Landroid/support/v4/util/LongSparseArray;->mKeys:[J
  274. .line 84
  275. iget-object v2, p0, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  276. invoke-virtual {v2}, [Ljava/lang/Object;->clone()Ljava/lang/Object;
  277. move-result-object v2
  278. check-cast v2, [Ljava/lang/Object;
  279. iput-object v2, v1, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  280. :try_end_0
  281. .catch Ljava/lang/CloneNotSupportedException; {:try_start_0 .. :try_end_0} :catch_0
  282. .line 88
  283. :goto_0
  284. return-object v1
  285. .line 85
  286. :catch_0
  287. move-exception v2
  288. goto :goto_0
  289. .end method
  290. .method public bridge synthetic clone()Ljava/lang/Object;
  291. .locals 1
  292. .annotation system Ldalvik/annotation/Throws;
  293. value = {
  294. Ljava/lang/CloneNotSupportedException;
  295. }
  296. .end annotation
  297. .prologue
  298. .line 43
  299. .local p0, "this":Landroid/support/v4/util/LongSparseArray;, "Landroid/support/v4/util/LongSparseArray<TE;>;"
  300. invoke-virtual {p0}, Landroid/support/v4/util/LongSparseArray;->clone()Landroid/support/v4/util/LongSparseArray;
  301. move-result-object v0
  302. return-object v0
  303. .end method
  304. .method public delete(J)V
  305. .locals 3
  306. .param p1, "key" # J
  307. .prologue
  308. .line 118
  309. .local p0, "this":Landroid/support/v4/util/LongSparseArray;, "Landroid/support/v4/util/LongSparseArray<TE;>;"
  310. iget-object v1, p0, Landroid/support/v4/util/LongSparseArray;->mKeys:[J
  311. iget v2, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  312. invoke-static {v1, v2, p1, p2}, Landroid/support/v4/util/ContainerHelpers;->binarySearch([JIJ)I
  313. move-result v0
  314. .line 120
  315. .local v0, "i":I
  316. if-ltz v0, :cond_0
  317. .line 121
  318. iget-object v1, p0, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  319. aget-object v1, v1, v0
  320. sget-object v2, Landroid/support/v4/util/LongSparseArray;->DELETED:Ljava/lang/Object;
  321. if-eq v1, v2, :cond_0
  322. .line 122
  323. iget-object v1, p0, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  324. sget-object v2, Landroid/support/v4/util/LongSparseArray;->DELETED:Ljava/lang/Object;
  325. aput-object v2, v1, v0
  326. .line 123
  327. const/4 v1, 0x1
  328. iput-boolean v1, p0, Landroid/support/v4/util/LongSparseArray;->mGarbage:Z
  329. .line 126
  330. :cond_0
  331. return-void
  332. .end method
  333. .method public get(J)Ljava/lang/Object;
  334. .locals 1
  335. .param p1, "key" # J
  336. .annotation system Ldalvik/annotation/Signature;
  337. value = {
  338. "(J)TE;"
  339. }
  340. .end annotation
  341. .prologue
  342. .line 96
  343. .local p0, "this":Landroid/support/v4/util/LongSparseArray;, "Landroid/support/v4/util/LongSparseArray<TE;>;"
  344. const/4 v0, 0x0
  345. invoke-virtual {p0, p1, p2, v0}, Landroid/support/v4/util/LongSparseArray;->get(JLjava/lang/Object;)Ljava/lang/Object;
  346. move-result-object v0
  347. return-object v0
  348. .end method
  349. .method public get(JLjava/lang/Object;)Ljava/lang/Object;
  350. .locals 3
  351. .param p1, "key" # J
  352. .annotation system Ldalvik/annotation/Signature;
  353. value = {
  354. "(JTE;)TE;"
  355. }
  356. .end annotation
  357. .prologue
  358. .line 105
  359. .local p0, "this":Landroid/support/v4/util/LongSparseArray;, "Landroid/support/v4/util/LongSparseArray<TE;>;"
  360. .local p3, "valueIfKeyNotFound":Ljava/lang/Object;, "TE;"
  361. iget-object v1, p0, Landroid/support/v4/util/LongSparseArray;->mKeys:[J
  362. iget v2, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  363. invoke-static {v1, v2, p1, p2}, Landroid/support/v4/util/ContainerHelpers;->binarySearch([JIJ)I
  364. move-result v0
  365. .line 107
  366. .local v0, "i":I
  367. if-ltz v0, :cond_0
  368. iget-object v1, p0, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  369. aget-object v1, v1, v0
  370. sget-object v2, Landroid/support/v4/util/LongSparseArray;->DELETED:Ljava/lang/Object;
  371. if-ne v1, v2, :cond_1
  372. .line 110
  373. .end local p3 # "valueIfKeyNotFound":Ljava/lang/Object;, "TE;"
  374. :cond_0
  375. :goto_0
  376. return-object p3
  377. .restart local p3 # "valueIfKeyNotFound":Ljava/lang/Object;, "TE;"
  378. :cond_1
  379. iget-object v1, p0, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  380. aget-object p3, v1, v0
  381. goto :goto_0
  382. .end method
  383. .method public indexOfKey(J)I
  384. .locals 2
  385. .param p1, "key" # J
  386. .prologue
  387. .line 283
  388. .local p0, "this":Landroid/support/v4/util/LongSparseArray;, "Landroid/support/v4/util/LongSparseArray<TE;>;"
  389. iget-boolean v0, p0, Landroid/support/v4/util/LongSparseArray;->mGarbage:Z
  390. if-eqz v0, :cond_0
  391. .line 284
  392. invoke-direct {p0}, Landroid/support/v4/util/LongSparseArray;->gc()V
  393. .line 287
  394. :cond_0
  395. iget-object v0, p0, Landroid/support/v4/util/LongSparseArray;->mKeys:[J
  396. iget v1, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  397. invoke-static {v0, v1, p1, p2}, Landroid/support/v4/util/ContainerHelpers;->binarySearch([JIJ)I
  398. move-result v0
  399. return v0
  400. .end method
  401. .method public indexOfValue(Ljava/lang/Object;)I
  402. .locals 2
  403. .annotation system Ldalvik/annotation/Signature;
  404. value = {
  405. "(TE;)I"
  406. }
  407. .end annotation
  408. .prologue
  409. .line 299
  410. .local p0, "this":Landroid/support/v4/util/LongSparseArray;, "Landroid/support/v4/util/LongSparseArray<TE;>;"
  411. .local p1, "value":Ljava/lang/Object;, "TE;"
  412. iget-boolean v1, p0, Landroid/support/v4/util/LongSparseArray;->mGarbage:Z
  413. if-eqz v1, :cond_0
  414. .line 300
  415. invoke-direct {p0}, Landroid/support/v4/util/LongSparseArray;->gc()V
  416. .line 303
  417. :cond_0
  418. const/4 v0, 0x0
  419. .local v0, "i":I
  420. :goto_0
  421. iget v1, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  422. if-ge v0, v1, :cond_2
  423. .line 304
  424. iget-object v1, p0, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  425. aget-object v1, v1, v0
  426. if-ne v1, p1, :cond_1
  427. .line 307
  428. .end local v0 # "i":I
  429. :goto_1
  430. return v0
  431. .line 303
  432. .restart local v0 # "i":I
  433. :cond_1
  434. add-int/lit8 v0, v0, 0x1
  435. goto :goto_0
  436. .line 307
  437. :cond_2
  438. const/4 v0, -0x1
  439. goto :goto_1
  440. .end method
  441. .method public keyAt(I)J
  442. .locals 2
  443. .param p1, "index" # I
  444. .prologue
  445. .line 243
  446. .local p0, "this":Landroid/support/v4/util/LongSparseArray;, "Landroid/support/v4/util/LongSparseArray<TE;>;"
  447. iget-boolean v0, p0, Landroid/support/v4/util/LongSparseArray;->mGarbage:Z
  448. if-eqz v0, :cond_0
  449. .line 244
  450. invoke-direct {p0}, Landroid/support/v4/util/LongSparseArray;->gc()V
  451. .line 247
  452. :cond_0
  453. iget-object v0, p0, Landroid/support/v4/util/LongSparseArray;->mKeys:[J
  454. aget-wide v0, v0, p1
  455. return-wide v0
  456. .end method
  457. .method public put(JLjava/lang/Object;)V
  458. .locals 8
  459. .param p1, "key" # J
  460. .annotation system Ldalvik/annotation/Signature;
  461. value = {
  462. "(JTE;)V"
  463. }
  464. .end annotation
  465. .prologue
  466. .local p0, "this":Landroid/support/v4/util/LongSparseArray;, "Landroid/support/v4/util/LongSparseArray<TE;>;"
  467. .local p3, "value":Ljava/lang/Object;, "TE;"
  468. const/4 v6, 0x0
  469. .line 179
  470. iget-object v4, p0, Landroid/support/v4/util/LongSparseArray;->mKeys:[J
  471. iget v5, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  472. invoke-static {v4, v5, p1, p2}, Landroid/support/v4/util/ContainerHelpers;->binarySearch([JIJ)I
  473. move-result v0
  474. .line 181
  475. .local v0, "i":I
  476. if-ltz v0, :cond_0
  477. .line 182
  478. iget-object v4, p0, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  479. aput-object p3, v4, v0
  480. .line 223
  481. :goto_0
  482. return-void
  483. .line 184
  484. :cond_0
  485. xor-int/lit8 v0, v0, -0x1
  486. .line 186
  487. iget v4, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  488. if-ge v0, v4, :cond_1
  489. iget-object v4, p0, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  490. aget-object v4, v4, v0
  491. sget-object v5, Landroid/support/v4/util/LongSparseArray;->DELETED:Ljava/lang/Object;
  492. if-ne v4, v5, :cond_1
  493. .line 187
  494. iget-object v4, p0, Landroid/support/v4/util/LongSparseArray;->mKeys:[J
  495. aput-wide p1, v4, v0
  496. .line 188
  497. iget-object v4, p0, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  498. aput-object p3, v4, v0
  499. goto :goto_0
  500. .line 192
  501. :cond_1
  502. iget-boolean v4, p0, Landroid/support/v4/util/LongSparseArray;->mGarbage:Z
  503. if-eqz v4, :cond_2
  504. iget v4, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  505. iget-object v5, p0, Landroid/support/v4/util/LongSparseArray;->mKeys:[J
  506. array-length v5, v5
  507. if-lt v4, v5, :cond_2
  508. .line 193
  509. invoke-direct {p0}, Landroid/support/v4/util/LongSparseArray;->gc()V
  510. .line 196
  511. iget-object v4, p0, Landroid/support/v4/util/LongSparseArray;->mKeys:[J
  512. iget v5, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  513. invoke-static {v4, v5, p1, p2}, Landroid/support/v4/util/ContainerHelpers;->binarySearch([JIJ)I
  514. move-result v4
  515. xor-int/lit8 v0, v4, -0x1
  516. .line 199
  517. :cond_2
  518. iget v4, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  519. iget-object v5, p0, Landroid/support/v4/util/LongSparseArray;->mKeys:[J
  520. array-length v5, v5
  521. if-lt v4, v5, :cond_3
  522. .line 200
  523. iget v4, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  524. add-int/lit8 v4, v4, 0x1
  525. invoke-static {v4}, Landroid/support/v4/util/ContainerHelpers;->idealLongArraySize(I)I
  526. move-result v1
  527. .line 202
  528. .local v1, "n":I
  529. new-array v2, v1, [J
  530. .line 203
  531. .local v2, "nkeys":[J
  532. new-array v3, v1, [Ljava/lang/Object;
  533. .line 206
  534. .local v3, "nvalues":[Ljava/lang/Object;
  535. iget-object v4, p0, Landroid/support/v4/util/LongSparseArray;->mKeys:[J
  536. iget-object v5, p0, Landroid/support/v4/util/LongSparseArray;->mKeys:[J
  537. array-length v5, v5
  538. invoke-static {v4, v6, v2, v6, v5}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  539. .line 207
  540. iget-object v4, p0, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  541. iget-object v5, p0, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  542. array-length v5, v5
  543. invoke-static {v4, v6, v3, v6, v5}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  544. .line 209
  545. iput-object v2, p0, Landroid/support/v4/util/LongSparseArray;->mKeys:[J
  546. .line 210
  547. iput-object v3, p0, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  548. .line 213
  549. .end local v1 # "n":I
  550. .end local v2 # "nkeys":[J
  551. .end local v3 # "nvalues":[Ljava/lang/Object;
  552. :cond_3
  553. iget v4, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  554. sub-int/2addr v4, v0
  555. if-eqz v4, :cond_4
  556. .line 215
  557. iget-object v4, p0, Landroid/support/v4/util/LongSparseArray;->mKeys:[J
  558. iget-object v5, p0, Landroid/support/v4/util/LongSparseArray;->mKeys:[J
  559. add-int/lit8 v6, v0, 0x1
  560. iget v7, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  561. sub-int/2addr v7, v0
  562. invoke-static {v4, v0, v5, v6, v7}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  563. .line 216
  564. iget-object v4, p0, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  565. iget-object v5, p0, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  566. add-int/lit8 v6, v0, 0x1
  567. iget v7, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  568. sub-int/2addr v7, v0
  569. invoke-static {v4, v0, v5, v6, v7}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  570. .line 219
  571. :cond_4
  572. iget-object v4, p0, Landroid/support/v4/util/LongSparseArray;->mKeys:[J
  573. aput-wide p1, v4, v0
  574. .line 220
  575. iget-object v4, p0, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  576. aput-object p3, v4, v0
  577. .line 221
  578. iget v4, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  579. add-int/lit8 v4, v4, 0x1
  580. iput v4, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  581. goto/16 :goto_0
  582. .end method
  583. .method public remove(J)V
  584. .locals 0
  585. .param p1, "key" # J
  586. .prologue
  587. .line 132
  588. .local p0, "this":Landroid/support/v4/util/LongSparseArray;, "Landroid/support/v4/util/LongSparseArray<TE;>;"
  589. invoke-virtual {p0, p1, p2}, Landroid/support/v4/util/LongSparseArray;->delete(J)V
  590. .line 133
  591. return-void
  592. .end method
  593. .method public removeAt(I)V
  594. .locals 2
  595. .param p1, "index" # I
  596. .prologue
  597. .line 139
  598. .local p0, "this":Landroid/support/v4/util/LongSparseArray;, "Landroid/support/v4/util/LongSparseArray<TE;>;"
  599. iget-object v0, p0, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  600. aget-object v0, v0, p1
  601. sget-object v1, Landroid/support/v4/util/LongSparseArray;->DELETED:Ljava/lang/Object;
  602. if-eq v0, v1, :cond_0
  603. .line 140
  604. iget-object v0, p0, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  605. sget-object v1, Landroid/support/v4/util/LongSparseArray;->DELETED:Ljava/lang/Object;
  606. aput-object v1, v0, p1
  607. .line 141
  608. const/4 v0, 0x1
  609. iput-boolean v0, p0, Landroid/support/v4/util/LongSparseArray;->mGarbage:Z
  610. .line 143
  611. :cond_0
  612. return-void
  613. .end method
  614. .method public setValueAt(ILjava/lang/Object;)V
  615. .locals 1
  616. .param p1, "index" # I
  617. .annotation system Ldalvik/annotation/Signature;
  618. value = {
  619. "(ITE;)V"
  620. }
  621. .end annotation
  622. .prologue
  623. .line 270
  624. .local p0, "this":Landroid/support/v4/util/LongSparseArray;, "Landroid/support/v4/util/LongSparseArray<TE;>;"
  625. .local p2, "value":Ljava/lang/Object;, "TE;"
  626. iget-boolean v0, p0, Landroid/support/v4/util/LongSparseArray;->mGarbage:Z
  627. if-eqz v0, :cond_0
  628. .line 271
  629. invoke-direct {p0}, Landroid/support/v4/util/LongSparseArray;->gc()V
  630. .line 274
  631. :cond_0
  632. iget-object v0, p0, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  633. aput-object p2, v0, p1
  634. .line 275
  635. return-void
  636. .end method
  637. .method public size()I
  638. .locals 1
  639. .prologue
  640. .line 230
  641. .local p0, "this":Landroid/support/v4/util/LongSparseArray;, "Landroid/support/v4/util/LongSparseArray<TE;>;"
  642. iget-boolean v0, p0, Landroid/support/v4/util/LongSparseArray;->mGarbage:Z
  643. if-eqz v0, :cond_0
  644. .line 231
  645. invoke-direct {p0}, Landroid/support/v4/util/LongSparseArray;->gc()V
  646. .line 234
  647. :cond_0
  648. iget v0, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  649. return v0
  650. .end method
  651. .method public toString()Ljava/lang/String;
  652. .locals 6
  653. .prologue
  654. .line 368
  655. .local p0, "this":Landroid/support/v4/util/LongSparseArray;, "Landroid/support/v4/util/LongSparseArray<TE;>;"
  656. invoke-virtual {p0}, Landroid/support/v4/util/LongSparseArray;->size()I
  657. move-result v5
  658. if-gtz v5, :cond_0
  659. .line 369
  660. const-string v5, "{}"
  661. .line 389
  662. :goto_0
  663. return-object v5
  664. .line 372
  665. :cond_0
  666. new-instance v0, Ljava/lang/StringBuilder;
  667. iget v5, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  668. mul-int/lit8 v5, v5, 0x1c
  669. invoke-direct {v0, v5}, Ljava/lang/StringBuilder;-><init>(I)V
  670. .line 373
  671. .local v0, "buffer":Ljava/lang/StringBuilder;
  672. const/16 v5, 0x7b
  673. invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
  674. .line 374
  675. const/4 v1, 0x0
  676. .local v1, "i":I
  677. :goto_1
  678. iget v5, p0, Landroid/support/v4/util/LongSparseArray;->mSize:I
  679. if-ge v1, v5, :cond_3
  680. .line 375
  681. if-lez v1, :cond_1
  682. .line 376
  683. const-string v5, ", "
  684. invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  685. .line 378
  686. :cond_1
  687. invoke-virtual {p0, v1}, Landroid/support/v4/util/LongSparseArray;->keyAt(I)J
  688. move-result-wide v2
  689. .line 379
  690. .local v2, "key":J
  691. invoke-virtual {v0, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
  692. .line 380
  693. const/16 v5, 0x3d
  694. invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
  695. .line 381
  696. invoke-virtual {p0, v1}, Landroid/support/v4/util/LongSparseArray;->valueAt(I)Ljava/lang/Object;
  697. move-result-object v4
  698. .line 382
  699. .local v4, "value":Ljava/lang/Object;
  700. if-eq v4, p0, :cond_2
  701. .line 383
  702. invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
  703. .line 374
  704. :goto_2
  705. add-int/lit8 v1, v1, 0x1
  706. goto :goto_1
  707. .line 385
  708. :cond_2
  709. const-string v5, "(this Map)"
  710. invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  711. goto :goto_2
  712. .line 388
  713. .end local v2 # "key":J
  714. .end local v4 # "value":Ljava/lang/Object;
  715. :cond_3
  716. const/16 v5, 0x7d
  717. invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
  718. .line 389
  719. invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  720. move-result-object v5
  721. goto :goto_0
  722. .end method
  723. .method public valueAt(I)Ljava/lang/Object;
  724. .locals 1
  725. .param p1, "index" # I
  726. .annotation system Ldalvik/annotation/Signature;
  727. value = {
  728. "(I)TE;"
  729. }
  730. .end annotation
  731. .prologue
  732. .line 257
  733. .local p0, "this":Landroid/support/v4/util/LongSparseArray;, "Landroid/support/v4/util/LongSparseArray<TE;>;"
  734. iget-boolean v0, p0, Landroid/support/v4/util/LongSparseArray;->mGarbage:Z
  735. if-eqz v0, :cond_0
  736. .line 258
  737. invoke-direct {p0}, Landroid/support/v4/util/LongSparseArray;->gc()V
  738. .line 261
  739. :cond_0
  740. iget-object v0, p0, Landroid/support/v4/util/LongSparseArray;->mValues:[Ljava/lang/Object;
  741. aget-object v0, v0, p1
  742. return-object v0
  743. .end method