SimpleArrayMap.smali 48 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062
  1. .class public Landroid/support/v4/util/SimpleArrayMap;
  2. .super Ljava/lang/Object;
  3. .source "SimpleArrayMap.java"
  4. # annotations
  5. .annotation system Ldalvik/annotation/Signature;
  6. value = {
  7. "<K:",
  8. "Ljava/lang/Object;",
  9. "V:",
  10. "Ljava/lang/Object;",
  11. ">",
  12. "Ljava/lang/Object;"
  13. }
  14. .end annotation
  15. # static fields
  16. .field private static final BASE_SIZE:I = 0x4
  17. .field private static final CACHE_SIZE:I = 0xa
  18. .field private static final DEBUG:Z = false
  19. .field private static final TAG:Ljava/lang/String; = "ArrayMap"
  20. .field static mBaseCache:[Ljava/lang/Object;
  21. .field static mBaseCacheSize:I
  22. .field static mTwiceBaseCache:[Ljava/lang/Object;
  23. .field static mTwiceBaseCacheSize:I
  24. # instance fields
  25. .field mArray:[Ljava/lang/Object;
  26. .field mHashes:[I
  27. .field mSize:I
  28. # direct methods
  29. .method public constructor <init>()V
  30. .locals 1
  31. .prologue
  32. .line 208
  33. .local p0, "this":Landroid/support/v4/util/SimpleArrayMap;, "Landroid/support/v4/util/SimpleArrayMap<TK;TV;>;"
  34. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  35. .line 209
  36. sget-object v0, Landroid/support/v4/util/ContainerHelpers;->EMPTY_INTS:[I
  37. iput-object v0, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  38. .line 210
  39. sget-object v0, Landroid/support/v4/util/ContainerHelpers;->EMPTY_OBJECTS:[Ljava/lang/Object;
  40. iput-object v0, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  41. .line 211
  42. const/4 v0, 0x0
  43. iput v0, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  44. .line 212
  45. return-void
  46. .end method
  47. .method public constructor <init>(I)V
  48. .locals 1
  49. .param p1, "capacity" # I
  50. .prologue
  51. .line 217
  52. .local p0, "this":Landroid/support/v4/util/SimpleArrayMap;, "Landroid/support/v4/util/SimpleArrayMap<TK;TV;>;"
  53. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  54. .line 218
  55. if-nez p1, :cond_0
  56. .line 219
  57. sget-object v0, Landroid/support/v4/util/ContainerHelpers;->EMPTY_INTS:[I
  58. iput-object v0, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  59. .line 220
  60. sget-object v0, Landroid/support/v4/util/ContainerHelpers;->EMPTY_OBJECTS:[Ljava/lang/Object;
  61. iput-object v0, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  62. .line 224
  63. :goto_0
  64. const/4 v0, 0x0
  65. iput v0, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  66. .line 225
  67. return-void
  68. .line 222
  69. :cond_0
  70. invoke-direct {p0, p1}, Landroid/support/v4/util/SimpleArrayMap;->allocArrays(I)V
  71. goto :goto_0
  72. .end method
  73. .method public constructor <init>(Landroid/support/v4/util/SimpleArrayMap;)V
  74. .locals 0
  75. .param p1, "map" # Landroid/support/v4/util/SimpleArrayMap;
  76. .prologue
  77. .line 231
  78. .local p0, "this":Landroid/support/v4/util/SimpleArrayMap;, "Landroid/support/v4/util/SimpleArrayMap<TK;TV;>;"
  79. invoke-direct {p0}, Landroid/support/v4/util/SimpleArrayMap;-><init>()V
  80. .line 232
  81. if-eqz p1, :cond_0
  82. .line 233
  83. invoke-virtual {p0, p1}, Landroid/support/v4/util/SimpleArrayMap;->putAll(Landroid/support/v4/util/SimpleArrayMap;)V
  84. .line 235
  85. :cond_0
  86. return-void
  87. .end method
  88. .method private allocArrays(I)V
  89. .locals 5
  90. .param p1, "size" # I
  91. .prologue
  92. .line 138
  93. .local p0, "this":Landroid/support/v4/util/SimpleArrayMap;, "Landroid/support/v4/util/SimpleArrayMap<TK;TV;>;"
  94. const/16 v1, 0x8
  95. if-ne p1, v1, :cond_2
  96. .line 139
  97. const-class v2, Landroid/support/v4/util/ArrayMap;
  98. monitor-enter v2
  99. .line 140
  100. :try_start_0
  101. sget-object v1, Landroid/support/v4/util/SimpleArrayMap;->mTwiceBaseCache:[Ljava/lang/Object;
  102. if-eqz v1, :cond_0
  103. .line 141
  104. sget-object v0, Landroid/support/v4/util/SimpleArrayMap;->mTwiceBaseCache:[Ljava/lang/Object;
  105. .line 142
  106. .local v0, "array":[Ljava/lang/Object;
  107. iput-object v0, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  108. .line 143
  109. const/4 v1, 0x0
  110. aget-object v1, v0, v1
  111. check-cast v1, [Ljava/lang/Object;
  112. check-cast v1, [Ljava/lang/Object;
  113. sput-object v1, Landroid/support/v4/util/SimpleArrayMap;->mTwiceBaseCache:[Ljava/lang/Object;
  114. .line 144
  115. const/4 v1, 0x1
  116. aget-object v1, v0, v1
  117. check-cast v1, [I
  118. check-cast v1, [I
  119. iput-object v1, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  120. .line 145
  121. const/4 v1, 0x0
  122. const/4 v3, 0x1
  123. const/4 v4, 0x0
  124. aput-object v4, v0, v3
  125. aput-object v4, v0, v1
  126. .line 146
  127. sget v1, Landroid/support/v4/util/SimpleArrayMap;->mTwiceBaseCacheSize:I
  128. add-int/lit8 v1, v1, -0x1
  129. sput v1, Landroid/support/v4/util/SimpleArrayMap;->mTwiceBaseCacheSize:I
  130. .line 149
  131. monitor-exit v2
  132. .line 170
  133. .end local v0 # "array":[Ljava/lang/Object;
  134. :goto_0
  135. return-void
  136. .line 151
  137. :cond_0
  138. monitor-exit v2
  139. :try_end_0
  140. .catchall {:try_start_0 .. :try_end_0} :catchall_0
  141. .line 168
  142. :cond_1
  143. :goto_1
  144. new-array v1, p1, [I
  145. iput-object v1, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  146. .line 169
  147. shl-int/lit8 v1, p1, 0x1
  148. new-array v1, v1, [Ljava/lang/Object;
  149. iput-object v1, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  150. goto :goto_0
  151. .line 151
  152. :catchall_0
  153. move-exception v1
  154. :try_start_1
  155. monitor-exit v2
  156. :try_end_1
  157. .catchall {:try_start_1 .. :try_end_1} :catchall_0
  158. throw v1
  159. .line 152
  160. :cond_2
  161. const/4 v1, 0x4
  162. if-ne p1, v1, :cond_1
  163. .line 153
  164. const-class v2, Landroid/support/v4/util/ArrayMap;
  165. monitor-enter v2
  166. .line 154
  167. :try_start_2
  168. sget-object v1, Landroid/support/v4/util/SimpleArrayMap;->mBaseCache:[Ljava/lang/Object;
  169. if-eqz v1, :cond_3
  170. .line 155
  171. sget-object v0, Landroid/support/v4/util/SimpleArrayMap;->mBaseCache:[Ljava/lang/Object;
  172. .line 156
  173. .restart local v0 # "array":[Ljava/lang/Object;
  174. iput-object v0, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  175. .line 157
  176. const/4 v1, 0x0
  177. aget-object v1, v0, v1
  178. check-cast v1, [Ljava/lang/Object;
  179. check-cast v1, [Ljava/lang/Object;
  180. sput-object v1, Landroid/support/v4/util/SimpleArrayMap;->mBaseCache:[Ljava/lang/Object;
  181. .line 158
  182. const/4 v1, 0x1
  183. aget-object v1, v0, v1
  184. check-cast v1, [I
  185. check-cast v1, [I
  186. iput-object v1, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  187. .line 159
  188. const/4 v1, 0x0
  189. const/4 v3, 0x1
  190. const/4 v4, 0x0
  191. aput-object v4, v0, v3
  192. aput-object v4, v0, v1
  193. .line 160
  194. sget v1, Landroid/support/v4/util/SimpleArrayMap;->mBaseCacheSize:I
  195. add-int/lit8 v1, v1, -0x1
  196. sput v1, Landroid/support/v4/util/SimpleArrayMap;->mBaseCacheSize:I
  197. .line 163
  198. monitor-exit v2
  199. goto :goto_0
  200. .line 165
  201. .end local v0 # "array":[Ljava/lang/Object;
  202. :catchall_1
  203. move-exception v1
  204. monitor-exit v2
  205. :try_end_2
  206. .catchall {:try_start_2 .. :try_end_2} :catchall_1
  207. throw v1
  208. :cond_3
  209. :try_start_3
  210. monitor-exit v2
  211. :try_end_3
  212. .catchall {:try_start_3 .. :try_end_3} :catchall_1
  213. goto :goto_1
  214. .end method
  215. .method private static freeArrays([I[Ljava/lang/Object;I)V
  216. .locals 5
  217. .param p0, "hashes" # [I
  218. .param p1, "array" # [Ljava/lang/Object;
  219. .param p2, "size" # I
  220. .prologue
  221. const/16 v3, 0xa
  222. const/4 v4, 0x2
  223. .line 173
  224. array-length v1, p0
  225. const/16 v2, 0x8
  226. if-ne v1, v2, :cond_3
  227. .line 174
  228. const-class v2, Landroid/support/v4/util/ArrayMap;
  229. monitor-enter v2
  230. .line 175
  231. :try_start_0
  232. sget v1, Landroid/support/v4/util/SimpleArrayMap;->mTwiceBaseCacheSize:I
  233. if-ge v1, v3, :cond_1
  234. .line 176
  235. const/4 v1, 0x0
  236. sget-object v3, Landroid/support/v4/util/SimpleArrayMap;->mTwiceBaseCache:[Ljava/lang/Object;
  237. aput-object v3, p1, v1
  238. .line 177
  239. const/4 v1, 0x1
  240. aput-object p0, p1, v1
  241. .line 178
  242. shl-int/lit8 v1, p2, 0x1
  243. add-int/lit8 v0, v1, -0x1
  244. .local v0, "i":I
  245. :goto_0
  246. if-lt v0, v4, :cond_0
  247. .line 179
  248. const/4 v1, 0x0
  249. aput-object v1, p1, v0
  250. .line 178
  251. add-int/lit8 v0, v0, -0x1
  252. goto :goto_0
  253. .line 181
  254. :cond_0
  255. sput-object p1, Landroid/support/v4/util/SimpleArrayMap;->mTwiceBaseCache:[Ljava/lang/Object;
  256. .line 182
  257. sget v1, Landroid/support/v4/util/SimpleArrayMap;->mTwiceBaseCacheSize:I
  258. add-int/lit8 v1, v1, 0x1
  259. sput v1, Landroid/support/v4/util/SimpleArrayMap;->mTwiceBaseCacheSize:I
  260. .line 186
  261. .end local v0 # "i":I
  262. :cond_1
  263. monitor-exit v2
  264. .line 202
  265. :cond_2
  266. :goto_1
  267. return-void
  268. .line 186
  269. :catchall_0
  270. move-exception v1
  271. monitor-exit v2
  272. :try_end_0
  273. .catchall {:try_start_0 .. :try_end_0} :catchall_0
  274. throw v1
  275. .line 187
  276. :cond_3
  277. array-length v1, p0
  278. const/4 v2, 0x4
  279. if-ne v1, v2, :cond_2
  280. .line 188
  281. const-class v2, Landroid/support/v4/util/ArrayMap;
  282. monitor-enter v2
  283. .line 189
  284. :try_start_1
  285. sget v1, Landroid/support/v4/util/SimpleArrayMap;->mBaseCacheSize:I
  286. if-ge v1, v3, :cond_5
  287. .line 190
  288. const/4 v1, 0x0
  289. sget-object v3, Landroid/support/v4/util/SimpleArrayMap;->mBaseCache:[Ljava/lang/Object;
  290. aput-object v3, p1, v1
  291. .line 191
  292. const/4 v1, 0x1
  293. aput-object p0, p1, v1
  294. .line 192
  295. shl-int/lit8 v1, p2, 0x1
  296. add-int/lit8 v0, v1, -0x1
  297. .restart local v0 # "i":I
  298. :goto_2
  299. if-lt v0, v4, :cond_4
  300. .line 193
  301. const/4 v1, 0x0
  302. aput-object v1, p1, v0
  303. .line 192
  304. add-int/lit8 v0, v0, -0x1
  305. goto :goto_2
  306. .line 195
  307. :cond_4
  308. sput-object p1, Landroid/support/v4/util/SimpleArrayMap;->mBaseCache:[Ljava/lang/Object;
  309. .line 196
  310. sget v1, Landroid/support/v4/util/SimpleArrayMap;->mBaseCacheSize:I
  311. add-int/lit8 v1, v1, 0x1
  312. sput v1, Landroid/support/v4/util/SimpleArrayMap;->mBaseCacheSize:I
  313. .line 200
  314. .end local v0 # "i":I
  315. :cond_5
  316. monitor-exit v2
  317. goto :goto_1
  318. :catchall_1
  319. move-exception v1
  320. monitor-exit v2
  321. :try_end_1
  322. .catchall {:try_start_1 .. :try_end_1} :catchall_1
  323. throw v1
  324. .end method
  325. # virtual methods
  326. .method public clear()V
  327. .locals 3
  328. .prologue
  329. .line 241
  330. .local p0, "this":Landroid/support/v4/util/SimpleArrayMap;, "Landroid/support/v4/util/SimpleArrayMap<TK;TV;>;"
  331. iget v0, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  332. if-eqz v0, :cond_0
  333. .line 242
  334. iget-object v0, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  335. iget-object v1, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  336. iget v2, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  337. invoke-static {v0, v1, v2}, Landroid/support/v4/util/SimpleArrayMap;->freeArrays([I[Ljava/lang/Object;I)V
  338. .line 243
  339. sget-object v0, Landroid/support/v4/util/ContainerHelpers;->EMPTY_INTS:[I
  340. iput-object v0, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  341. .line 244
  342. sget-object v0, Landroid/support/v4/util/ContainerHelpers;->EMPTY_OBJECTS:[Ljava/lang/Object;
  343. iput-object v0, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  344. .line 245
  345. const/4 v0, 0x0
  346. iput v0, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  347. .line 247
  348. :cond_0
  349. return-void
  350. .end method
  351. .method public containsKey(Ljava/lang/Object;)Z
  352. .locals 1
  353. .param p1, "key" # Ljava/lang/Object;
  354. .prologue
  355. .line 273
  356. .local p0, "this":Landroid/support/v4/util/SimpleArrayMap;, "Landroid/support/v4/util/SimpleArrayMap<TK;TV;>;"
  357. invoke-virtual {p0, p1}, Landroid/support/v4/util/SimpleArrayMap;->indexOfKey(Ljava/lang/Object;)I
  358. move-result v0
  359. if-ltz v0, :cond_0
  360. const/4 v0, 0x1
  361. :goto_0
  362. return v0
  363. :cond_0
  364. const/4 v0, 0x0
  365. goto :goto_0
  366. .end method
  367. .method public containsValue(Ljava/lang/Object;)Z
  368. .locals 1
  369. .param p1, "value" # Ljava/lang/Object;
  370. .prologue
  371. .line 313
  372. .local p0, "this":Landroid/support/v4/util/SimpleArrayMap;, "Landroid/support/v4/util/SimpleArrayMap<TK;TV;>;"
  373. invoke-virtual {p0, p1}, Landroid/support/v4/util/SimpleArrayMap;->indexOfValue(Ljava/lang/Object;)I
  374. move-result v0
  375. if-ltz v0, :cond_0
  376. const/4 v0, 0x1
  377. :goto_0
  378. return v0
  379. :cond_0
  380. const/4 v0, 0x0
  381. goto :goto_0
  382. .end method
  383. .method public ensureCapacity(I)V
  384. .locals 5
  385. .param p1, "minimumCapacity" # I
  386. .prologue
  387. .local p0, "this":Landroid/support/v4/util/SimpleArrayMap;, "Landroid/support/v4/util/SimpleArrayMap<TK;TV;>;"
  388. const/4 v4, 0x0
  389. .line 254
  390. iget-object v2, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  391. array-length v2, v2
  392. if-ge v2, p1, :cond_1
  393. .line 255
  394. iget-object v1, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  395. .line 256
  396. .local v1, "ohashes":[I
  397. iget-object v0, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  398. .line 257
  399. .local v0, "oarray":[Ljava/lang/Object;
  400. invoke-direct {p0, p1}, Landroid/support/v4/util/SimpleArrayMap;->allocArrays(I)V
  401. .line 258
  402. iget v2, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  403. if-lez v2, :cond_0
  404. .line 259
  405. iget-object v2, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  406. iget v3, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  407. invoke-static {v1, v4, v2, v4, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  408. .line 260
  409. iget-object v2, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  410. iget v3, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  411. shl-int/lit8 v3, v3, 0x1
  412. invoke-static {v0, v4, v2, v4, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  413. .line 262
  414. :cond_0
  415. iget v2, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  416. invoke-static {v1, v0, v2}, Landroid/support/v4/util/SimpleArrayMap;->freeArrays([I[Ljava/lang/Object;I)V
  417. .line 264
  418. .end local v0 # "oarray":[Ljava/lang/Object;
  419. .end local v1 # "ohashes":[I
  420. :cond_1
  421. return-void
  422. .end method
  423. .method public equals(Ljava/lang/Object;)Z
  424. .locals 10
  425. .param p1, "object" # Ljava/lang/Object;
  426. .prologue
  427. .local p0, "this":Landroid/support/v4/util/SimpleArrayMap;, "Landroid/support/v4/util/SimpleArrayMap<TK;TV;>;"
  428. const/4 v6, 0x1
  429. const/4 v7, 0x0
  430. .line 532
  431. if-ne p0, p1, :cond_1
  432. .line 561
  433. :cond_0
  434. :goto_0
  435. return v6
  436. .line 535
  437. :cond_1
  438. instance-of v8, p1, Ljava/util/Map;
  439. if-eqz v8, :cond_6
  440. move-object v3, p1
  441. .line 536
  442. check-cast v3, Ljava/util/Map;
  443. .line 537
  444. .local v3, "map":Ljava/util/Map;, "Ljava/util/Map<**>;"
  445. invoke-virtual {p0}, Landroid/support/v4/util/SimpleArrayMap;->size()I
  446. move-result v8
  447. invoke-interface {v3}, Ljava/util/Map;->size()I
  448. move-result v9
  449. if-eq v8, v9, :cond_2
  450. move v6, v7
  451. .line 538
  452. goto :goto_0
  453. .line 542
  454. :cond_2
  455. const/4 v0, 0x0
  456. .local v0, "i":I
  457. :goto_1
  458. :try_start_0
  459. iget v8, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  460. if-ge v0, v8, :cond_0
  461. .line 543
  462. invoke-virtual {p0, v0}, Landroid/support/v4/util/SimpleArrayMap;->keyAt(I)Ljava/lang/Object;
  463. move-result-object v2
  464. .line 544
  465. .local v2, "key":Ljava/lang/Object;, "TK;"
  466. invoke-virtual {p0, v0}, Landroid/support/v4/util/SimpleArrayMap;->valueAt(I)Ljava/lang/Object;
  467. move-result-object v4
  468. .line 545
  469. .local v4, "mine":Ljava/lang/Object;, "TV;"
  470. invoke-interface {v3, v2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
  471. move-result-object v5
  472. .line 546
  473. .local v5, "theirs":Ljava/lang/Object;
  474. if-nez v4, :cond_4
  475. .line 547
  476. if-nez v5, :cond_3
  477. invoke-interface {v3, v2}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
  478. move-result v8
  479. if-nez v8, :cond_5
  480. :cond_3
  481. move v6, v7
  482. .line 548
  483. goto :goto_0
  484. .line 550
  485. :cond_4
  486. invoke-virtual {v4, v5}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
  487. :try_end_0
  488. .catch Ljava/lang/NullPointerException; {:try_start_0 .. :try_end_0} :catch_0
  489. .catch Ljava/lang/ClassCastException; {:try_start_0 .. :try_end_0} :catch_1
  490. move-result v8
  491. if-nez v8, :cond_5
  492. move v6, v7
  493. .line 551
  494. goto :goto_0
  495. .line 542
  496. :cond_5
  497. add-int/lit8 v0, v0, 0x1
  498. goto :goto_1
  499. .line 554
  500. .end local v2 # "key":Ljava/lang/Object;, "TK;"
  501. .end local v4 # "mine":Ljava/lang/Object;, "TV;"
  502. .end local v5 # "theirs":Ljava/lang/Object;
  503. :catch_0
  504. move-exception v1
  505. .local v1, "ignored":Ljava/lang/NullPointerException;
  506. move v6, v7
  507. .line 555
  508. goto :goto_0
  509. .line 556
  510. .end local v1 # "ignored":Ljava/lang/NullPointerException;
  511. :catch_1
  512. move-exception v1
  513. .local v1, "ignored":Ljava/lang/ClassCastException;
  514. move v6, v7
  515. .line 557
  516. goto :goto_0
  517. .end local v0 # "i":I
  518. .end local v1 # "ignored":Ljava/lang/ClassCastException;
  519. .end local v3 # "map":Ljava/util/Map;, "Ljava/util/Map<**>;"
  520. :cond_6
  521. move v6, v7
  522. .line 561
  523. goto :goto_0
  524. .end method
  525. .method public get(Ljava/lang/Object;)Ljava/lang/Object;
  526. .locals 3
  527. .param p1, "key" # Ljava/lang/Object;
  528. .annotation system Ldalvik/annotation/Signature;
  529. value = {
  530. "(",
  531. "Ljava/lang/Object;",
  532. ")TV;"
  533. }
  534. .end annotation
  535. .prologue
  536. .line 323
  537. .local p0, "this":Landroid/support/v4/util/SimpleArrayMap;, "Landroid/support/v4/util/SimpleArrayMap<TK;TV;>;"
  538. invoke-virtual {p0, p1}, Landroid/support/v4/util/SimpleArrayMap;->indexOfKey(Ljava/lang/Object;)I
  539. move-result v0
  540. .line 324
  541. .local v0, "index":I
  542. if-ltz v0, :cond_0
  543. iget-object v1, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  544. shl-int/lit8 v2, v0, 0x1
  545. add-int/lit8 v2, v2, 0x1
  546. aget-object v1, v1, v2
  547. :goto_0
  548. return-object v1
  549. :cond_0
  550. const/4 v1, 0x0
  551. goto :goto_0
  552. .end method
  553. .method public hashCode()I
  554. .locals 9
  555. .prologue
  556. .line 569
  557. .local p0, "this":Landroid/support/v4/util/SimpleArrayMap;, "Landroid/support/v4/util/SimpleArrayMap<TK;TV;>;"
  558. iget-object v1, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  559. .line 570
  560. .local v1, "hashes":[I
  561. iget-object v0, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  562. .line 571
  563. .local v0, "array":[Ljava/lang/Object;
  564. const/4 v3, 0x0
  565. .line 572
  566. .local v3, "result":I
  567. const/4 v2, 0x0
  568. .local v2, "i":I
  569. const/4 v5, 0x1
  570. .local v5, "v":I
  571. iget v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  572. .local v4, "s":I
  573. :goto_0
  574. if-ge v2, v4, :cond_1
  575. .line 573
  576. aget-object v6, v0, v5
  577. .line 574
  578. .local v6, "value":Ljava/lang/Object;
  579. aget v8, v1, v2
  580. if-nez v6, :cond_0
  581. const/4 v7, 0x0
  582. :goto_1
  583. xor-int/2addr v7, v8
  584. add-int/2addr v3, v7
  585. .line 572
  586. add-int/lit8 v2, v2, 0x1
  587. add-int/lit8 v5, v5, 0x2
  588. goto :goto_0
  589. .line 574
  590. :cond_0
  591. invoke-virtual {v6}, Ljava/lang/Object;->hashCode()I
  592. move-result v7
  593. goto :goto_1
  594. .line 576
  595. .end local v6 # "value":Ljava/lang/Object;
  596. :cond_1
  597. return v3
  598. .end method
  599. .method indexOf(Ljava/lang/Object;I)I
  600. .locals 6
  601. .param p1, "key" # Ljava/lang/Object;
  602. .param p2, "hash" # I
  603. .prologue
  604. .line 62
  605. .local p0, "this":Landroid/support/v4/util/SimpleArrayMap;, "Landroid/support/v4/util/SimpleArrayMap<TK;TV;>;"
  606. iget v0, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  607. .line 65
  608. .local v0, "N":I
  609. if-nez v0, :cond_1
  610. .line 66
  611. const/4 v3, -0x1
  612. .line 96
  613. :cond_0
  614. :goto_0
  615. return v3
  616. .line 69
  617. :cond_1
  618. iget-object v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  619. invoke-static {v4, v0, p2}, Landroid/support/v4/util/ContainerHelpers;->binarySearch([III)I
  620. move-result v3
  621. .line 72
  622. .local v3, "index":I
  623. if-ltz v3, :cond_0
  624. .line 77
  625. iget-object v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  626. shl-int/lit8 v5, v3, 0x1
  627. aget-object v4, v4, v5
  628. invoke-virtual {p1, v4}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
  629. move-result v4
  630. if-nez v4, :cond_0
  631. .line 83
  632. add-int/lit8 v1, v3, 0x1
  633. .local v1, "end":I
  634. :goto_1
  635. if-ge v1, v0, :cond_3
  636. iget-object v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  637. aget v4, v4, v1
  638. if-ne v4, p2, :cond_3
  639. .line 84
  640. iget-object v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  641. shl-int/lit8 v5, v1, 0x1
  642. aget-object v4, v4, v5
  643. invoke-virtual {p1, v4}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
  644. move-result v4
  645. if-eqz v4, :cond_2
  646. move v3, v1
  647. goto :goto_0
  648. .line 83
  649. :cond_2
  650. add-int/lit8 v1, v1, 0x1
  651. goto :goto_1
  652. .line 88
  653. :cond_3
  654. add-int/lit8 v2, v3, -0x1
  655. .local v2, "i":I
  656. :goto_2
  657. if-ltz v2, :cond_5
  658. iget-object v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  659. aget v4, v4, v2
  660. if-ne v4, p2, :cond_5
  661. .line 89
  662. iget-object v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  663. shl-int/lit8 v5, v2, 0x1
  664. aget-object v4, v4, v5
  665. invoke-virtual {p1, v4}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
  666. move-result v4
  667. if-eqz v4, :cond_4
  668. move v3, v2
  669. goto :goto_0
  670. .line 88
  671. :cond_4
  672. add-int/lit8 v2, v2, -0x1
  673. goto :goto_2
  674. .line 96
  675. :cond_5
  676. xor-int/lit8 v3, v1, -0x1
  677. goto :goto_0
  678. .end method
  679. .method public indexOfKey(Ljava/lang/Object;)I
  680. .locals 1
  681. .param p1, "key" # Ljava/lang/Object;
  682. .prologue
  683. .line 283
  684. .local p0, "this":Landroid/support/v4/util/SimpleArrayMap;, "Landroid/support/v4/util/SimpleArrayMap<TK;TV;>;"
  685. if-nez p1, :cond_0
  686. invoke-virtual {p0}, Landroid/support/v4/util/SimpleArrayMap;->indexOfNull()I
  687. move-result v0
  688. :goto_0
  689. return v0
  690. :cond_0
  691. invoke-virtual {p1}, Ljava/lang/Object;->hashCode()I
  692. move-result v0
  693. invoke-virtual {p0, p1, v0}, Landroid/support/v4/util/SimpleArrayMap;->indexOf(Ljava/lang/Object;I)I
  694. move-result v0
  695. goto :goto_0
  696. .end method
  697. .method indexOfNull()I
  698. .locals 6
  699. .prologue
  700. .line 100
  701. .local p0, "this":Landroid/support/v4/util/SimpleArrayMap;, "Landroid/support/v4/util/SimpleArrayMap<TK;TV;>;"
  702. iget v0, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  703. .line 103
  704. .local v0, "N":I
  705. if-nez v0, :cond_1
  706. .line 104
  707. const/4 v3, -0x1
  708. .line 134
  709. :cond_0
  710. :goto_0
  711. return v3
  712. .line 107
  713. :cond_1
  714. iget-object v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  715. const/4 v5, 0x0
  716. invoke-static {v4, v0, v5}, Landroid/support/v4/util/ContainerHelpers;->binarySearch([III)I
  717. move-result v3
  718. .line 110
  719. .local v3, "index":I
  720. if-ltz v3, :cond_0
  721. .line 115
  722. iget-object v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  723. shl-int/lit8 v5, v3, 0x1
  724. aget-object v4, v4, v5
  725. if-eqz v4, :cond_0
  726. .line 121
  727. add-int/lit8 v1, v3, 0x1
  728. .local v1, "end":I
  729. :goto_1
  730. if-ge v1, v0, :cond_3
  731. iget-object v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  732. aget v4, v4, v1
  733. if-nez v4, :cond_3
  734. .line 122
  735. iget-object v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  736. shl-int/lit8 v5, v1, 0x1
  737. aget-object v4, v4, v5
  738. if-nez v4, :cond_2
  739. move v3, v1
  740. goto :goto_0
  741. .line 121
  742. :cond_2
  743. add-int/lit8 v1, v1, 0x1
  744. goto :goto_1
  745. .line 126
  746. :cond_3
  747. add-int/lit8 v2, v3, -0x1
  748. .local v2, "i":I
  749. :goto_2
  750. if-ltz v2, :cond_5
  751. iget-object v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  752. aget v4, v4, v2
  753. if-nez v4, :cond_5
  754. .line 127
  755. iget-object v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  756. shl-int/lit8 v5, v2, 0x1
  757. aget-object v4, v4, v5
  758. if-nez v4, :cond_4
  759. move v3, v2
  760. goto :goto_0
  761. .line 126
  762. :cond_4
  763. add-int/lit8 v2, v2, -0x1
  764. goto :goto_2
  765. .line 134
  766. :cond_5
  767. xor-int/lit8 v3, v1, -0x1
  768. goto :goto_0
  769. .end method
  770. .method indexOfValue(Ljava/lang/Object;)I
  771. .locals 4
  772. .param p1, "value" # Ljava/lang/Object;
  773. .prologue
  774. .line 287
  775. .local p0, "this":Landroid/support/v4/util/SimpleArrayMap;, "Landroid/support/v4/util/SimpleArrayMap<TK;TV;>;"
  776. iget v3, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  777. mul-int/lit8 v0, v3, 0x2
  778. .line 288
  779. .local v0, "N":I
  780. iget-object v1, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  781. .line 289
  782. .local v1, "array":[Ljava/lang/Object;
  783. if-nez p1, :cond_1
  784. .line 290
  785. const/4 v2, 0x1
  786. .local v2, "i":I
  787. :goto_0
  788. if-ge v2, v0, :cond_3
  789. .line 291
  790. aget-object v3, v1, v2
  791. if-nez v3, :cond_0
  792. .line 292
  793. shr-int/lit8 v3, v2, 0x1
  794. .line 302
  795. :goto_1
  796. return v3
  797. .line 290
  798. :cond_0
  799. add-int/lit8 v2, v2, 0x2
  800. goto :goto_0
  801. .line 296
  802. .end local v2 # "i":I
  803. :cond_1
  804. const/4 v2, 0x1
  805. .restart local v2 # "i":I
  806. :goto_2
  807. if-ge v2, v0, :cond_3
  808. .line 297
  809. aget-object v3, v1, v2
  810. invoke-virtual {p1, v3}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
  811. move-result v3
  812. if-eqz v3, :cond_2
  813. .line 298
  814. shr-int/lit8 v3, v2, 0x1
  815. goto :goto_1
  816. .line 296
  817. :cond_2
  818. add-int/lit8 v2, v2, 0x2
  819. goto :goto_2
  820. .line 302
  821. :cond_3
  822. const/4 v3, -0x1
  823. goto :goto_1
  824. .end method
  825. .method public isEmpty()Z
  826. .locals 1
  827. .prologue
  828. .line 362
  829. .local p0, "this":Landroid/support/v4/util/SimpleArrayMap;, "Landroid/support/v4/util/SimpleArrayMap<TK;TV;>;"
  830. iget v0, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  831. if-gtz v0, :cond_0
  832. const/4 v0, 0x1
  833. :goto_0
  834. return v0
  835. :cond_0
  836. const/4 v0, 0x0
  837. goto :goto_0
  838. .end method
  839. .method public keyAt(I)Ljava/lang/Object;
  840. .locals 2
  841. .param p1, "index" # I
  842. .annotation system Ldalvik/annotation/Signature;
  843. value = {
  844. "(I)TK;"
  845. }
  846. .end annotation
  847. .prologue
  848. .line 333
  849. .local p0, "this":Landroid/support/v4/util/SimpleArrayMap;, "Landroid/support/v4/util/SimpleArrayMap<TK;TV;>;"
  850. iget-object v0, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  851. shl-int/lit8 v1, p1, 0x1
  852. aget-object v0, v0, v1
  853. return-object v0
  854. .end method
  855. .method public put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
  856. .locals 11
  857. .annotation system Ldalvik/annotation/Signature;
  858. value = {
  859. "(TK;TV;)TV;"
  860. }
  861. .end annotation
  862. .prologue
  863. .local p0, "this":Landroid/support/v4/util/SimpleArrayMap;, "Landroid/support/v4/util/SimpleArrayMap<TK;TV;>;"
  864. .local p1, "key":Ljava/lang/Object;, "TK;"
  865. .local p2, "value":Ljava/lang/Object;, "TV;"
  866. const/16 v2, 0x8
  867. const/4 v6, 0x4
  868. const/4 v9, 0x0
  869. .line 376
  870. if-nez p1, :cond_0
  871. .line 377
  872. const/4 v0, 0x0
  873. .line 378
  874. .local v0, "hash":I
  875. invoke-virtual {p0}, Landroid/support/v4/util/SimpleArrayMap;->indexOfNull()I
  876. move-result v1
  877. .line 383
  878. .local v1, "index":I
  879. :goto_0
  880. if-ltz v1, :cond_1
  881. .line 384
  882. shl-int/lit8 v6, v1, 0x1
  883. add-int/lit8 v1, v6, 0x1
  884. .line 385
  885. iget-object v6, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  886. aget-object v5, v6, v1
  887. .line 386
  888. .local v5, "old":Ljava/lang/Object;, "TV;"
  889. iget-object v6, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  890. aput-object p2, v6, v1
  891. .line 421
  892. .end local v5 # "old":Ljava/lang/Object;, "TV;"
  893. :goto_1
  894. return-object v5
  895. .line 380
  896. .end local v0 # "hash":I
  897. .end local v1 # "index":I
  898. :cond_0
  899. invoke-virtual {p1}, Ljava/lang/Object;->hashCode()I
  900. move-result v0
  901. .line 381
  902. .restart local v0 # "hash":I
  903. invoke-virtual {p0, p1, v0}, Landroid/support/v4/util/SimpleArrayMap;->indexOf(Ljava/lang/Object;I)I
  904. move-result v1
  905. .restart local v1 # "index":I
  906. goto :goto_0
  907. .line 390
  908. :cond_1
  909. xor-int/lit8 v1, v1, -0x1
  910. .line 391
  911. iget v7, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  912. iget-object v8, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  913. array-length v8, v8
  914. if-lt v7, v8, :cond_4
  915. .line 392
  916. iget v7, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  917. if-lt v7, v2, :cond_6
  918. iget v6, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  919. iget v7, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  920. shr-int/lit8 v7, v7, 0x1
  921. add-int v2, v6, v7
  922. .line 397
  923. .local v2, "n":I
  924. :cond_2
  925. :goto_2
  926. iget-object v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  927. .line 398
  928. .local v4, "ohashes":[I
  929. iget-object v3, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  930. .line 399
  931. .local v3, "oarray":[Ljava/lang/Object;
  932. invoke-direct {p0, v2}, Landroid/support/v4/util/SimpleArrayMap;->allocArrays(I)V
  933. .line 401
  934. iget-object v6, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  935. array-length v6, v6
  936. if-lez v6, :cond_3
  937. .line 403
  938. iget-object v6, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  939. array-length v7, v4
  940. invoke-static {v4, v9, v6, v9, v7}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  941. .line 404
  942. iget-object v6, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  943. array-length v7, v3
  944. invoke-static {v3, v9, v6, v9, v7}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  945. .line 407
  946. :cond_3
  947. iget v6, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  948. invoke-static {v4, v3, v6}, Landroid/support/v4/util/SimpleArrayMap;->freeArrays([I[Ljava/lang/Object;I)V
  949. .line 410
  950. .end local v2 # "n":I
  951. .end local v3 # "oarray":[Ljava/lang/Object;
  952. .end local v4 # "ohashes":[I
  953. :cond_4
  954. iget v6, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  955. if-ge v1, v6, :cond_5
  956. .line 413
  957. iget-object v6, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  958. iget-object v7, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  959. add-int/lit8 v8, v1, 0x1
  960. iget v9, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  961. sub-int/2addr v9, v1
  962. invoke-static {v6, v1, v7, v8, v9}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  963. .line 414
  964. iget-object v6, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  965. shl-int/lit8 v7, v1, 0x1
  966. iget-object v8, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  967. add-int/lit8 v9, v1, 0x1
  968. shl-int/lit8 v9, v9, 0x1
  969. iget v10, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  970. sub-int/2addr v10, v1
  971. shl-int/lit8 v10, v10, 0x1
  972. invoke-static {v6, v7, v8, v9, v10}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  973. .line 417
  974. :cond_5
  975. iget-object v6, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  976. aput v0, v6, v1
  977. .line 418
  978. iget-object v6, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  979. shl-int/lit8 v7, v1, 0x1
  980. aput-object p1, v6, v7
  981. .line 419
  982. iget-object v6, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  983. shl-int/lit8 v7, v1, 0x1
  984. add-int/lit8 v7, v7, 0x1
  985. aput-object p2, v6, v7
  986. .line 420
  987. iget v6, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  988. add-int/lit8 v6, v6, 0x1
  989. iput v6, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  990. .line 421
  991. const/4 v5, 0x0
  992. goto :goto_1
  993. .line 392
  994. :cond_6
  995. iget v7, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  996. if-ge v7, v6, :cond_2
  997. move v2, v6
  998. goto :goto_2
  999. .end method
  1000. .method public putAll(Landroid/support/v4/util/SimpleArrayMap;)V
  1001. .locals 6
  1002. .annotation system Ldalvik/annotation/Signature;
  1003. value = {
  1004. "(",
  1005. "Landroid/support/v4/util/SimpleArrayMap",
  1006. "<+TK;+TV;>;)V"
  1007. }
  1008. .end annotation
  1009. .prologue
  1010. .local p0, "this":Landroid/support/v4/util/SimpleArrayMap;, "Landroid/support/v4/util/SimpleArrayMap<TK;TV;>;"
  1011. .local p1, "array":Landroid/support/v4/util/SimpleArrayMap;, "Landroid/support/v4/util/SimpleArrayMap<+TK;+TV;>;"
  1012. const/4 v5, 0x0
  1013. .line 429
  1014. iget v0, p1, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  1015. .line 430
  1016. .local v0, "N":I
  1017. iget v2, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  1018. add-int/2addr v2, v0
  1019. invoke-virtual {p0, v2}, Landroid/support/v4/util/SimpleArrayMap;->ensureCapacity(I)V
  1020. .line 431
  1021. iget v2, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  1022. if-nez v2, :cond_1
  1023. .line 432
  1024. if-lez v0, :cond_0
  1025. .line 433
  1026. iget-object v2, p1, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  1027. iget-object v3, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  1028. invoke-static {v2, v5, v3, v5, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  1029. .line 434
  1030. iget-object v2, p1, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  1031. iget-object v3, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  1032. shl-int/lit8 v4, v0, 0x1
  1033. invoke-static {v2, v5, v3, v5, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  1034. .line 435
  1035. iput v0, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  1036. .line 442
  1037. :cond_0
  1038. return-void
  1039. .line 438
  1040. :cond_1
  1041. const/4 v1, 0x0
  1042. .local v1, "i":I
  1043. :goto_0
  1044. if-ge v1, v0, :cond_0
  1045. .line 439
  1046. invoke-virtual {p1, v1}, Landroid/support/v4/util/SimpleArrayMap;->keyAt(I)Ljava/lang/Object;
  1047. move-result-object v2
  1048. invoke-virtual {p1, v1}, Landroid/support/v4/util/SimpleArrayMap;->valueAt(I)Ljava/lang/Object;
  1049. move-result-object v3
  1050. invoke-virtual {p0, v2, v3}, Landroid/support/v4/util/SimpleArrayMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
  1051. .line 438
  1052. add-int/lit8 v1, v1, 0x1
  1053. goto :goto_0
  1054. .end method
  1055. .method public remove(Ljava/lang/Object;)Ljava/lang/Object;
  1056. .locals 2
  1057. .param p1, "key" # Ljava/lang/Object;
  1058. .annotation system Ldalvik/annotation/Signature;
  1059. value = {
  1060. "(",
  1061. "Ljava/lang/Object;",
  1062. ")TV;"
  1063. }
  1064. .end annotation
  1065. .prologue
  1066. .line 451
  1067. .local p0, "this":Landroid/support/v4/util/SimpleArrayMap;, "Landroid/support/v4/util/SimpleArrayMap<TK;TV;>;"
  1068. invoke-virtual {p0, p1}, Landroid/support/v4/util/SimpleArrayMap;->indexOfKey(Ljava/lang/Object;)I
  1069. move-result v0
  1070. .line 452
  1071. .local v0, "index":I
  1072. if-ltz v0, :cond_0
  1073. .line 453
  1074. invoke-virtual {p0, v0}, Landroid/support/v4/util/SimpleArrayMap;->removeAt(I)Ljava/lang/Object;
  1075. move-result-object v1
  1076. .line 456
  1077. :goto_0
  1078. return-object v1
  1079. :cond_0
  1080. const/4 v1, 0x0
  1081. goto :goto_0
  1082. .end method
  1083. .method public removeAt(I)Ljava/lang/Object;
  1084. .locals 10
  1085. .param p1, "index" # I
  1086. .annotation system Ldalvik/annotation/Signature;
  1087. value = {
  1088. "(I)TV;"
  1089. }
  1090. .end annotation
  1091. .prologue
  1092. .local p0, "this":Landroid/support/v4/util/SimpleArrayMap;, "Landroid/support/v4/util/SimpleArrayMap<TK;TV;>;"
  1093. const/4 v9, 0x0
  1094. const/16 v0, 0x8
  1095. const/4 v7, 0x0
  1096. .line 465
  1097. iget-object v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  1098. shl-int/lit8 v5, p1, 0x1
  1099. add-int/lit8 v5, v5, 0x1
  1100. aget-object v3, v4, v5
  1101. .line 466
  1102. .local v3, "old":Ljava/lang/Object;
  1103. iget v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  1104. const/4 v5, 0x1
  1105. if-gt v4, v5, :cond_1
  1106. .line 469
  1107. iget-object v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  1108. iget-object v5, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  1109. iget v6, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  1110. invoke-static {v4, v5, v6}, Landroid/support/v4/util/SimpleArrayMap;->freeArrays([I[Ljava/lang/Object;I)V
  1111. .line 470
  1112. sget-object v4, Landroid/support/v4/util/ContainerHelpers;->EMPTY_INTS:[I
  1113. iput-object v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  1114. .line 471
  1115. sget-object v4, Landroid/support/v4/util/ContainerHelpers;->EMPTY_OBJECTS:[Ljava/lang/Object;
  1116. iput-object v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  1117. .line 472
  1118. iput v7, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  1119. .line 512
  1120. :cond_0
  1121. :goto_0
  1122. return-object v3
  1123. .line 474
  1124. :cond_1
  1125. iget-object v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  1126. array-length v4, v4
  1127. if-le v4, v0, :cond_4
  1128. iget v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  1129. iget-object v5, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  1130. array-length v5, v5
  1131. div-int/lit8 v5, v5, 0x3
  1132. if-ge v4, v5, :cond_4
  1133. .line 478
  1134. iget v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  1135. if-le v4, v0, :cond_2
  1136. iget v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  1137. iget v5, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  1138. shr-int/lit8 v5, v5, 0x1
  1139. add-int v0, v4, v5
  1140. .line 482
  1141. .local v0, "n":I
  1142. :cond_2
  1143. iget-object v2, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  1144. .line 483
  1145. .local v2, "ohashes":[I
  1146. iget-object v1, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  1147. .line 484
  1148. .local v1, "oarray":[Ljava/lang/Object;
  1149. invoke-direct {p0, v0}, Landroid/support/v4/util/SimpleArrayMap;->allocArrays(I)V
  1150. .line 486
  1151. iget v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  1152. add-int/lit8 v4, v4, -0x1
  1153. iput v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  1154. .line 487
  1155. if-lez p1, :cond_3
  1156. .line 489
  1157. iget-object v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  1158. invoke-static {v2, v7, v4, v7, p1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  1159. .line 490
  1160. iget-object v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  1161. shl-int/lit8 v5, p1, 0x1
  1162. invoke-static {v1, v7, v4, v7, v5}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  1163. .line 492
  1164. :cond_3
  1165. iget v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  1166. if-ge p1, v4, :cond_0
  1167. .line 495
  1168. add-int/lit8 v4, p1, 0x1
  1169. iget-object v5, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  1170. iget v6, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  1171. sub-int/2addr v6, p1
  1172. invoke-static {v2, v4, v5, p1, v6}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  1173. .line 496
  1174. add-int/lit8 v4, p1, 0x1
  1175. shl-int/lit8 v4, v4, 0x1
  1176. iget-object v5, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  1177. shl-int/lit8 v6, p1, 0x1
  1178. iget v7, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  1179. sub-int/2addr v7, p1
  1180. shl-int/lit8 v7, v7, 0x1
  1181. invoke-static {v1, v4, v5, v6, v7}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  1182. goto :goto_0
  1183. .line 500
  1184. .end local v0 # "n":I
  1185. .end local v1 # "oarray":[Ljava/lang/Object;
  1186. .end local v2 # "ohashes":[I
  1187. :cond_4
  1188. iget v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  1189. add-int/lit8 v4, v4, -0x1
  1190. iput v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  1191. .line 501
  1192. iget v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  1193. if-ge p1, v4, :cond_5
  1194. .line 504
  1195. iget-object v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  1196. add-int/lit8 v5, p1, 0x1
  1197. iget-object v6, p0, Landroid/support/v4/util/SimpleArrayMap;->mHashes:[I
  1198. iget v7, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  1199. sub-int/2addr v7, p1
  1200. invoke-static {v4, v5, v6, p1, v7}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  1201. .line 505
  1202. iget-object v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  1203. add-int/lit8 v5, p1, 0x1
  1204. shl-int/lit8 v5, v5, 0x1
  1205. iget-object v6, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  1206. shl-int/lit8 v7, p1, 0x1
  1207. iget v8, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  1208. sub-int/2addr v8, p1
  1209. shl-int/lit8 v8, v8, 0x1
  1210. invoke-static {v4, v5, v6, v7, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  1211. .line 508
  1212. :cond_5
  1213. iget-object v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  1214. iget v5, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  1215. shl-int/lit8 v5, v5, 0x1
  1216. aput-object v9, v4, v5
  1217. .line 509
  1218. iget-object v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  1219. iget v5, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  1220. shl-int/lit8 v5, v5, 0x1
  1221. add-int/lit8 v5, v5, 0x1
  1222. aput-object v9, v4, v5
  1223. goto/16 :goto_0
  1224. .end method
  1225. .method public setValueAt(ILjava/lang/Object;)Ljava/lang/Object;
  1226. .locals 2
  1227. .param p1, "index" # I
  1228. .annotation system Ldalvik/annotation/Signature;
  1229. value = {
  1230. "(ITV;)TV;"
  1231. }
  1232. .end annotation
  1233. .prologue
  1234. .line 352
  1235. .local p0, "this":Landroid/support/v4/util/SimpleArrayMap;, "Landroid/support/v4/util/SimpleArrayMap<TK;TV;>;"
  1236. .local p2, "value":Ljava/lang/Object;, "TV;"
  1237. shl-int/lit8 v1, p1, 0x1
  1238. add-int/lit8 p1, v1, 0x1
  1239. .line 353
  1240. iget-object v1, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  1241. aget-object v0, v1, p1
  1242. .line 354
  1243. .local v0, "old":Ljava/lang/Object;, "TV;"
  1244. iget-object v1, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  1245. aput-object p2, v1, p1
  1246. .line 355
  1247. return-object v0
  1248. .end method
  1249. .method public size()I
  1250. .locals 1
  1251. .prologue
  1252. .line 519
  1253. .local p0, "this":Landroid/support/v4/util/SimpleArrayMap;, "Landroid/support/v4/util/SimpleArrayMap<TK;TV;>;"
  1254. iget v0, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  1255. return v0
  1256. .end method
  1257. .method public toString()Ljava/lang/String;
  1258. .locals 5
  1259. .prologue
  1260. .line 588
  1261. .local p0, "this":Landroid/support/v4/util/SimpleArrayMap;, "Landroid/support/v4/util/SimpleArrayMap<TK;TV;>;"
  1262. invoke-virtual {p0}, Landroid/support/v4/util/SimpleArrayMap;->isEmpty()Z
  1263. move-result v4
  1264. if-eqz v4, :cond_0
  1265. .line 589
  1266. const-string v4, "{}"
  1267. .line 613
  1268. :goto_0
  1269. return-object v4
  1270. .line 592
  1271. :cond_0
  1272. new-instance v0, Ljava/lang/StringBuilder;
  1273. iget v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  1274. mul-int/lit8 v4, v4, 0x1c
  1275. invoke-direct {v0, v4}, Ljava/lang/StringBuilder;-><init>(I)V
  1276. .line 593
  1277. .local v0, "buffer":Ljava/lang/StringBuilder;
  1278. const/16 v4, 0x7b
  1279. invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
  1280. .line 594
  1281. const/4 v1, 0x0
  1282. .local v1, "i":I
  1283. :goto_1
  1284. iget v4, p0, Landroid/support/v4/util/SimpleArrayMap;->mSize:I
  1285. if-ge v1, v4, :cond_4
  1286. .line 595
  1287. if-lez v1, :cond_1
  1288. .line 596
  1289. const-string v4, ", "
  1290. invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1291. .line 598
  1292. :cond_1
  1293. invoke-virtual {p0, v1}, Landroid/support/v4/util/SimpleArrayMap;->keyAt(I)Ljava/lang/Object;
  1294. move-result-object v2
  1295. .line 599
  1296. .local v2, "key":Ljava/lang/Object;
  1297. if-eq v2, p0, :cond_2
  1298. .line 600
  1299. invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
  1300. .line 604
  1301. :goto_2
  1302. const/16 v4, 0x3d
  1303. invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
  1304. .line 605
  1305. invoke-virtual {p0, v1}, Landroid/support/v4/util/SimpleArrayMap;->valueAt(I)Ljava/lang/Object;
  1306. move-result-object v3
  1307. .line 606
  1308. .local v3, "value":Ljava/lang/Object;
  1309. if-eq v3, p0, :cond_3
  1310. .line 607
  1311. invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
  1312. .line 594
  1313. :goto_3
  1314. add-int/lit8 v1, v1, 0x1
  1315. goto :goto_1
  1316. .line 602
  1317. .end local v3 # "value":Ljava/lang/Object;
  1318. :cond_2
  1319. const-string v4, "(this Map)"
  1320. invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1321. goto :goto_2
  1322. .line 609
  1323. .restart local v3 # "value":Ljava/lang/Object;
  1324. :cond_3
  1325. const-string v4, "(this Map)"
  1326. invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1327. goto :goto_3
  1328. .line 612
  1329. .end local v2 # "key":Ljava/lang/Object;
  1330. .end local v3 # "value":Ljava/lang/Object;
  1331. :cond_4
  1332. const/16 v4, 0x7d
  1333. invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
  1334. .line 613
  1335. invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  1336. move-result-object v4
  1337. goto :goto_0
  1338. .end method
  1339. .method public valueAt(I)Ljava/lang/Object;
  1340. .locals 2
  1341. .param p1, "index" # I
  1342. .annotation system Ldalvik/annotation/Signature;
  1343. value = {
  1344. "(I)TV;"
  1345. }
  1346. .end annotation
  1347. .prologue
  1348. .line 342
  1349. .local p0, "this":Landroid/support/v4/util/SimpleArrayMap;, "Landroid/support/v4/util/SimpleArrayMap<TK;TV;>;"
  1350. iget-object v0, p0, Landroid/support/v4/util/SimpleArrayMap;->mArray:[Ljava/lang/Object;
  1351. shl-int/lit8 v1, p1, 0x1
  1352. add-int/lit8 v1, v1, 0x1
  1353. aget-object v0, v0, v1
  1354. return-object v0
  1355. .end method