JsonTreeReader.smali 35 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334
  1. .class public final Lcom/google/gson/internal/bind/JsonTreeReader;
  2. .super Lcom/google/gson/stream/JsonReader;
  3. .source ""
  4. # static fields
  5. .field private static final SENTINEL_CLOSED:Ljava/lang/Object;
  6. .field private static final UNREADABLE_READER:Ljava/io/Reader;
  7. # instance fields
  8. .field private pathIndices:[I
  9. .field private pathNames:[Ljava/lang/String;
  10. .field private stack:[Ljava/lang/Object;
  11. .field private stackSize:I
  12. # direct methods
  13. .method static constructor <clinit>()V
  14. .locals 1
  15. new-instance v0, Lcom/google/gson/internal/bind/JsonTreeReader$1;
  16. invoke-direct {v0}, Lcom/google/gson/internal/bind/JsonTreeReader$1;-><init>()V
  17. sput-object v0, Lcom/google/gson/internal/bind/JsonTreeReader;->UNREADABLE_READER:Ljava/io/Reader;
  18. new-instance v0, Ljava/lang/Object;
  19. invoke-direct {v0}, Ljava/lang/Object;-><init>()V
  20. sput-object v0, Lcom/google/gson/internal/bind/JsonTreeReader;->SENTINEL_CLOSED:Ljava/lang/Object;
  21. return-void
  22. .end method
  23. .method public constructor <init>(Lcom/google/gson/JsonElement;)V
  24. .locals 2
  25. sget-object v0, Lcom/google/gson/internal/bind/JsonTreeReader;->UNREADABLE_READER:Ljava/io/Reader;
  26. invoke-direct {p0, v0}, Lcom/google/gson/stream/JsonReader;-><init>(Ljava/io/Reader;)V
  27. const/16 v0, 0x20
  28. new-array v1, v0, [Ljava/lang/Object;
  29. iput-object v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:[Ljava/lang/Object;
  30. const/4 v1, 0x0
  31. iput v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I
  32. new-array v1, v0, [Ljava/lang/String;
  33. iput-object v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathNames:[Ljava/lang/String;
  34. new-array v0, v0, [I
  35. iput-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I
  36. invoke-direct {p0, p1}, Lcom/google/gson/internal/bind/JsonTreeReader;->push(Ljava/lang/Object;)V
  37. return-void
  38. .end method
  39. .method private expect(Lcom/google/gson/stream/JsonToken;)V
  40. .locals 3
  41. .annotation system Ldalvik/annotation/Throws;
  42. value = {
  43. Ljava/io/IOException;
  44. }
  45. .end annotation
  46. invoke-virtual {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peek()Lcom/google/gson/stream/JsonToken;
  47. move-result-object v0
  48. if-ne v0, p1, :cond_0
  49. return-void
  50. :cond_0
  51. new-instance v0, Ljava/lang/IllegalStateException;
  52. new-instance v1, Ljava/lang/StringBuilder;
  53. invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
  54. const-string v2, "Expected "
  55. invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  56. invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
  57. const-string p1, " but was "
  58. invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  59. invoke-virtual {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peek()Lcom/google/gson/stream/JsonToken;
  60. move-result-object p1
  61. invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
  62. invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->locationString()Ljava/lang/String;
  63. move-result-object p1
  64. invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  65. invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  66. move-result-object p1
  67. invoke-direct {v0, p1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
  68. throw v0
  69. .end method
  70. .method private locationString()Ljava/lang/String;
  71. .locals 2
  72. new-instance v0, Ljava/lang/StringBuilder;
  73. invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
  74. const-string v1, " at path "
  75. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  76. invoke-virtual {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->getPath()Ljava/lang/String;
  77. move-result-object v1
  78. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  79. invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  80. move-result-object v0
  81. return-object v0
  82. .end method
  83. .method private peekStack()Ljava/lang/Object;
  84. .locals 2
  85. iget-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:[Ljava/lang/Object;
  86. iget v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I
  87. add-int/lit8 v1, v1, -0x1
  88. aget-object v0, v0, v1
  89. return-object v0
  90. .end method
  91. .method private popStack()Ljava/lang/Object;
  92. .locals 4
  93. iget-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:[Ljava/lang/Object;
  94. iget v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I
  95. add-int/lit8 v1, v1, -0x1
  96. iput v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I
  97. aget-object v1, v0, v1
  98. iget v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I
  99. const/4 v3, 0x0
  100. aput-object v3, v0, v2
  101. return-object v1
  102. .end method
  103. .method private push(Ljava/lang/Object;)V
  104. .locals 6
  105. iget v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I
  106. iget-object v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:[Ljava/lang/Object;
  107. array-length v2, v1
  108. if-ne v0, v2, :cond_0
  109. mul-int/lit8 v2, v0, 0x2
  110. new-array v2, v2, [Ljava/lang/Object;
  111. mul-int/lit8 v3, v0, 0x2
  112. new-array v3, v3, [I
  113. mul-int/lit8 v4, v0, 0x2
  114. new-array v4, v4, [Ljava/lang/String;
  115. const/4 v5, 0x0
  116. invoke-static {v1, v5, v2, v5, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  117. iget-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I
  118. iget v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I
  119. invoke-static {v0, v5, v3, v5, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  120. iget-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathNames:[Ljava/lang/String;
  121. iget v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I
  122. invoke-static {v0, v5, v4, v5, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
  123. iput-object v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:[Ljava/lang/Object;
  124. iput-object v3, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I
  125. iput-object v4, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathNames:[Ljava/lang/String;
  126. :cond_0
  127. iget-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:[Ljava/lang/Object;
  128. iget v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I
  129. add-int/lit8 v2, v1, 0x1
  130. iput v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I
  131. aput-object p1, v0, v1
  132. return-void
  133. .end method
  134. # virtual methods
  135. .method public beginArray()V
  136. .locals 3
  137. .annotation system Ldalvik/annotation/Throws;
  138. value = {
  139. Ljava/io/IOException;
  140. }
  141. .end annotation
  142. sget-object v0, Lcom/google/gson/stream/JsonToken;->BEGIN_ARRAY:Lcom/google/gson/stream/JsonToken;
  143. invoke-direct {p0, v0}, Lcom/google/gson/internal/bind/JsonTreeReader;->expect(Lcom/google/gson/stream/JsonToken;)V
  144. invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peekStack()Ljava/lang/Object;
  145. move-result-object v0
  146. check-cast v0, Lcom/google/gson/JsonArray;
  147. invoke-virtual {v0}, Lcom/google/gson/JsonArray;->iterator()Ljava/util/Iterator;
  148. move-result-object v0
  149. invoke-direct {p0, v0}, Lcom/google/gson/internal/bind/JsonTreeReader;->push(Ljava/lang/Object;)V
  150. iget-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I
  151. iget v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I
  152. add-int/lit8 v1, v1, -0x1
  153. const/4 v2, 0x0
  154. aput v2, v0, v1
  155. return-void
  156. .end method
  157. .method public beginObject()V
  158. .locals 1
  159. .annotation system Ldalvik/annotation/Throws;
  160. value = {
  161. Ljava/io/IOException;
  162. }
  163. .end annotation
  164. sget-object v0, Lcom/google/gson/stream/JsonToken;->BEGIN_OBJECT:Lcom/google/gson/stream/JsonToken;
  165. invoke-direct {p0, v0}, Lcom/google/gson/internal/bind/JsonTreeReader;->expect(Lcom/google/gson/stream/JsonToken;)V
  166. invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peekStack()Ljava/lang/Object;
  167. move-result-object v0
  168. check-cast v0, Lcom/google/gson/JsonObject;
  169. invoke-virtual {v0}, Lcom/google/gson/JsonObject;->entrySet()Ljava/util/Set;
  170. move-result-object v0
  171. invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
  172. move-result-object v0
  173. invoke-direct {p0, v0}, Lcom/google/gson/internal/bind/JsonTreeReader;->push(Ljava/lang/Object;)V
  174. return-void
  175. .end method
  176. .method public close()V
  177. .locals 4
  178. .annotation system Ldalvik/annotation/Throws;
  179. value = {
  180. Ljava/io/IOException;
  181. }
  182. .end annotation
  183. const/4 v0, 0x1
  184. new-array v1, v0, [Ljava/lang/Object;
  185. sget-object v2, Lcom/google/gson/internal/bind/JsonTreeReader;->SENTINEL_CLOSED:Ljava/lang/Object;
  186. const/4 v3, 0x0
  187. aput-object v2, v1, v3
  188. iput-object v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:[Ljava/lang/Object;
  189. iput v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I
  190. return-void
  191. .end method
  192. .method public endArray()V
  193. .locals 3
  194. .annotation system Ldalvik/annotation/Throws;
  195. value = {
  196. Ljava/io/IOException;
  197. }
  198. .end annotation
  199. sget-object v0, Lcom/google/gson/stream/JsonToken;->END_ARRAY:Lcom/google/gson/stream/JsonToken;
  200. invoke-direct {p0, v0}, Lcom/google/gson/internal/bind/JsonTreeReader;->expect(Lcom/google/gson/stream/JsonToken;)V
  201. invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->popStack()Ljava/lang/Object;
  202. invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->popStack()Ljava/lang/Object;
  203. iget v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I
  204. if-lez v0, :cond_0
  205. iget-object v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I
  206. add-int/lit8 v0, v0, -0x1
  207. aget v2, v1, v0
  208. add-int/lit8 v2, v2, 0x1
  209. aput v2, v1, v0
  210. :cond_0
  211. return-void
  212. .end method
  213. .method public endObject()V
  214. .locals 3
  215. .annotation system Ldalvik/annotation/Throws;
  216. value = {
  217. Ljava/io/IOException;
  218. }
  219. .end annotation
  220. sget-object v0, Lcom/google/gson/stream/JsonToken;->END_OBJECT:Lcom/google/gson/stream/JsonToken;
  221. invoke-direct {p0, v0}, Lcom/google/gson/internal/bind/JsonTreeReader;->expect(Lcom/google/gson/stream/JsonToken;)V
  222. invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->popStack()Ljava/lang/Object;
  223. invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->popStack()Ljava/lang/Object;
  224. iget v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I
  225. if-lez v0, :cond_0
  226. iget-object v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I
  227. add-int/lit8 v0, v0, -0x1
  228. aget v2, v1, v0
  229. add-int/lit8 v2, v2, 0x1
  230. aput v2, v1, v0
  231. :cond_0
  232. return-void
  233. .end method
  234. .method public getPath()Ljava/lang/String;
  235. .locals 4
  236. new-instance v0, Ljava/lang/StringBuilder;
  237. invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
  238. const/16 v1, 0x24
  239. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
  240. const/4 v1, 0x0
  241. :goto_0
  242. iget v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I
  243. if-ge v1, v2, :cond_2
  244. iget-object v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:[Ljava/lang/Object;
  245. aget-object v3, v2, v1
  246. instance-of v3, v3, Lcom/google/gson/JsonArray;
  247. if-eqz v3, :cond_0
  248. add-int/lit8 v1, v1, 0x1
  249. aget-object v2, v2, v1
  250. instance-of v2, v2, Ljava/util/Iterator;
  251. if-eqz v2, :cond_1
  252. const/16 v2, 0x5b
  253. invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
  254. iget-object v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I
  255. aget v2, v2, v1
  256. invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  257. const/16 v2, 0x5d
  258. invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
  259. goto :goto_1
  260. :cond_0
  261. aget-object v3, v2, v1
  262. instance-of v3, v3, Lcom/google/gson/JsonObject;
  263. if-eqz v3, :cond_1
  264. add-int/lit8 v1, v1, 0x1
  265. aget-object v2, v2, v1
  266. instance-of v2, v2, Ljava/util/Iterator;
  267. if-eqz v2, :cond_1
  268. const/16 v2, 0x2e
  269. invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
  270. iget-object v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathNames:[Ljava/lang/String;
  271. aget-object v3, v2, v1
  272. if-eqz v3, :cond_1
  273. aget-object v2, v2, v1
  274. invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  275. :cond_1
  276. :goto_1
  277. add-int/lit8 v1, v1, 0x1
  278. goto :goto_0
  279. :cond_2
  280. invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  281. move-result-object v0
  282. return-object v0
  283. .end method
  284. .method public hasNext()Z
  285. .locals 2
  286. .annotation system Ldalvik/annotation/Throws;
  287. value = {
  288. Ljava/io/IOException;
  289. }
  290. .end annotation
  291. invoke-virtual {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peek()Lcom/google/gson/stream/JsonToken;
  292. move-result-object v0
  293. sget-object v1, Lcom/google/gson/stream/JsonToken;->END_OBJECT:Lcom/google/gson/stream/JsonToken;
  294. if-eq v0, v1, :cond_0
  295. sget-object v1, Lcom/google/gson/stream/JsonToken;->END_ARRAY:Lcom/google/gson/stream/JsonToken;
  296. if-eq v0, v1, :cond_0
  297. const/4 v0, 0x1
  298. goto :goto_0
  299. :cond_0
  300. const/4 v0, 0x0
  301. :goto_0
  302. return v0
  303. .end method
  304. .method public nextBoolean()Z
  305. .locals 4
  306. .annotation system Ldalvik/annotation/Throws;
  307. value = {
  308. Ljava/io/IOException;
  309. }
  310. .end annotation
  311. sget-object v0, Lcom/google/gson/stream/JsonToken;->BOOLEAN:Lcom/google/gson/stream/JsonToken;
  312. invoke-direct {p0, v0}, Lcom/google/gson/internal/bind/JsonTreeReader;->expect(Lcom/google/gson/stream/JsonToken;)V
  313. invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->popStack()Ljava/lang/Object;
  314. move-result-object v0
  315. check-cast v0, Lcom/google/gson/JsonPrimitive;
  316. invoke-virtual {v0}, Lcom/google/gson/JsonPrimitive;->getAsBoolean()Z
  317. move-result v0
  318. iget v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I
  319. if-lez v1, :cond_0
  320. iget-object v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I
  321. add-int/lit8 v1, v1, -0x1
  322. aget v3, v2, v1
  323. add-int/lit8 v3, v3, 0x1
  324. aput v3, v2, v1
  325. :cond_0
  326. return v0
  327. .end method
  328. .method public nextDouble()D
  329. .locals 5
  330. .annotation system Ldalvik/annotation/Throws;
  331. value = {
  332. Ljava/io/IOException;
  333. }
  334. .end annotation
  335. invoke-virtual {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peek()Lcom/google/gson/stream/JsonToken;
  336. move-result-object v0
  337. sget-object v1, Lcom/google/gson/stream/JsonToken;->NUMBER:Lcom/google/gson/stream/JsonToken;
  338. if-eq v0, v1, :cond_1
  339. sget-object v1, Lcom/google/gson/stream/JsonToken;->STRING:Lcom/google/gson/stream/JsonToken;
  340. if-ne v0, v1, :cond_0
  341. goto :goto_0
  342. :cond_0
  343. new-instance v1, Ljava/lang/IllegalStateException;
  344. new-instance v2, Ljava/lang/StringBuilder;
  345. invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
  346. const-string v3, "Expected "
  347. invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  348. sget-object v3, Lcom/google/gson/stream/JsonToken;->NUMBER:Lcom/google/gson/stream/JsonToken;
  349. invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
  350. const-string v3, " but was "
  351. invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  352. invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
  353. invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->locationString()Ljava/lang/String;
  354. move-result-object v0
  355. invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  356. invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  357. move-result-object v0
  358. invoke-direct {v1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
  359. throw v1
  360. :cond_1
  361. :goto_0
  362. invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peekStack()Ljava/lang/Object;
  363. move-result-object v0
  364. check-cast v0, Lcom/google/gson/JsonPrimitive;
  365. invoke-virtual {v0}, Lcom/google/gson/JsonPrimitive;->getAsDouble()D
  366. move-result-wide v0
  367. invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->isLenient()Z
  368. move-result v2
  369. if-nez v2, :cond_3
  370. invoke-static {v0, v1}, Ljava/lang/Double;->isNaN(D)Z
  371. move-result v2
  372. if-nez v2, :cond_2
  373. invoke-static {v0, v1}, Ljava/lang/Double;->isInfinite(D)Z
  374. move-result v2
  375. if-nez v2, :cond_2
  376. goto :goto_1
  377. :cond_2
  378. new-instance v2, Ljava/lang/NumberFormatException;
  379. new-instance v3, Ljava/lang/StringBuilder;
  380. invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
  381. const-string v4, "JSON forbids NaN and infinities: "
  382. invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  383. invoke-virtual {v3, v0, v1}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
  384. invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  385. move-result-object v0
  386. invoke-direct {v2, v0}, Ljava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
  387. throw v2
  388. :cond_3
  389. :goto_1
  390. invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->popStack()Ljava/lang/Object;
  391. iget v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I
  392. if-lez v2, :cond_4
  393. iget-object v3, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I
  394. add-int/lit8 v2, v2, -0x1
  395. aget v4, v3, v2
  396. add-int/lit8 v4, v4, 0x1
  397. aput v4, v3, v2
  398. :cond_4
  399. return-wide v0
  400. .end method
  401. .method public nextInt()I
  402. .locals 4
  403. .annotation system Ldalvik/annotation/Throws;
  404. value = {
  405. Ljava/io/IOException;
  406. }
  407. .end annotation
  408. invoke-virtual {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peek()Lcom/google/gson/stream/JsonToken;
  409. move-result-object v0
  410. sget-object v1, Lcom/google/gson/stream/JsonToken;->NUMBER:Lcom/google/gson/stream/JsonToken;
  411. if-eq v0, v1, :cond_1
  412. sget-object v1, Lcom/google/gson/stream/JsonToken;->STRING:Lcom/google/gson/stream/JsonToken;
  413. if-ne v0, v1, :cond_0
  414. goto :goto_0
  415. :cond_0
  416. new-instance v1, Ljava/lang/IllegalStateException;
  417. new-instance v2, Ljava/lang/StringBuilder;
  418. invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
  419. const-string v3, "Expected "
  420. invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  421. sget-object v3, Lcom/google/gson/stream/JsonToken;->NUMBER:Lcom/google/gson/stream/JsonToken;
  422. invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
  423. const-string v3, " but was "
  424. invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  425. invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
  426. invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->locationString()Ljava/lang/String;
  427. move-result-object v0
  428. invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  429. invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  430. move-result-object v0
  431. invoke-direct {v1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
  432. throw v1
  433. :cond_1
  434. :goto_0
  435. invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peekStack()Ljava/lang/Object;
  436. move-result-object v0
  437. check-cast v0, Lcom/google/gson/JsonPrimitive;
  438. invoke-virtual {v0}, Lcom/google/gson/JsonPrimitive;->getAsInt()I
  439. move-result v0
  440. invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->popStack()Ljava/lang/Object;
  441. iget v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I
  442. if-lez v1, :cond_2
  443. iget-object v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I
  444. add-int/lit8 v1, v1, -0x1
  445. aget v3, v2, v1
  446. add-int/lit8 v3, v3, 0x1
  447. aput v3, v2, v1
  448. :cond_2
  449. return v0
  450. .end method
  451. .method public nextLong()J
  452. .locals 5
  453. .annotation system Ldalvik/annotation/Throws;
  454. value = {
  455. Ljava/io/IOException;
  456. }
  457. .end annotation
  458. invoke-virtual {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peek()Lcom/google/gson/stream/JsonToken;
  459. move-result-object v0
  460. sget-object v1, Lcom/google/gson/stream/JsonToken;->NUMBER:Lcom/google/gson/stream/JsonToken;
  461. if-eq v0, v1, :cond_1
  462. sget-object v1, Lcom/google/gson/stream/JsonToken;->STRING:Lcom/google/gson/stream/JsonToken;
  463. if-ne v0, v1, :cond_0
  464. goto :goto_0
  465. :cond_0
  466. new-instance v1, Ljava/lang/IllegalStateException;
  467. new-instance v2, Ljava/lang/StringBuilder;
  468. invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
  469. const-string v3, "Expected "
  470. invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  471. sget-object v3, Lcom/google/gson/stream/JsonToken;->NUMBER:Lcom/google/gson/stream/JsonToken;
  472. invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
  473. const-string v3, " but was "
  474. invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  475. invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
  476. invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->locationString()Ljava/lang/String;
  477. move-result-object v0
  478. invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  479. invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  480. move-result-object v0
  481. invoke-direct {v1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
  482. throw v1
  483. :cond_1
  484. :goto_0
  485. invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peekStack()Ljava/lang/Object;
  486. move-result-object v0
  487. check-cast v0, Lcom/google/gson/JsonPrimitive;
  488. invoke-virtual {v0}, Lcom/google/gson/JsonPrimitive;->getAsLong()J
  489. move-result-wide v0
  490. invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->popStack()Ljava/lang/Object;
  491. iget v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I
  492. if-lez v2, :cond_2
  493. iget-object v3, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I
  494. add-int/lit8 v2, v2, -0x1
  495. aget v4, v3, v2
  496. add-int/lit8 v4, v4, 0x1
  497. aput v4, v3, v2
  498. :cond_2
  499. return-wide v0
  500. .end method
  501. .method public nextName()Ljava/lang/String;
  502. .locals 4
  503. .annotation system Ldalvik/annotation/Throws;
  504. value = {
  505. Ljava/io/IOException;
  506. }
  507. .end annotation
  508. sget-object v0, Lcom/google/gson/stream/JsonToken;->NAME:Lcom/google/gson/stream/JsonToken;
  509. invoke-direct {p0, v0}, Lcom/google/gson/internal/bind/JsonTreeReader;->expect(Lcom/google/gson/stream/JsonToken;)V
  510. invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peekStack()Ljava/lang/Object;
  511. move-result-object v0
  512. check-cast v0, Ljava/util/Iterator;
  513. invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
  514. move-result-object v0
  515. check-cast v0, Ljava/util/Map$Entry;
  516. invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
  517. move-result-object v1
  518. check-cast v1, Ljava/lang/String;
  519. iget-object v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathNames:[Ljava/lang/String;
  520. iget v3, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I
  521. add-int/lit8 v3, v3, -0x1
  522. aput-object v1, v2, v3
  523. invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
  524. move-result-object v0
  525. invoke-direct {p0, v0}, Lcom/google/gson/internal/bind/JsonTreeReader;->push(Ljava/lang/Object;)V
  526. return-object v1
  527. .end method
  528. .method public nextNull()V
  529. .locals 3
  530. .annotation system Ldalvik/annotation/Throws;
  531. value = {
  532. Ljava/io/IOException;
  533. }
  534. .end annotation
  535. sget-object v0, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken;
  536. invoke-direct {p0, v0}, Lcom/google/gson/internal/bind/JsonTreeReader;->expect(Lcom/google/gson/stream/JsonToken;)V
  537. invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->popStack()Ljava/lang/Object;
  538. iget v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I
  539. if-lez v0, :cond_0
  540. iget-object v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I
  541. add-int/lit8 v0, v0, -0x1
  542. aget v2, v1, v0
  543. add-int/lit8 v2, v2, 0x1
  544. aput v2, v1, v0
  545. :cond_0
  546. return-void
  547. .end method
  548. .method public nextString()Ljava/lang/String;
  549. .locals 4
  550. .annotation system Ldalvik/annotation/Throws;
  551. value = {
  552. Ljava/io/IOException;
  553. }
  554. .end annotation
  555. invoke-virtual {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peek()Lcom/google/gson/stream/JsonToken;
  556. move-result-object v0
  557. sget-object v1, Lcom/google/gson/stream/JsonToken;->STRING:Lcom/google/gson/stream/JsonToken;
  558. if-eq v0, v1, :cond_1
  559. sget-object v1, Lcom/google/gson/stream/JsonToken;->NUMBER:Lcom/google/gson/stream/JsonToken;
  560. if-ne v0, v1, :cond_0
  561. goto :goto_0
  562. :cond_0
  563. new-instance v1, Ljava/lang/IllegalStateException;
  564. new-instance v2, Ljava/lang/StringBuilder;
  565. invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
  566. const-string v3, "Expected "
  567. invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  568. sget-object v3, Lcom/google/gson/stream/JsonToken;->STRING:Lcom/google/gson/stream/JsonToken;
  569. invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
  570. const-string v3, " but was "
  571. invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  572. invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
  573. invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->locationString()Ljava/lang/String;
  574. move-result-object v0
  575. invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  576. invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  577. move-result-object v0
  578. invoke-direct {v1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
  579. throw v1
  580. :cond_1
  581. :goto_0
  582. invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->popStack()Ljava/lang/Object;
  583. move-result-object v0
  584. check-cast v0, Lcom/google/gson/JsonPrimitive;
  585. invoke-virtual {v0}, Lcom/google/gson/JsonPrimitive;->getAsString()Ljava/lang/String;
  586. move-result-object v0
  587. iget v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I
  588. if-lez v1, :cond_2
  589. iget-object v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I
  590. add-int/lit8 v1, v1, -0x1
  591. aget v3, v2, v1
  592. add-int/lit8 v3, v3, 0x1
  593. aput v3, v2, v1
  594. :cond_2
  595. return-object v0
  596. .end method
  597. .method public peek()Lcom/google/gson/stream/JsonToken;
  598. .locals 3
  599. .annotation system Ldalvik/annotation/Throws;
  600. value = {
  601. Ljava/io/IOException;
  602. }
  603. .end annotation
  604. iget v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I
  605. if-nez v0, :cond_0
  606. sget-object v0, Lcom/google/gson/stream/JsonToken;->END_DOCUMENT:Lcom/google/gson/stream/JsonToken;
  607. return-object v0
  608. :cond_0
  609. invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peekStack()Ljava/lang/Object;
  610. move-result-object v0
  611. instance-of v1, v0, Ljava/util/Iterator;
  612. if-eqz v1, :cond_4
  613. iget-object v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:[Ljava/lang/Object;
  614. iget v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I
  615. add-int/lit8 v2, v2, -0x2
  616. aget-object v1, v1, v2
  617. instance-of v1, v1, Lcom/google/gson/JsonObject;
  618. check-cast v0, Ljava/util/Iterator;
  619. invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
  620. move-result v2
  621. if-eqz v2, :cond_2
  622. if-eqz v1, :cond_1
  623. sget-object v0, Lcom/google/gson/stream/JsonToken;->NAME:Lcom/google/gson/stream/JsonToken;
  624. return-object v0
  625. :cond_1
  626. invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
  627. move-result-object v0
  628. invoke-direct {p0, v0}, Lcom/google/gson/internal/bind/JsonTreeReader;->push(Ljava/lang/Object;)V
  629. invoke-virtual {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peek()Lcom/google/gson/stream/JsonToken;
  630. move-result-object v0
  631. return-object v0
  632. :cond_2
  633. if-eqz v1, :cond_3
  634. sget-object v0, Lcom/google/gson/stream/JsonToken;->END_OBJECT:Lcom/google/gson/stream/JsonToken;
  635. goto :goto_0
  636. :cond_3
  637. sget-object v0, Lcom/google/gson/stream/JsonToken;->END_ARRAY:Lcom/google/gson/stream/JsonToken;
  638. :goto_0
  639. return-object v0
  640. :cond_4
  641. instance-of v1, v0, Lcom/google/gson/JsonObject;
  642. if-eqz v1, :cond_5
  643. sget-object v0, Lcom/google/gson/stream/JsonToken;->BEGIN_OBJECT:Lcom/google/gson/stream/JsonToken;
  644. return-object v0
  645. :cond_5
  646. instance-of v1, v0, Lcom/google/gson/JsonArray;
  647. if-eqz v1, :cond_6
  648. sget-object v0, Lcom/google/gson/stream/JsonToken;->BEGIN_ARRAY:Lcom/google/gson/stream/JsonToken;
  649. return-object v0
  650. :cond_6
  651. instance-of v1, v0, Lcom/google/gson/JsonPrimitive;
  652. if-eqz v1, :cond_a
  653. check-cast v0, Lcom/google/gson/JsonPrimitive;
  654. invoke-virtual {v0}, Lcom/google/gson/JsonPrimitive;->isString()Z
  655. move-result v1
  656. if-eqz v1, :cond_7
  657. sget-object v0, Lcom/google/gson/stream/JsonToken;->STRING:Lcom/google/gson/stream/JsonToken;
  658. return-object v0
  659. :cond_7
  660. invoke-virtual {v0}, Lcom/google/gson/JsonPrimitive;->isBoolean()Z
  661. move-result v1
  662. if-eqz v1, :cond_8
  663. sget-object v0, Lcom/google/gson/stream/JsonToken;->BOOLEAN:Lcom/google/gson/stream/JsonToken;
  664. return-object v0
  665. :cond_8
  666. invoke-virtual {v0}, Lcom/google/gson/JsonPrimitive;->isNumber()Z
  667. move-result v0
  668. if-eqz v0, :cond_9
  669. sget-object v0, Lcom/google/gson/stream/JsonToken;->NUMBER:Lcom/google/gson/stream/JsonToken;
  670. return-object v0
  671. :cond_9
  672. new-instance v0, Ljava/lang/AssertionError;
  673. invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
  674. throw v0
  675. :cond_a
  676. instance-of v1, v0, Lcom/google/gson/JsonNull;
  677. if-eqz v1, :cond_b
  678. sget-object v0, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken;
  679. return-object v0
  680. :cond_b
  681. sget-object v1, Lcom/google/gson/internal/bind/JsonTreeReader;->SENTINEL_CLOSED:Ljava/lang/Object;
  682. if-ne v0, v1, :cond_c
  683. new-instance v0, Ljava/lang/IllegalStateException;
  684. const-string v1, "JsonReader is closed"
  685. invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
  686. throw v0
  687. :cond_c
  688. new-instance v0, Ljava/lang/AssertionError;
  689. invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
  690. throw v0
  691. .end method
  692. .method public promoteNameToValue()V
  693. .locals 2
  694. .annotation system Ldalvik/annotation/Throws;
  695. value = {
  696. Ljava/io/IOException;
  697. }
  698. .end annotation
  699. sget-object v0, Lcom/google/gson/stream/JsonToken;->NAME:Lcom/google/gson/stream/JsonToken;
  700. invoke-direct {p0, v0}, Lcom/google/gson/internal/bind/JsonTreeReader;->expect(Lcom/google/gson/stream/JsonToken;)V
  701. invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peekStack()Ljava/lang/Object;
  702. move-result-object v0
  703. check-cast v0, Ljava/util/Iterator;
  704. invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
  705. move-result-object v0
  706. check-cast v0, Ljava/util/Map$Entry;
  707. invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
  708. move-result-object v1
  709. invoke-direct {p0, v1}, Lcom/google/gson/internal/bind/JsonTreeReader;->push(Ljava/lang/Object;)V
  710. new-instance v1, Lcom/google/gson/JsonPrimitive;
  711. invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
  712. move-result-object v0
  713. check-cast v0, Ljava/lang/String;
  714. invoke-direct {v1, v0}, Lcom/google/gson/JsonPrimitive;-><init>(Ljava/lang/String;)V
  715. invoke-direct {p0, v1}, Lcom/google/gson/internal/bind/JsonTreeReader;->push(Ljava/lang/Object;)V
  716. return-void
  717. .end method
  718. .method public skipValue()V
  719. .locals 3
  720. .annotation system Ldalvik/annotation/Throws;
  721. value = {
  722. Ljava/io/IOException;
  723. }
  724. .end annotation
  725. invoke-virtual {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peek()Lcom/google/gson/stream/JsonToken;
  726. move-result-object v0
  727. sget-object v1, Lcom/google/gson/stream/JsonToken;->NAME:Lcom/google/gson/stream/JsonToken;
  728. const-string v2, "null"
  729. if-ne v0, v1, :cond_0
  730. invoke-virtual {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->nextName()Ljava/lang/String;
  731. iget-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathNames:[Ljava/lang/String;
  732. iget v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I
  733. add-int/lit8 v1, v1, -0x2
  734. aput-object v2, v0, v1
  735. goto :goto_0
  736. :cond_0
  737. invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->popStack()Ljava/lang/Object;
  738. iget v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I
  739. if-lez v0, :cond_1
  740. iget-object v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathNames:[Ljava/lang/String;
  741. add-int/lit8 v0, v0, -0x1
  742. aput-object v2, v1, v0
  743. :cond_1
  744. :goto_0
  745. iget v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I
  746. if-lez v0, :cond_2
  747. iget-object v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I
  748. add-int/lit8 v0, v0, -0x1
  749. aget v2, v1, v0
  750. add-int/lit8 v2, v2, 0x1
  751. aput v2, v1, v0
  752. :cond_2
  753. return-void
  754. .end method
  755. .method public toString()Ljava/lang/String;
  756. .locals 1
  757. const-class v0, Lcom/google/gson/internal/bind/JsonTreeReader;
  758. invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
  759. move-result-object v0
  760. return-object v0
  761. .end method