PositionMap.smali 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999
  1. .class Landroid/support/v7/widget/PositionMap;
  2. .super Ljava/lang/Object;
  3. .source ""
  4. # interfaces
  5. .implements Ljava/lang/Cloneable;
  6. # annotations
  7. .annotation system Ldalvik/annotation/MemberClasses;
  8. value = {
  9. Landroid/support/v7/widget/PositionMap$ContainerHelpers;
  10. }
  11. .end annotation
  12. .annotation system Ldalvik/annotation/Signature;
  13. value = {
  14. "<E:",
  15. "Ljava/lang/Object;",
  16. ">",
  17. "Ljava/lang/Object;",
  18. "Ljava/lang/Cloneable;"
  19. }
  20. .end annotation
  21. # static fields
  22. .field private static final DELETED:Ljava/lang/Object;
  23. # instance fields
  24. .field private mGarbage:Z
  25. .field private mKeys:[I
  26. .field private mSize:I
  27. .field private mValues:[Ljava/lang/Object;
  28. # direct methods
  29. .method static constructor <clinit>()V
  30. .locals 1
  31. new-instance v0, Ljava/lang/Object;
  32. invoke-direct {v0}, Ljava/lang/Object;-><init>()V
  33. sput-object v0, Landroid/support/v7/widget/PositionMap;->DELETED:Ljava/lang/Object;
  34. return-void
  35. .end method
  36. .method public constructor <init>()V
  37. .locals 1
  38. const/16 v0, 0xa
  39. invoke-direct {p0, v0}, Landroid/support/v7/widget/PositionMap;-><init>(I)V
  40. return-void
  41. .end method
  42. .method public constructor <init>(I)V
  43. .locals 2
  44. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  45. const/4 v0, 0x0
  46. iput-boolean v0, p0, Landroid/support/v7/widget/PositionMap;->mGarbage:Z
  47. if-nez p1, :cond_0
  48. sget-object p1, Landroid/support/v7/widget/PositionMap$ContainerHelpers;->EMPTY_INTS:[I
  49. iput-object p1, p0, Landroid/support/v7/widget/PositionMap;->mKeys:[I
  50. sget-object p1, Landroid/support/v7/widget/PositionMap$ContainerHelpers;->EMPTY_OBJECTS:[Ljava/lang/Object;
  51. iput-object p1, p0, Landroid/support/v7/widget/PositionMap;->mValues:[Ljava/lang/Object;
  52. goto :goto_0
  53. :cond_0
  54. invoke-static {p1}, Landroid/support/v7/widget/PositionMap;->idealIntArraySize(I)I
  55. move-result p1
  56. new-array v1, p1, [I
  57. iput-object v1, p0, Landroid/support/v7/widget/PositionMap;->mKeys:[I
  58. new-array p1, p1, [Ljava/lang/Object;
  59. iput-object p1, p0, Landroid/support/v7/widget/PositionMap;->mValues:[Ljava/lang/Object;
  60. :goto_0
  61. iput v0, p0, Landroid/support/v7/widget/PositionMap;->mSize:I
  62. return-void
  63. .end method
  64. .method private gc()V
  65. .locals 8
  66. iget v0, p0, Landroid/support/v7/widget/PositionMap;->mSize:I
  67. iget-object v1, p0, Landroid/support/v7/widget/PositionMap;->mKeys:[I
  68. iget-object v2, p0, Landroid/support/v7/widget/PositionMap;->mValues:[Ljava/lang/Object;
  69. const/4 v3, 0x0
  70. const/4 v4, 0x0
  71. const/4 v5, 0x0
  72. :goto_0
  73. if-ge v4, v0, :cond_2
  74. aget-object v6, v2, v4
  75. sget-object v7, Landroid/support/v7/widget/PositionMap;->DELETED:Ljava/lang/Object;
  76. if-eq v6, v7, :cond_1
  77. if-eq v4, v5, :cond_0
  78. aget v7, v1, v4
  79. aput v7, v1, v5
  80. aput-object v6, v2, v5
  81. const/4 v6, 0x0
  82. aput-object v6, v2, v4
  83. :cond_0
  84. add-int/lit8 v5, v5, 0x1
  85. :cond_1
  86. add-int/lit8 v4, v4, 0x1
  87. goto :goto_0
  88. :cond_2
  89. iput-boolean v3, p0, Landroid/support/v7/widget/PositionMap;->mGarbage:Z
  90. iput v5, p0, Landroid/support/v7/widget/PositionMap;->mSize:I
  91. return-void
  92. .end method
  93. .method static idealBooleanArraySize(I)I
  94. .locals 0
  95. invoke-static {p0}, Landroid/support/v7/widget/PositionMap;->idealByteArraySize(I)I
  96. move-result p0
  97. return p0
  98. .end method
  99. .method static idealByteArraySize(I)I
  100. .locals 2
  101. const/4 v0, 0x4
  102. :goto_0
  103. const/16 v1, 0x20
  104. if-ge v0, v1, :cond_1
  105. const/4 v1, 0x1
  106. shl-int/2addr v1, v0
  107. add-int/lit8 v1, v1, -0xc
  108. if-gt p0, v1, :cond_0
  109. return v1
  110. :cond_0
  111. add-int/lit8 v0, v0, 0x1
  112. goto :goto_0
  113. :cond_1
  114. return p0
  115. .end method
  116. .method static idealCharArraySize(I)I
  117. .locals 0
  118. mul-int/lit8 p0, p0, 0x2
  119. invoke-static {p0}, Landroid/support/v7/widget/PositionMap;->idealByteArraySize(I)I
  120. move-result p0
  121. div-int/lit8 p0, p0, 0x2
  122. return p0
  123. .end method
  124. .method static idealFloatArraySize(I)I
  125. .locals 0
  126. mul-int/lit8 p0, p0, 0x4
  127. invoke-static {p0}, Landroid/support/v7/widget/PositionMap;->idealByteArraySize(I)I
  128. move-result p0
  129. div-int/lit8 p0, p0, 0x4
  130. return p0
  131. .end method
  132. .method static idealIntArraySize(I)I
  133. .locals 0
  134. mul-int/lit8 p0, p0, 0x4
  135. invoke-static {p0}, Landroid/support/v7/widget/PositionMap;->idealByteArraySize(I)I
  136. move-result p0
  137. div-int/lit8 p0, p0, 0x4
  138. return p0
  139. .end method
  140. .method static idealLongArraySize(I)I
  141. .locals 0
  142. mul-int/lit8 p0, p0, 0x8
  143. invoke-static {p0}, Landroid/support/v7/widget/PositionMap;->idealByteArraySize(I)I
  144. move-result p0
  145. div-int/lit8 p0, p0, 0x8
  146. return p0
  147. .end method
  148. .method static idealObjectArraySize(I)I
  149. .locals 0
  150. mul-int/lit8 p0, p0, 0x4
  151. invoke-static {p0}, Landroid/support/v7/widget/PositionMap;->idealByteArraySize(I)I
  152. move-result p0
  153. div-int/lit8 p0, p0, 0x4
  154. return p0
  155. .end method
  156. .method static idealShortArraySize(I)I
  157. .locals 0
  158. mul-int/lit8 p0, p0, 0x2
  159. invoke-static {p0}, Landroid/support/v7/widget/PositionMap;->idealByteArraySize(I)I
  160. move-result p0
  161. div-int/lit8 p0, p0, 0x2
  162. return p0
  163. .end method
  164. # virtual methods
  165. .method public append(ILjava/lang/Object;)V
  166. .locals 6
  167. .annotation system Ldalvik/annotation/Signature;
  168. value = {
  169. "(ITE;)V"
  170. }
  171. .end annotation
  172. iget v0, p0, Landroid/support/v7/widget/PositionMap;->mSize:I
  173. if-eqz v0, :cond_0
  174. iget-object v1, p0, Landroid/support/v7/widget/PositionMap;->mKeys:[I
  175. add-int/lit8 v0, v0, -0x1
  176. aget v0, v1, v0
  177. if-gt p1, v0, :cond_0
  178. invoke-virtual {p0, p1, p2}, Landroid/support/v7/widget/PositionMap;->put(ILjava/lang/Object;)V
  179. return-void
  180. :cond_0
  181. iget-boolean v0, p0, Landroid/support/v7/widget/PositionMap;->mGarbage:Z
  182. if-eqz v0, :cond_1
  183. iget v0, p0, Landroid/support/v7/widget/PositionMap;->mSize:I
  184. iget-object v1, p0, Landroid/support/v7/widget/PositionMap;->mKeys:[I
  185. array-length v1, v1
  186. if-lt v0, v1, :cond_1
  187. invoke-direct {p0}, Landroid/support/v7/widget/PositionMap;->gc()V
  188. :cond_1
  189. iget v0, p0, Landroid/support/v7/widget/PositionMap;->mSize:I
  190. iget-object v1, p0, Landroid/support/v7/widget/PositionMap;->mKeys:[I
  191. array-length v1, v1
  192. if-lt v0, v1, :cond_2
  193. add-int/lit8 v1, v0, 0x1
  194. invoke-static {v1}, Landroid/support/v7/widget/PositionMap;->idealIntArraySize(I)I
  195. move-result v1
  196. new-array v2, v1, [I
  197. new-array v1, v1, [Ljava/lang/Object;
  198. iget-object v3, p0, Landroid/support/v7/widget/PositionMap;->mKeys:[I
  199. array-length v4, v3
  200. const/4 v5, 0x0
  201. invoke-static {v3, v5, v2, v5, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  202. iget-object v3, p0, Landroid/support/v7/widget/PositionMap;->mValues:[Ljava/lang/Object;
  203. array-length v4, v3
  204. invoke-static {v3, v5, v1, v5, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  205. iput-object v2, p0, Landroid/support/v7/widget/PositionMap;->mKeys:[I
  206. iput-object v1, p0, Landroid/support/v7/widget/PositionMap;->mValues:[Ljava/lang/Object;
  207. :cond_2
  208. iget-object v1, p0, Landroid/support/v7/widget/PositionMap;->mKeys:[I
  209. aput p1, v1, v0
  210. iget-object p1, p0, Landroid/support/v7/widget/PositionMap;->mValues:[Ljava/lang/Object;
  211. aput-object p2, p1, v0
  212. add-int/lit8 v0, v0, 0x1
  213. iput v0, p0, Landroid/support/v7/widget/PositionMap;->mSize:I
  214. return-void
  215. .end method
  216. .method public clear()V
  217. .locals 5
  218. iget v0, p0, Landroid/support/v7/widget/PositionMap;->mSize:I
  219. iget-object v1, p0, Landroid/support/v7/widget/PositionMap;->mValues:[Ljava/lang/Object;
  220. const/4 v2, 0x0
  221. const/4 v3, 0x0
  222. :goto_0
  223. if-ge v3, v0, :cond_0
  224. const/4 v4, 0x0
  225. aput-object v4, v1, v3
  226. add-int/lit8 v3, v3, 0x1
  227. goto :goto_0
  228. :cond_0
  229. iput v2, p0, Landroid/support/v7/widget/PositionMap;->mSize:I
  230. iput-boolean v2, p0, Landroid/support/v7/widget/PositionMap;->mGarbage:Z
  231. return-void
  232. .end method
  233. .method public clone()Landroid/support/v7/widget/PositionMap;
  234. .locals 2
  235. .annotation system Ldalvik/annotation/Signature;
  236. value = {
  237. "()",
  238. "Landroid/support/v7/widget/PositionMap<",
  239. "TE;>;"
  240. }
  241. .end annotation
  242. const/4 v0, 0x0
  243. :try_start_0
  244. invoke-super {p0}, Ljava/lang/Object;->clone()Ljava/lang/Object;
  245. move-result-object v1
  246. check-cast v1, Landroid/support/v7/widget/PositionMap;
  247. :try_end_0
  248. .catch Ljava/lang/CloneNotSupportedException; {:try_start_0 .. :try_end_0} :catch_0
  249. :try_start_1
  250. iget-object v0, p0, Landroid/support/v7/widget/PositionMap;->mKeys:[I
  251. invoke-virtual {v0}, [I->clone()Ljava/lang/Object;
  252. move-result-object v0
  253. check-cast v0, [I
  254. iput-object v0, v1, Landroid/support/v7/widget/PositionMap;->mKeys:[I
  255. iget-object v0, p0, Landroid/support/v7/widget/PositionMap;->mValues:[Ljava/lang/Object;
  256. invoke-virtual {v0}, [Ljava/lang/Object;->clone()Ljava/lang/Object;
  257. move-result-object v0
  258. check-cast v0, [Ljava/lang/Object;
  259. iput-object v0, v1, Landroid/support/v7/widget/PositionMap;->mValues:[Ljava/lang/Object;
  260. :try_end_1
  261. .catch Ljava/lang/CloneNotSupportedException; {:try_start_1 .. :try_end_1} :catch_1
  262. goto :goto_0
  263. :catch_0
  264. move-object v1, v0
  265. :catch_1
  266. :goto_0
  267. return-object v1
  268. .end method
  269. .method public bridge synthetic clone()Ljava/lang/Object;
  270. .locals 1
  271. .annotation system Ldalvik/annotation/Throws;
  272. value = {
  273. Ljava/lang/CloneNotSupportedException;
  274. }
  275. .end annotation
  276. invoke-virtual {p0}, Landroid/support/v7/widget/PositionMap;->clone()Landroid/support/v7/widget/PositionMap;
  277. move-result-object v0
  278. return-object v0
  279. .end method
  280. .method public delete(I)V
  281. .locals 3
  282. iget-object v0, p0, Landroid/support/v7/widget/PositionMap;->mKeys:[I
  283. iget v1, p0, Landroid/support/v7/widget/PositionMap;->mSize:I
  284. invoke-static {v0, v1, p1}, Landroid/support/v7/widget/PositionMap$ContainerHelpers;->binarySearch([III)I
  285. move-result p1
  286. if-ltz p1, :cond_0
  287. iget-object v0, p0, Landroid/support/v7/widget/PositionMap;->mValues:[Ljava/lang/Object;
  288. aget-object v1, v0, p1
  289. sget-object v2, Landroid/support/v7/widget/PositionMap;->DELETED:Ljava/lang/Object;
  290. if-eq v1, v2, :cond_0
  291. aput-object v2, v0, p1
  292. const/4 p1, 0x1
  293. iput-boolean p1, p0, Landroid/support/v7/widget/PositionMap;->mGarbage:Z
  294. :cond_0
  295. return-void
  296. .end method
  297. .method public get(I)Ljava/lang/Object;
  298. .locals 1
  299. .annotation system Ldalvik/annotation/Signature;
  300. value = {
  301. "(I)TE;"
  302. }
  303. .end annotation
  304. const/4 v0, 0x0
  305. invoke-virtual {p0, p1, v0}, Landroid/support/v7/widget/PositionMap;->get(ILjava/lang/Object;)Ljava/lang/Object;
  306. move-result-object p1
  307. return-object p1
  308. .end method
  309. .method public get(ILjava/lang/Object;)Ljava/lang/Object;
  310. .locals 3
  311. .annotation system Ldalvik/annotation/Signature;
  312. value = {
  313. "(ITE;)TE;"
  314. }
  315. .end annotation
  316. iget-object v0, p0, Landroid/support/v7/widget/PositionMap;->mKeys:[I
  317. iget v1, p0, Landroid/support/v7/widget/PositionMap;->mSize:I
  318. invoke-static {v0, v1, p1}, Landroid/support/v7/widget/PositionMap$ContainerHelpers;->binarySearch([III)I
  319. move-result p1
  320. if-ltz p1, :cond_1
  321. iget-object v0, p0, Landroid/support/v7/widget/PositionMap;->mValues:[Ljava/lang/Object;
  322. aget-object v1, v0, p1
  323. sget-object v2, Landroid/support/v7/widget/PositionMap;->DELETED:Ljava/lang/Object;
  324. if-ne v1, v2, :cond_0
  325. goto :goto_0
  326. :cond_0
  327. aget-object p1, v0, p1
  328. return-object p1
  329. :cond_1
  330. :goto_0
  331. return-object p2
  332. .end method
  333. .method public indexOfKey(I)I
  334. .locals 2
  335. iget-boolean v0, p0, Landroid/support/v7/widget/PositionMap;->mGarbage:Z
  336. if-eqz v0, :cond_0
  337. invoke-direct {p0}, Landroid/support/v7/widget/PositionMap;->gc()V
  338. :cond_0
  339. iget-object v0, p0, Landroid/support/v7/widget/PositionMap;->mKeys:[I
  340. iget v1, p0, Landroid/support/v7/widget/PositionMap;->mSize:I
  341. invoke-static {v0, v1, p1}, Landroid/support/v7/widget/PositionMap$ContainerHelpers;->binarySearch([III)I
  342. move-result p1
  343. return p1
  344. .end method
  345. .method public indexOfValue(Ljava/lang/Object;)I
  346. .locals 2
  347. .annotation system Ldalvik/annotation/Signature;
  348. value = {
  349. "(TE;)I"
  350. }
  351. .end annotation
  352. iget-boolean v0, p0, Landroid/support/v7/widget/PositionMap;->mGarbage:Z
  353. if-eqz v0, :cond_0
  354. invoke-direct {p0}, Landroid/support/v7/widget/PositionMap;->gc()V
  355. :cond_0
  356. const/4 v0, 0x0
  357. :goto_0
  358. iget v1, p0, Landroid/support/v7/widget/PositionMap;->mSize:I
  359. if-ge v0, v1, :cond_2
  360. iget-object v1, p0, Landroid/support/v7/widget/PositionMap;->mValues:[Ljava/lang/Object;
  361. aget-object v1, v1, v0
  362. if-ne v1, p1, :cond_1
  363. return v0
  364. :cond_1
  365. add-int/lit8 v0, v0, 0x1
  366. goto :goto_0
  367. :cond_2
  368. const/4 p1, -0x1
  369. return p1
  370. .end method
  371. .method public insertKeyRange(II)V
  372. .locals 0
  373. return-void
  374. .end method
  375. .method public keyAt(I)I
  376. .locals 1
  377. iget-boolean v0, p0, Landroid/support/v7/widget/PositionMap;->mGarbage:Z
  378. if-eqz v0, :cond_0
  379. invoke-direct {p0}, Landroid/support/v7/widget/PositionMap;->gc()V
  380. :cond_0
  381. iget-object v0, p0, Landroid/support/v7/widget/PositionMap;->mKeys:[I
  382. aget p1, v0, p1
  383. return p1
  384. .end method
  385. .method public put(ILjava/lang/Object;)V
  386. .locals 6
  387. .annotation system Ldalvik/annotation/Signature;
  388. value = {
  389. "(ITE;)V"
  390. }
  391. .end annotation
  392. iget-object v0, p0, Landroid/support/v7/widget/PositionMap;->mKeys:[I
  393. iget v1, p0, Landroid/support/v7/widget/PositionMap;->mSize:I
  394. invoke-static {v0, v1, p1}, Landroid/support/v7/widget/PositionMap$ContainerHelpers;->binarySearch([III)I
  395. move-result v0
  396. if-ltz v0, :cond_0
  397. iget-object p1, p0, Landroid/support/v7/widget/PositionMap;->mValues:[Ljava/lang/Object;
  398. aput-object p2, p1, v0
  399. goto :goto_0
  400. :cond_0
  401. xor-int/lit8 v0, v0, -0x1
  402. iget v1, p0, Landroid/support/v7/widget/PositionMap;->mSize:I
  403. if-ge v0, v1, :cond_1
  404. iget-object v1, p0, Landroid/support/v7/widget/PositionMap;->mValues:[Ljava/lang/Object;
  405. aget-object v2, v1, v0
  406. sget-object v3, Landroid/support/v7/widget/PositionMap;->DELETED:Ljava/lang/Object;
  407. if-ne v2, v3, :cond_1
  408. iget-object v2, p0, Landroid/support/v7/widget/PositionMap;->mKeys:[I
  409. aput p1, v2, v0
  410. aput-object p2, v1, v0
  411. return-void
  412. :cond_1
  413. iget-boolean v1, p0, Landroid/support/v7/widget/PositionMap;->mGarbage:Z
  414. if-eqz v1, :cond_2
  415. iget v1, p0, Landroid/support/v7/widget/PositionMap;->mSize:I
  416. iget-object v2, p0, Landroid/support/v7/widget/PositionMap;->mKeys:[I
  417. array-length v2, v2
  418. if-lt v1, v2, :cond_2
  419. invoke-direct {p0}, Landroid/support/v7/widget/PositionMap;->gc()V
  420. iget-object v0, p0, Landroid/support/v7/widget/PositionMap;->mKeys:[I
  421. iget v1, p0, Landroid/support/v7/widget/PositionMap;->mSize:I
  422. invoke-static {v0, v1, p1}, Landroid/support/v7/widget/PositionMap$ContainerHelpers;->binarySearch([III)I
  423. move-result v0
  424. xor-int/lit8 v0, v0, -0x1
  425. :cond_2
  426. iget v1, p0, Landroid/support/v7/widget/PositionMap;->mSize:I
  427. iget-object v2, p0, Landroid/support/v7/widget/PositionMap;->mKeys:[I
  428. array-length v2, v2
  429. if-lt v1, v2, :cond_3
  430. add-int/lit8 v1, v1, 0x1
  431. invoke-static {v1}, Landroid/support/v7/widget/PositionMap;->idealIntArraySize(I)I
  432. move-result v1
  433. new-array v2, v1, [I
  434. new-array v1, v1, [Ljava/lang/Object;
  435. iget-object v3, p0, Landroid/support/v7/widget/PositionMap;->mKeys:[I
  436. array-length v4, v3
  437. const/4 v5, 0x0
  438. invoke-static {v3, v5, v2, v5, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  439. iget-object v3, p0, Landroid/support/v7/widget/PositionMap;->mValues:[Ljava/lang/Object;
  440. array-length v4, v3
  441. invoke-static {v3, v5, v1, v5, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  442. iput-object v2, p0, Landroid/support/v7/widget/PositionMap;->mKeys:[I
  443. iput-object v1, p0, Landroid/support/v7/widget/PositionMap;->mValues:[Ljava/lang/Object;
  444. :cond_3
  445. iget v1, p0, Landroid/support/v7/widget/PositionMap;->mSize:I
  446. sub-int v2, v1, v0
  447. if-eqz v2, :cond_4
  448. iget-object v2, p0, Landroid/support/v7/widget/PositionMap;->mKeys:[I
  449. add-int/lit8 v3, v0, 0x1
  450. sub-int/2addr v1, v0
  451. invoke-static {v2, v0, v2, v3, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  452. iget-object v1, p0, Landroid/support/v7/widget/PositionMap;->mValues:[Ljava/lang/Object;
  453. iget v2, p0, Landroid/support/v7/widget/PositionMap;->mSize:I
  454. sub-int/2addr v2, v0
  455. invoke-static {v1, v0, v1, v3, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  456. :cond_4
  457. iget-object v1, p0, Landroid/support/v7/widget/PositionMap;->mKeys:[I
  458. aput p1, v1, v0
  459. iget-object p1, p0, Landroid/support/v7/widget/PositionMap;->mValues:[Ljava/lang/Object;
  460. aput-object p2, p1, v0
  461. iget p1, p0, Landroid/support/v7/widget/PositionMap;->mSize:I
  462. add-int/lit8 p1, p1, 0x1
  463. iput p1, p0, Landroid/support/v7/widget/PositionMap;->mSize:I
  464. :goto_0
  465. return-void
  466. .end method
  467. .method public remove(I)V
  468. .locals 0
  469. invoke-virtual {p0, p1}, Landroid/support/v7/widget/PositionMap;->delete(I)V
  470. return-void
  471. .end method
  472. .method public removeAt(I)V
  473. .locals 3
  474. iget-object v0, p0, Landroid/support/v7/widget/PositionMap;->mValues:[Ljava/lang/Object;
  475. aget-object v1, v0, p1
  476. sget-object v2, Landroid/support/v7/widget/PositionMap;->DELETED:Ljava/lang/Object;
  477. if-eq v1, v2, :cond_0
  478. aput-object v2, v0, p1
  479. const/4 p1, 0x1
  480. iput-boolean p1, p0, Landroid/support/v7/widget/PositionMap;->mGarbage:Z
  481. :cond_0
  482. return-void
  483. .end method
  484. .method public removeAtRange(II)V
  485. .locals 1
  486. iget v0, p0, Landroid/support/v7/widget/PositionMap;->mSize:I
  487. add-int/2addr p2, p1
  488. invoke-static {v0, p2}, Ljava/lang/Math;->min(II)I
  489. move-result p2
  490. :goto_0
  491. if-ge p1, p2, :cond_0
  492. invoke-virtual {p0, p1}, Landroid/support/v7/widget/PositionMap;->removeAt(I)V
  493. add-int/lit8 p1, p1, 0x1
  494. goto :goto_0
  495. :cond_0
  496. return-void
  497. .end method
  498. .method public removeKeyRange(Ljava/util/ArrayList;II)V
  499. .locals 0
  500. .annotation system Ldalvik/annotation/Signature;
  501. value = {
  502. "(",
  503. "Ljava/util/ArrayList<",
  504. "TE;>;II)V"
  505. }
  506. .end annotation
  507. return-void
  508. .end method
  509. .method public setValueAt(ILjava/lang/Object;)V
  510. .locals 1
  511. .annotation system Ldalvik/annotation/Signature;
  512. value = {
  513. "(ITE;)V"
  514. }
  515. .end annotation
  516. iget-boolean v0, p0, Landroid/support/v7/widget/PositionMap;->mGarbage:Z
  517. if-eqz v0, :cond_0
  518. invoke-direct {p0}, Landroid/support/v7/widget/PositionMap;->gc()V
  519. :cond_0
  520. iget-object v0, p0, Landroid/support/v7/widget/PositionMap;->mValues:[Ljava/lang/Object;
  521. aput-object p2, v0, p1
  522. return-void
  523. .end method
  524. .method public size()I
  525. .locals 1
  526. iget-boolean v0, p0, Landroid/support/v7/widget/PositionMap;->mGarbage:Z
  527. if-eqz v0, :cond_0
  528. invoke-direct {p0}, Landroid/support/v7/widget/PositionMap;->gc()V
  529. :cond_0
  530. iget v0, p0, Landroid/support/v7/widget/PositionMap;->mSize:I
  531. return v0
  532. .end method
  533. .method public toString()Ljava/lang/String;
  534. .locals 3
  535. invoke-virtual {p0}, Landroid/support/v7/widget/PositionMap;->size()I
  536. move-result v0
  537. if-gtz v0, :cond_0
  538. const-string v0, "{}"
  539. return-object v0
  540. :cond_0
  541. new-instance v0, Ljava/lang/StringBuilder;
  542. iget v1, p0, Landroid/support/v7/widget/PositionMap;->mSize:I
  543. mul-int/lit8 v1, v1, 0x1c
  544. invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(I)V
  545. const/16 v1, 0x7b
  546. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
  547. const/4 v1, 0x0
  548. :goto_0
  549. iget v2, p0, Landroid/support/v7/widget/PositionMap;->mSize:I
  550. if-ge v1, v2, :cond_3
  551. if-lez v1, :cond_1
  552. const-string v2, ", "
  553. invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  554. :cond_1
  555. invoke-virtual {p0, v1}, Landroid/support/v7/widget/PositionMap;->keyAt(I)I
  556. move-result v2
  557. invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  558. const/16 v2, 0x3d
  559. invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
  560. invoke-virtual {p0, v1}, Landroid/support/v7/widget/PositionMap;->valueAt(I)Ljava/lang/Object;
  561. move-result-object v2
  562. if-eq v2, p0, :cond_2
  563. invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
  564. goto :goto_1
  565. :cond_2
  566. const-string v2, "(this Map)"
  567. invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  568. :goto_1
  569. add-int/lit8 v1, v1, 0x1
  570. goto :goto_0
  571. :cond_3
  572. const/16 v1, 0x7d
  573. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
  574. invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  575. move-result-object v0
  576. return-object v0
  577. .end method
  578. .method public valueAt(I)Ljava/lang/Object;
  579. .locals 1
  580. .annotation system Ldalvik/annotation/Signature;
  581. value = {
  582. "(I)TE;"
  583. }
  584. .end annotation
  585. iget-boolean v0, p0, Landroid/support/v7/widget/PositionMap;->mGarbage:Z
  586. if-eqz v0, :cond_0
  587. invoke-direct {p0}, Landroid/support/v7/widget/PositionMap;->gc()V
  588. :cond_0
  589. iget-object v0, p0, Landroid/support/v7/widget/PositionMap;->mValues:[Ljava/lang/Object;
  590. aget-object p1, v0, p1
  591. return-object p1
  592. .end method