SparseArrayCompat.smali 29 KB

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