JsonParser.smali 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  1. .class public final Lcom/google/gson/JsonParser;
  2. .super Ljava/lang/Object;
  3. .source "JsonParser.java"
  4. # direct methods
  5. .method public constructor <init>()V
  6. .locals 0
  7. .line 34
  8. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  9. return-void
  10. .end method
  11. # virtual methods
  12. .method public parse(Lcom/google/gson/stream/JsonReader;)Lcom/google/gson/JsonElement;
  13. .locals 6
  14. .param p1, "json" # Lcom/google/gson/stream/JsonReader;
  15. .annotation system Ldalvik/annotation/Throws;
  16. value = {
  17. Lcom/google/gson/JsonIOException;,
  18. Lcom/google/gson/JsonSyntaxException;
  19. }
  20. .end annotation
  21. .line 81
  22. const-string v0, " to Json"
  23. const-string v1, "Failed parsing JSON source: "
  24. invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->isLenient()Z
  25. move-result v2
  26. .line 82
  27. .local v2, "lenient":Z
  28. const/4 v3, 0x1
  29. invoke-virtual {p1, v3}, Lcom/google/gson/stream/JsonReader;->setLenient(Z)V
  30. .line 84
  31. :try_start_0
  32. invoke-static {p1}, Lcom/google/gson/internal/Streams;->parse(Lcom/google/gson/stream/JsonReader;)Lcom/google/gson/JsonElement;
  33. move-result-object v0
  34. :try_end_0
  35. .catch Ljava/lang/StackOverflowError; {:try_start_0 .. :try_end_0} :catch_1
  36. .catch Ljava/lang/OutOfMemoryError; {:try_start_0 .. :try_end_0} :catch_0
  37. .catchall {:try_start_0 .. :try_end_0} :catchall_0
  38. .line 90
  39. invoke-virtual {p1, v2}, Lcom/google/gson/stream/JsonReader;->setLenient(Z)V
  40. .line 84
  41. return-object v0
  42. .line 90
  43. :catchall_0
  44. move-exception v0
  45. goto :goto_0
  46. .line 87
  47. :catch_0
  48. move-exception v3
  49. .line 88
  50. .local v3, "e":Ljava/lang/OutOfMemoryError;
  51. :try_start_1
  52. new-instance v4, Lcom/google/gson/JsonParseException;
  53. new-instance v5, Ljava/lang/StringBuilder;
  54. invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
  55. invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  56. invoke-virtual {v5, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
  57. invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  58. invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  59. move-result-object v0
  60. invoke-direct {v4, v0, v3}, Lcom/google/gson/JsonParseException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
  61. .end local v2 # "lenient":Z
  62. .end local p1 # "json":Lcom/google/gson/stream/JsonReader;
  63. throw v4
  64. .line 85
  65. .end local v3 # "e":Ljava/lang/OutOfMemoryError;
  66. .restart local v2 # "lenient":Z
  67. .restart local p1 # "json":Lcom/google/gson/stream/JsonReader;
  68. :catch_1
  69. move-exception v3
  70. .line 86
  71. .local v3, "e":Ljava/lang/StackOverflowError;
  72. new-instance v4, Lcom/google/gson/JsonParseException;
  73. new-instance v5, Ljava/lang/StringBuilder;
  74. invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
  75. invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  76. invoke-virtual {v5, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
  77. invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  78. invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  79. move-result-object v0
  80. invoke-direct {v4, v0, v3}, Lcom/google/gson/JsonParseException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
  81. .end local v2 # "lenient":Z
  82. .end local p1 # "json":Lcom/google/gson/stream/JsonReader;
  83. throw v4
  84. :try_end_1
  85. .catchall {:try_start_1 .. :try_end_1} :catchall_0
  86. .line 90
  87. .end local v3 # "e":Ljava/lang/StackOverflowError;
  88. .restart local v2 # "lenient":Z
  89. .restart local p1 # "json":Lcom/google/gson/stream/JsonReader;
  90. :goto_0
  91. invoke-virtual {p1, v2}, Lcom/google/gson/stream/JsonReader;->setLenient(Z)V
  92. throw v0
  93. .end method
  94. .method public parse(Ljava/io/Reader;)Lcom/google/gson/JsonElement;
  95. .locals 4
  96. .param p1, "json" # Ljava/io/Reader;
  97. .annotation system Ldalvik/annotation/Throws;
  98. value = {
  99. Lcom/google/gson/JsonIOException;,
  100. Lcom/google/gson/JsonSyntaxException;
  101. }
  102. .end annotation
  103. .line 58
  104. :try_start_0
  105. new-instance v0, Lcom/google/gson/stream/JsonReader;
  106. invoke-direct {v0, p1}, Lcom/google/gson/stream/JsonReader;-><init>(Ljava/io/Reader;)V
  107. .line 59
  108. .local v0, "jsonReader":Lcom/google/gson/stream/JsonReader;
  109. invoke-virtual {p0, v0}, Lcom/google/gson/JsonParser;->parse(Lcom/google/gson/stream/JsonReader;)Lcom/google/gson/JsonElement;
  110. move-result-object v1
  111. .line 60
  112. .local v1, "element":Lcom/google/gson/JsonElement;
  113. invoke-virtual {v1}, Lcom/google/gson/JsonElement;->isJsonNull()Z
  114. move-result v2
  115. if-nez v2, :cond_1
  116. invoke-virtual {v0}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken;
  117. move-result-object v2
  118. sget-object v3, Lcom/google/gson/stream/JsonToken;->END_DOCUMENT:Lcom/google/gson/stream/JsonToken;
  119. if-ne v2, v3, :cond_0
  120. goto :goto_0
  121. .line 61
  122. :cond_0
  123. new-instance v2, Lcom/google/gson/JsonSyntaxException;
  124. const-string v3, "Did not consume the entire document."
  125. invoke-direct {v2, v3}, Lcom/google/gson/JsonSyntaxException;-><init>(Ljava/lang/String;)V
  126. .end local p1 # "json":Ljava/io/Reader;
  127. throw v2
  128. :try_end_0
  129. .catch Lcom/google/gson/stream/MalformedJsonException; {:try_start_0 .. :try_end_0} :catch_2
  130. .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_1
  131. .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0
  132. .line 63
  133. .restart local p1 # "json":Ljava/io/Reader;
  134. :cond_1
  135. :goto_0
  136. return-object v1
  137. .line 68
  138. .end local v0 # "jsonReader":Lcom/google/gson/stream/JsonReader;
  139. .end local v1 # "element":Lcom/google/gson/JsonElement;
  140. :catch_0
  141. move-exception v0
  142. .line 69
  143. .local v0, "e":Ljava/lang/NumberFormatException;
  144. new-instance v1, Lcom/google/gson/JsonSyntaxException;
  145. invoke-direct {v1, v0}, Lcom/google/gson/JsonSyntaxException;-><init>(Ljava/lang/Throwable;)V
  146. throw v1
  147. .line 66
  148. .end local v0 # "e":Ljava/lang/NumberFormatException;
  149. :catch_1
  150. move-exception v0
  151. .line 67
  152. .local v0, "e":Ljava/io/IOException;
  153. new-instance v1, Lcom/google/gson/JsonIOException;
  154. invoke-direct {v1, v0}, Lcom/google/gson/JsonIOException;-><init>(Ljava/lang/Throwable;)V
  155. throw v1
  156. .line 64
  157. .end local v0 # "e":Ljava/io/IOException;
  158. :catch_2
  159. move-exception v0
  160. .line 65
  161. .local v0, "e":Lcom/google/gson/stream/MalformedJsonException;
  162. new-instance v1, Lcom/google/gson/JsonSyntaxException;
  163. invoke-direct {v1, v0}, Lcom/google/gson/JsonSyntaxException;-><init>(Ljava/lang/Throwable;)V
  164. throw v1
  165. .end method
  166. .method public parse(Ljava/lang/String;)Lcom/google/gson/JsonElement;
  167. .locals 1
  168. .param p1, "json" # Ljava/lang/String;
  169. .annotation system Ldalvik/annotation/Throws;
  170. value = {
  171. Lcom/google/gson/JsonSyntaxException;
  172. }
  173. .end annotation
  174. .line 45
  175. new-instance v0, Ljava/io/StringReader;
  176. invoke-direct {v0, p1}, Ljava/io/StringReader;-><init>(Ljava/lang/String;)V
  177. invoke-virtual {p0, v0}, Lcom/google/gson/JsonParser;->parse(Ljava/io/Reader;)Lcom/google/gson/JsonElement;
  178. move-result-object v0
  179. return-object v0
  180. .end method