--- /home/hans/code/fdroid/data/tmp/fly.speedmeter.grub_22.apk +++ /home/hans/code/fdroid/data/tmp/sigcp_fly.speedmeter.grub_22.apk ├── zipinfo {} │ @@ -1,343 +1,340 @@ │ -Zip file size: 1356084 bytes, number of entries: 341 │ +Zip file size: 1356130 bytes, number of entries: 338 │ -rw---- 2.0 fat 34802 bl defN 15-Sep-01 18:26 META-INF/MANIFEST.MF │ -rw---- 2.0 fat 34923 bl defN 15-Sep-01 18:26 META-INF/B0AB2C8D.SF │ -rw---- 2.0 fat 1332 bl defN 15-Sep-01 18:26 META-INF/B0AB2C8D.RSA │ -rw---- 2.0 fat 41 bl defN 15-Sep-01 07:39 META-INF/buildserverid │ -rw---- 2.0 fat 41 bl defN 15-Sep-01 07:39 META-INF/fdroidserverid │ --rw---- 2.0 fat 3076 bX defN 15-Sep-01 07:39 AndroidManifest.xml │ --rw---- 1.0 fat 4580 b- stor 15-Sep-01 07:37 assets/sprite_check.png │ --rw---- 2.0 fat 396 bl defN 15-Sep-01 07:39 res/anim/abc_fade_in.xml │ --rw---- 2.0 fat 396 bl defN 15-Sep-01 07:39 res/anim/abc_fade_out.xml │ --rw---- 2.0 fat 860 bl defN 15-Sep-01 07:39 res/anim/abc_grow_fade_in_from_bottom.xml │ --rw---- 2.0 fat 860 bl defN 15-Sep-01 07:39 res/anim/abc_shrink_fade_out_from_bottom.xml │ --rw---- 2.0 fat 400 bl defN 15-Sep-01 07:39 res/anim/abc_slide_in_bottom.xml │ --rw---- 2.0 fat 400 bl defN 15-Sep-01 07:39 res/anim/abc_slide_in_top.xml │ --rw---- 2.0 fat 400 bl defN 15-Sep-01 07:39 res/anim/abc_slide_out_bottom.xml │ --rw---- 2.0 fat 400 bl defN 15-Sep-01 07:39 res/anim/abc_slide_out_top.xml │ --rw---- 2.0 fat 880 bl defN 15-Sep-01 07:39 res/anim/dialog_main_hide_amination.xml │ --rw---- 2.0 fat 748 bl defN 15-Sep-01 07:39 res/anim/dialog_main_show_amination.xml │ --rw---- 2.0 fat 556 bl defN 15-Sep-01 07:39 res/anim/dialog_root_hide_amin.xml │ --rw---- 2.0 fat 424 bl defN 15-Sep-01 07:39 res/anim/dialog_root_show_amin.xml │ --rw---- 2.0 fat 660 bl defN 15-Sep-01 07:39 res/anim/progress_indeterminate_animation.xml │ --rw---- 2.0 fat 360 bl defN 15-Sep-01 07:39 res/anim/snackbar_hide_animation.xml │ --rw---- 2.0 fat 360 bl defN 15-Sep-01 07:39 res/anim/snackbar_show_animation.xml │ --rw---- 2.0 fat 472 bl defN 15-Sep-01 07:39 res/color/abc_background_cache_hint_selector_material_dark.xml │ --rw---- 2.0 fat 472 bl defN 15-Sep-01 07:39 res/color/abc_background_cache_hint_selector_material_light.xml │ --rw---- 2.0 fat 468 bl defN 15-Sep-01 07:39 res/color/abc_primary_text_disable_only_material_dark.xml │ --rw---- 2.0 fat 468 bl defN 15-Sep-01 07:39 res/color/abc_primary_text_disable_only_material_light.xml │ --rw---- 2.0 fat 468 bl defN 15-Sep-01 07:39 res/color/abc_primary_text_material_dark.xml │ --rw---- 2.0 fat 468 bl defN 15-Sep-01 07:39 res/color/abc_primary_text_material_light.xml │ --rw---- 2.0 fat 596 bl defN 15-Sep-01 07:39 res/color/abc_search_url_text.xml │ --rw---- 2.0 fat 468 bl defN 15-Sep-01 07:39 res/color/abc_secondary_text_material_dark.xml │ --rw---- 2.0 fat 468 bl defN 15-Sep-01 07:39 res/color/abc_secondary_text_material_light.xml │ --rw---- 1.0 fat 287 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_ab_share_pack_mtrl_alpha.9.png │ --rw---- 1.0 fat 306 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_000.png │ --rw---- 1.0 fat 549 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_015.png │ --rw---- 1.0 fat 622 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_000.png │ --rw---- 1.0 fat 753 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_015.png │ --rw---- 1.0 fat 1589 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_btn_rating_star_off_mtrl_alpha.png │ --rw---- 1.0 fat 1057 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_btn_rating_star_on_mtrl_alpha.png │ --rw---- 1.0 fat 2040 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png │ --rw---- 1.0 fat 2053 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png │ --rw---- 1.0 fat 229 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_cab_background_top_mtrl_alpha.9.png │ --rw---- 1.0 fat 407 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png │ --rw---- 1.0 fat 275 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_ic_clear_mtrl_alpha.png │ --rw---- 1.0 fat 226 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 147 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_ic_go_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 281 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png │ --rw---- 1.0 fat 584 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_ic_menu_cut_mtrl_alpha.png │ --rw---- 1.0 fat 190 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png │ --rw---- 1.0 fat 360 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png │ --rw---- 1.0 fat 270 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png │ --rw---- 1.0 fat 791 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_ic_menu_share_mtrl_alpha.png │ --rw---- 1.0 fat 1018 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_ic_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 541 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 170 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_list_divider_mtrl_alpha.9.png │ --rw---- 1.0 fat 244 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_list_focused_holo.9.png │ --rw---- 1.0 fat 212 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_list_longpressed_holo.9.png │ --rw---- 1.0 fat 212 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_list_pressed_holo_dark.9.png │ --rw---- 1.0 fat 212 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_list_pressed_holo_light.9.png │ --rw---- 1.0 fat 239 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_list_selector_disabled_holo_dark.9.png │ --rw---- 1.0 fat 240 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_list_selector_disabled_holo_light.9.png │ --rw---- 1.0 fat 853 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png │ --rw---- 1.0 fat 1256 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_popup_background_mtrl_mult.9.png │ --rw---- 1.0 fat 417 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_spinner_mtrl_am_alpha.9.png │ --rw---- 1.0 fat 530 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_switch_track_mtrl_alpha.9.png │ --rw---- 1.0 fat 199 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_tab_indicator_mtrl_alpha.9.png │ --rw---- 1.0 fat 192 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_textfield_activated_mtrl_alpha.9.png │ --rw---- 1.0 fat 194 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_textfield_default_mtrl_alpha.9.png │ --rw---- 1.0 fat 187 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png │ --rw---- 1.0 fat 182 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png │ --rw---- 1.0 fat 3085 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/fab_shadow.png │ --rw---- 1.0 fat 2380 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/fab_shadow_mini.png │ --rw---- 1.0 fat 132 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/ic_action_pause.png │ --rw---- 1.0 fat 284 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/ic_action_play.png │ --rw---- 1.0 fat 417 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/ic_action_refresh.png │ --rw---- 1.0 fat 122 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/ic_action_stop.png │ --rw---- 1.0 fat 9193 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/ic_launcher.png │ --rw---- 1.0 fat 850 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/ic_notification.png │ --rw---- 1.0 fat 1362 b- stor 15-Sep-01 07:37 res/drawable-hdpi-v4/sprite_check.png │ --rw---- 1.0 fat 1362 b- stor 15-Sep-01 07:37 res/drawable-ldpi-v4/sprite_check.png │ --rw---- 1.0 fat 410 b- stor 15-Sep-01 07:37 res/drawable-ldrtl-hdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png │ --rw---- 1.0 fat 280 b- stor 15-Sep-01 07:37 res/drawable-ldrtl-hdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png │ --rw---- 1.0 fat 585 b- stor 15-Sep-01 07:37 res/drawable-ldrtl-hdpi-v17/abc_ic_menu_cut_mtrl_alpha.png │ --rw---- 1.0 fat 367 b- stor 15-Sep-01 07:37 res/drawable-ldrtl-hdpi-v17/abc_spinner_mtrl_am_alpha.9.png │ --rw---- 1.0 fat 347 b- stor 15-Sep-01 07:37 res/drawable-ldrtl-mdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png │ --rw---- 1.0 fat 174 b- stor 15-Sep-01 07:37 res/drawable-ldrtl-mdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png │ --rw---- 1.0 fat 381 b- stor 15-Sep-01 07:37 res/drawable-ldrtl-mdpi-v17/abc_ic_menu_cut_mtrl_alpha.png │ --rw---- 1.0 fat 342 b- stor 15-Sep-01 07:37 res/drawable-ldrtl-mdpi-v17/abc_spinner_mtrl_am_alpha.9.png │ --rw---- 1.0 fat 445 b- stor 15-Sep-01 07:37 res/drawable-ldrtl-xhdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png │ --rw---- 1.0 fat 237 b- stor 15-Sep-01 07:37 res/drawable-ldrtl-xhdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png │ --rw---- 1.0 fat 691 b- stor 15-Sep-01 07:37 res/drawable-ldrtl-xhdpi-v17/abc_ic_menu_cut_mtrl_alpha.png │ --rw---- 1.0 fat 483 b- stor 15-Sep-01 07:37 res/drawable-ldrtl-xhdpi-v17/abc_spinner_mtrl_am_alpha.9.png │ --rw---- 1.0 fat 512 b- stor 15-Sep-01 07:37 res/drawable-ldrtl-xxhdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png │ --rw---- 1.0 fat 346 b- stor 15-Sep-01 07:37 res/drawable-ldrtl-xxhdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png │ --rw---- 1.0 fat 934 b- stor 15-Sep-01 07:37 res/drawable-ldrtl-xxhdpi-v17/abc_ic_menu_cut_mtrl_alpha.png │ --rw---- 1.0 fat 593 b- stor 15-Sep-01 07:37 res/drawable-ldrtl-xxhdpi-v17/abc_spinner_mtrl_am_alpha.9.png │ --rw---- 1.0 fat 246 b- stor 15-Sep-01 07:37 res/drawable-ldrtl-xxxhdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png │ --rw---- 1.0 fat 399 b- stor 15-Sep-01 07:37 res/drawable-ldrtl-xxxhdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png │ --rw---- 1.0 fat 1180 b- stor 15-Sep-01 07:37 res/drawable-ldrtl-xxxhdpi-v17/abc_ic_menu_cut_mtrl_alpha.png │ --rw---- 1.0 fat 518 b- stor 15-Sep-01 07:37 res/drawable-ldrtl-xxxhdpi-v17/abc_spinner_mtrl_am_alpha.9.png │ --rw---- 1.0 fat 274 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_ab_share_pack_mtrl_alpha.9.png │ --rw---- 1.0 fat 288 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_btn_check_to_on_mtrl_000.png │ --rw---- 1.0 fat 429 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_btn_check_to_on_mtrl_015.png │ --rw---- 1.0 fat 428 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_btn_radio_to_on_mtrl_000.png │ --rw---- 1.0 fat 493 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_btn_radio_to_on_mtrl_015.png │ --rw---- 1.0 fat 1331 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_btn_rating_star_off_mtrl_alpha.png │ --rw---- 1.0 fat 985 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_btn_rating_star_on_mtrl_alpha.png │ --rw---- 1.0 fat 1344 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png │ --rw---- 1.0 fat 1415 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png │ --rw---- 1.0 fat 225 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_cab_background_top_mtrl_alpha.9.png │ --rw---- 1.0 fat 345 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png │ --rw---- 1.0 fat 232 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_ic_clear_mtrl_alpha.png │ --rw---- 1.0 fat 263 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 149 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_ic_go_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 177 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png │ --rw---- 1.0 fat 377 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_ic_menu_cut_mtrl_alpha.png │ --rw---- 1.0 fat 158 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png │ --rw---- 1.0 fat 234 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png │ --rw---- 1.0 fat 186 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png │ --rw---- 1.0 fat 545 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_ic_menu_share_mtrl_alpha.png │ --rw---- 1.0 fat 683 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_ic_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 404 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 170 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_list_divider_mtrl_alpha.9.png │ --rw---- 1.0 fat 222 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_list_focused_holo.9.png │ --rw---- 1.0 fat 211 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_list_longpressed_holo.9.png │ --rw---- 1.0 fat 211 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_list_pressed_holo_dark.9.png │ --rw---- 1.0 fat 211 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_list_pressed_holo_light.9.png │ --rw---- 1.0 fat 226 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_list_selector_disabled_holo_dark.9.png │ --rw---- 1.0 fat 227 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_list_selector_disabled_holo_light.9.png │ --rw---- 1.0 fat 605 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png │ --rw---- 1.0 fat 850 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_popup_background_mtrl_mult.9.png │ --rw---- 1.0 fat 362 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_spinner_mtrl_am_alpha.9.png │ --rw---- 1.0 fat 424 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_switch_track_mtrl_alpha.9.png │ --rw---- 1.0 fat 192 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_tab_indicator_mtrl_alpha.9.png │ --rw---- 1.0 fat 186 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_textfield_activated_mtrl_alpha.9.png │ --rw---- 1.0 fat 185 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_textfield_default_mtrl_alpha.9.png │ --rw---- 1.0 fat 181 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png │ --rw---- 1.0 fat 180 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png │ --rw---- 1.0 fat 1897 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/fab_shadow.png │ --rw---- 1.0 fat 2332 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/fab_shadow_mini.png │ --rw---- 1.0 fat 135 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/ic_action_pause.png │ --rw---- 1.0 fat 231 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/ic_action_play.png │ --rw---- 1.0 fat 336 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/ic_action_refresh.png │ --rw---- 1.0 fat 132 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/ic_action_stop.png │ --rw---- 1.0 fat 5057 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/ic_launcher.png │ --rw---- 1.0 fat 572 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/ic_notification.png │ --rw---- 1.0 fat 1362 b- stor 15-Sep-01 07:37 res/drawable-mdpi-v4/sprite_check.png │ --rw---- 1.0 fat 1076 b- stor 15-Sep-01 07:37 res/drawable-tvdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png │ --rw---- 1.0 fat 1191 b- stor 15-Sep-01 07:37 res/drawable-tvdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png │ --rw---- 2.0 fat 472 bl defN 15-Sep-01 07:39 res/drawable-v21/abc_cab_background_top_material.xml │ --rw---- 1.0 fat 297 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_ab_share_pack_mtrl_alpha.9.png │ --rw---- 1.0 fat 354 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_btn_check_to_on_mtrl_000.png │ --rw---- 1.0 fat 556 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_btn_check_to_on_mtrl_015.png │ --rw---- 1.0 fat 831 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_btn_radio_to_on_mtrl_000.png │ --rw---- 1.0 fat 996 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_btn_radio_to_on_mtrl_015.png │ --rw---- 1.0 fat 2172 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_btn_rating_star_off_mtrl_alpha.png │ --rw---- 1.0 fat 1524 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_btn_rating_star_on_mtrl_alpha.png │ --rw---- 1.0 fat 2796 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png │ --rw---- 1.0 fat 2943 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png │ --rw---- 1.0 fat 234 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_cab_background_top_mtrl_alpha.9.png │ --rw---- 1.0 fat 442 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png │ --rw---- 1.0 fat 320 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_ic_clear_mtrl_alpha.png │ --rw---- 1.0 fat 325 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 179 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_ic_go_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 237 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png │ --rw---- 1.0 fat 693 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png │ --rw---- 1.0 fat 218 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png │ --rw---- 1.0 fat 360 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png │ --rw---- 1.0 fat 238 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png │ --rw---- 1.0 fat 919 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_ic_menu_share_mtrl_alpha.png │ --rw---- 1.0 fat 1132 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_ic_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 719 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 170 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_list_divider_mtrl_alpha.9.png │ --rw---- 1.0 fat 244 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_list_focused_holo.9.png │ --rw---- 1.0 fat 214 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_list_longpressed_holo.9.png │ --rw---- 1.0 fat 214 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_list_pressed_holo_dark.9.png │ --rw---- 1.0 fat 214 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_list_pressed_holo_light.9.png │ --rw---- 1.0 fat 254 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_list_selector_disabled_holo_dark.9.png │ --rw---- 1.0 fat 253 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_list_selector_disabled_holo_light.9.png │ --rw---- 1.0 fat 1153 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png │ --rw---- 1.0 fat 1785 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_popup_background_mtrl_mult.9.png │ --rw---- 1.0 fat 516 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_spinner_mtrl_am_alpha.9.png │ --rw---- 1.0 fat 736 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_switch_track_mtrl_alpha.9.png │ --rw---- 1.0 fat 205 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png │ --rw---- 1.0 fat 198 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_textfield_activated_mtrl_alpha.9.png │ --rw---- 1.0 fat 197 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_textfield_default_mtrl_alpha.9.png │ --rw---- 1.0 fat 190 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png │ --rw---- 1.0 fat 190 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png │ --rw---- 1.0 fat 3065 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/dialog_background.9.png │ --rw---- 1.0 fat 4184 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/fab_shadow.png │ --rw---- 1.0 fat 3920 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/fab_shadow_mini.png │ --rw---- 1.0 fat 2879 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/float_button1_shadowp.png │ --rw---- 1.0 fat 1508 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/float_button_shadow1.png │ --rw---- 1.0 fat 153 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/ic_action_pause.png │ --rw---- 1.0 fat 331 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/ic_action_play.png │ --rw---- 1.0 fat 510 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/ic_action_refresh.png │ --rw---- 1.0 fat 150 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/ic_action_stop.png │ --rw---- 1.0 fat 14068 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/ic_launcher.png │ --rw---- 1.0 fat 1025 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/ic_notification.png │ --rw---- 1.0 fat 2545 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/ic_reloj_max.png │ --rw---- 1.0 fat 1362 b- stor 15-Sep-01 07:37 res/drawable-xhdpi-v4/sprite_check.png │ --rw---- 1.0 fat 339 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_ab_share_pack_mtrl_alpha.9.png │ --rw---- 1.0 fat 369 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_btn_check_to_on_mtrl_000.png │ --rw---- 1.0 fat 725 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_btn_check_to_on_mtrl_015.png │ --rw---- 1.0 fat 1249 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_btn_radio_to_on_mtrl_000.png │ --rw---- 1.0 fat 1467 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_btn_radio_to_on_mtrl_015.png │ --rw---- 1.0 fat 2265 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_btn_rating_star_off_mtrl_alpha.png │ --rw---- 1.0 fat 1032 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_btn_rating_star_on_mtrl_alpha.png │ --rw---- 1.0 fat 4091 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png │ --rw---- 1.0 fat 4535 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png │ --rw---- 1.0 fat 246 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_cab_background_top_mtrl_alpha.9.png │ --rw---- 1.0 fat 515 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png │ --rw---- 1.0 fat 389 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_ic_clear_mtrl_alpha.png │ --rw---- 1.0 fat 306 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 176 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_ic_go_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 348 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png │ --rw---- 1.0 fat 934 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png │ --rw---- 1.0 fat 284 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png │ --rw---- 1.0 fat 511 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png │ --rw---- 1.0 fat 323 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png │ --rw---- 1.0 fat 1292 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_ic_menu_share_mtrl_alpha.png │ --rw---- 1.0 fat 1920 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_ic_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 928 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 178 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_list_divider_mtrl_alpha.9.png │ --rw---- 1.0 fat 245 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_list_focused_holo.9.png │ --rw---- 1.0 fat 221 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_list_longpressed_holo.9.png │ --rw---- 1.0 fat 221 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_list_pressed_holo_dark.9.png │ --rw---- 1.0 fat 221 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_list_pressed_holo_light.9.png │ --rw---- 1.0 fat 307 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_list_selector_disabled_holo_dark.9.png │ --rw---- 1.0 fat 305 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_list_selector_disabled_holo_light.9.png │ --rw---- 1.0 fat 1867 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png │ --rw---- 1.0 fat 2774 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_popup_background_mtrl_mult.9.png │ --rw---- 1.0 fat 646 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_spinner_mtrl_am_alpha.9.png │ --rw---- 1.0 fat 1082 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_switch_track_mtrl_alpha.9.png │ --rw---- 1.0 fat 215 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png │ --rw---- 1.0 fat 202 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_textfield_activated_mtrl_alpha.9.png │ --rw---- 1.0 fat 204 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_textfield_default_mtrl_alpha.9.png │ --rw---- 1.0 fat 193 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png │ --rw---- 1.0 fat 196 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png │ --rw---- 1.0 fat 7250 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/fab_shadow.png │ --rw---- 1.0 fat 5421 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/fab_shadow_mini.png │ --rw---- 1.0 fat 180 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/ic_action_pause.png │ --rw---- 1.0 fat 423 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/ic_action_play.png │ --rw---- 1.0 fat 687 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/ic_action_refresh.png │ --rw---- 1.0 fat 161 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/ic_action_stop.png │ --rw---- 1.0 fat 1467 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/ic_notification.png │ --rw---- 1.0 fat 1362 b- stor 15-Sep-01 07:37 res/drawable-xxhdpi-v4/sprite_check.png │ --rw---- 1.0 fat 295 b- stor 15-Sep-01 07:37 res/drawable-xxxhdpi-v4/abc_btn_check_to_on_mtrl_000.png │ --rw---- 1.0 fat 551 b- stor 15-Sep-01 07:37 res/drawable-xxxhdpi-v4/abc_btn_check_to_on_mtrl_015.png │ --rw---- 1.0 fat 1014 b- stor 15-Sep-01 07:37 res/drawable-xxxhdpi-v4/abc_btn_radio_to_on_mtrl_000.png │ --rw---- 1.0 fat 1226 b- stor 15-Sep-01 07:37 res/drawable-xxxhdpi-v4/abc_btn_radio_to_on_mtrl_015.png │ --rw---- 1.0 fat 3674 b- stor 15-Sep-01 07:37 res/drawable-xxxhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png │ --rw---- 1.0 fat 3998 b- stor 15-Sep-01 07:37 res/drawable-xxxhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png │ --rw---- 1.0 fat 240 b- stor 15-Sep-01 07:37 res/drawable-xxxhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png │ --rw---- 1.0 fat 463 b- stor 15-Sep-01 07:37 res/drawable-xxxhdpi-v4/abc_ic_clear_mtrl_alpha.png │ --rw---- 1.0 fat 401 b- stor 15-Sep-01 07:37 res/drawable-xxxhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png │ --rw---- 1.0 fat 1173 b- stor 15-Sep-01 07:37 res/drawable-xxxhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png │ --rw---- 1.0 fat 355 b- stor 15-Sep-01 07:37 res/drawable-xxxhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png │ --rw---- 1.0 fat 665 b- stor 15-Sep-01 07:37 res/drawable-xxxhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png │ --rw---- 1.0 fat 390 b- stor 15-Sep-01 07:37 res/drawable-xxxhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png │ --rw---- 1.0 fat 1559 b- stor 15-Sep-01 07:37 res/drawable-xxxhdpi-v4/abc_ic_menu_share_mtrl_alpha.png │ --rw---- 1.0 fat 1515 b- stor 15-Sep-01 07:37 res/drawable-xxxhdpi-v4/abc_ic_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 1271 b- stor 15-Sep-01 07:37 res/drawable-xxxhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 696 b- stor 15-Sep-01 07:37 res/drawable-xxxhdpi-v4/abc_spinner_mtrl_am_alpha.9.png │ --rw---- 1.0 fat 1064 b- stor 15-Sep-01 07:37 res/drawable-xxxhdpi-v4/abc_switch_track_mtrl_alpha.9.png │ --rw---- 1.0 fat 261 b- stor 15-Sep-01 07:37 res/drawable-xxxhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png │ --rw---- 1.0 fat 7006 b- stor 15-Sep-01 07:37 res/drawable-xxxhdpi-v4/fab_shadow.png │ --rw---- 1.0 fat 5470 b- stor 15-Sep-01 07:37 res/drawable-xxxhdpi-v4/fab_shadow_mini.png │ --rw---- 2.0 fat 560 bl defN 15-Sep-01 07:39 res/drawable/abc_btn_check_material.xml │ --rw---- 2.0 fat 1092 bl defN 15-Sep-01 07:39 res/drawable/abc_btn_default_mtrl_shape.xml │ --rw---- 2.0 fat 560 bl defN 15-Sep-01 07:39 res/drawable/abc_btn_radio_material.xml │ --rw---- 2.0 fat 436 bl defN 15-Sep-01 07:39 res/drawable/abc_cab_background_internal_bg.xml │ --rw---- 2.0 fat 508 bl defN 15-Sep-01 07:39 res/drawable/abc_cab_background_top_material.xml │ --rw---- 2.0 fat 1164 bl defN 15-Sep-01 07:39 res/drawable/abc_edit_text_material.xml │ --rw---- 2.0 fat 1136 bl defN 15-Sep-01 07:39 res/drawable/abc_item_background_holo_dark.xml │ --rw---- 2.0 fat 1136 bl defN 15-Sep-01 07:39 res/drawable/abc_item_background_holo_light.xml │ --rw---- 2.0 fat 508 bl defN 15-Sep-01 07:39 res/drawable/abc_list_selector_background_transition_holo_dark.xml │ --rw---- 2.0 fat 508 bl defN 15-Sep-01 07:39 res/drawable/abc_list_selector_background_transition_holo_light.xml │ --rw---- 2.0 fat 1208 bl defN 15-Sep-01 07:39 res/drawable/abc_list_selector_holo_dark.xml │ --rw---- 2.0 fat 1208 bl defN 15-Sep-01 07:39 res/drawable/abc_list_selector_holo_light.xml │ --rw---- 2.0 fat 664 bl defN 15-Sep-01 07:39 res/drawable/abc_ratingbar_full_material.xml │ --rw---- 2.0 fat 1328 bl defN 15-Sep-01 07:39 res/drawable/abc_spinner_textfield_background_material.xml │ --rw---- 2.0 fat 560 bl defN 15-Sep-01 07:39 res/drawable/abc_switch_thumb_material.xml │ --rw---- 2.0 fat 564 bl defN 15-Sep-01 07:39 res/drawable/abc_tab_indicator_material.xml │ --rw---- 2.0 fat 880 bl defN 15-Sep-01 07:39 res/drawable/abc_textfield_search_material.xml │ --rw---- 1.0 fat 770 b- stor 15-Sep-01 07:37 res/drawable/background_button.9.png │ --rw---- 2.0 fat 908 bl defN 15-Sep-01 07:39 res/drawable/background_button_float.xml │ --rw---- 2.0 fat 872 bl defN 15-Sep-01 07:39 res/drawable/background_button_rectangle.xml │ --rw---- 2.0 fat 636 bl defN 15-Sep-01 07:39 res/drawable/background_checkbox.xml │ --rw---- 2.0 fat 764 bl defN 15-Sep-01 07:39 res/drawable/background_checkbox_check.xml │ --rw---- 2.0 fat 904 bl defN 15-Sep-01 07:39 res/drawable/background_checkbox_uncheck.xml │ --rw---- 2.0 fat 844 bl defN 15-Sep-01 07:39 res/drawable/background_progress.xml │ --rw---- 2.0 fat 780 bl defN 15-Sep-01 07:39 res/drawable/background_switch_ball_uncheck.xml │ --rw---- 2.0 fat 764 bl defN 15-Sep-01 07:39 res/drawable/background_transparent.xml │ --rw---- 2.0 fat 720 bl defN 15-Sep-01 07:39 res/drawable/shadow_down.xml │ --rw---- 2.0 fat 740 bl defN 15-Sep-01 07:39 res/drawable/shadow_right.xml │ --rw---- 2.0 fat 572 bl defN 15-Sep-01 07:39 res/layout-v11/abc_screen_content_include.xml │ --rw---- 2.0 fat 1788 bl defN 15-Sep-01 07:39 res/layout-v17/abc_activity_chooser_view.xml │ --rw---- 2.0 fat 3736 bl defN 15-Sep-01 07:39 res/layout-v17/abc_search_view.xml │ --rw---- 2.0 fat 8136 bl defN 15-Sep-01 07:39 res/layout-v17/activity_main.xml │ --rw---- 2.0 fat 1624 bl defN 15-Sep-01 07:39 res/layout-v21/abc_screen_toolbar.xml │ --rw---- 2.0 fat 8236 bl defN 15-Sep-01 07:39 res/layout-v21/activity_main.xml │ --rw---- 2.0 fat 956 bl defN 15-Sep-01 07:39 res/layout-v21/activity_settings.xml │ --rw---- 2.0 fat 940 bl defN 15-Sep-01 07:39 res/layout/abc_action_bar_title_item.xml │ --rw---- 2.0 fat 448 bl defN 15-Sep-01 07:39 res/layout/abc_action_bar_up_container.xml │ --rw---- 2.0 fat 396 bl defN 15-Sep-01 07:39 res/layout/abc_action_bar_view_list_nav_layout.xml │ --rw---- 2.0 fat 812 bl defN 15-Sep-01 07:39 res/layout/abc_action_menu_item_layout.xml │ --rw---- 2.0 fat 584 bl defN 15-Sep-01 07:39 res/layout/abc_action_menu_layout.xml │ --rw---- 2.0 fat 472 bl defN 15-Sep-01 07:39 res/layout/abc_action_mode_bar.xml │ --rw---- 2.0 fat 632 bl defN 15-Sep-01 07:39 res/layout/abc_action_mode_close_item_material.xml │ --rw---- 2.0 fat 1740 bl defN 15-Sep-01 07:39 res/layout/abc_activity_chooser_view.xml │ --rw---- 2.0 fat 1272 bl defN 15-Sep-01 07:39 res/layout/abc_activity_chooser_view_list_item.xml │ --rw---- 2.0 fat 404 bl defN 15-Sep-01 07:39 res/layout/abc_expanded_menu_layout.xml │ --rw---- 2.0 fat 536 bl defN 15-Sep-01 07:39 res/layout/abc_list_menu_item_checkbox.xml │ --rw---- 2.0 fat 688 bl defN 15-Sep-01 07:39 res/layout/abc_list_menu_item_icon.xml │ --rw---- 2.0 fat 1412 bl defN 15-Sep-01 07:39 res/layout/abc_list_menu_item_layout.xml │ --rw---- 2.0 fat 536 bl defN 15-Sep-01 07:39 res/layout/abc_list_menu_item_radio.xml │ --rw---- 2.0 fat 1556 bl defN 15-Sep-01 07:39 res/layout/abc_popup_menu_item_layout.xml │ --rw---- 2.0 fat 564 bl defN 15-Sep-01 07:39 res/layout/abc_screen_content_include.xml │ --rw---- 2.0 fat 892 bl defN 15-Sep-01 07:39 res/layout/abc_screen_simple.xml │ --rw---- 2.0 fat 848 bl defN 15-Sep-01 07:39 res/layout/abc_screen_simple_overlay_action_mode.xml │ --rw---- 2.0 fat 1572 bl defN 15-Sep-01 07:39 res/layout/abc_screen_toolbar.xml │ --rw---- 2.0 fat 2244 bl defN 15-Sep-01 07:39 res/layout/abc_search_dropdown_item_icons_2line.xml │ --rw---- 2.0 fat 3688 bl defN 15-Sep-01 07:39 res/layout/abc_search_view.xml │ --rw---- 2.0 fat 488 bl defN 15-Sep-01 07:39 res/layout/abc_simple_dropdown_hint.xml │ --rw---- 2.0 fat 7428 bl defN 15-Sep-01 07:39 res/layout/activity_main.xml │ --rw---- 2.0 fat 916 bl defN 15-Sep-01 07:39 res/layout/activity_settings.xml │ --rw---- 2.0 fat 2968 bl defN 15-Sep-01 07:39 res/layout/color_selector.xml │ --rw---- 2.0 fat 2496 bl defN 15-Sep-01 07:39 res/layout/dialog.xml │ --rw---- 2.0 fat 364 bl defN 15-Sep-01 07:39 res/layout/number_indicator_spinner.xml │ --rw---- 2.0 fat 1296 bl defN 15-Sep-01 07:39 res/layout/progress_dialog.xml │ --rw---- 2.0 fat 1520 bl defN 15-Sep-01 07:39 res/layout/snackbar.xml │ --rw---- 2.0 fat 508 bl defN 15-Sep-01 07:39 res/layout/support_simple_spinner_dropdown_item.xml │ --rw---- 2.0 fat 568 bl defN 15-Sep-01 07:39 res/menu/menu_main.xml │ --rw---- 1.0 fat 2208 b- stor 15-Sep-01 07:37 res/mipmap-hdpi-v4/ic_launcher.png │ --rw---- 1.0 fat 1774 b- stor 15-Sep-01 07:37 res/mipmap-mdpi-v4/ic_launcher.png │ --rw---- 1.0 fat 2995 b- stor 15-Sep-01 07:37 res/mipmap-xhdpi-v4/ic_launcher.png │ --rw---- 1.0 fat 4480 b- stor 15-Sep-01 07:37 res/mipmap-xxhdpi-v4/ic_launcher.png │ --rw---- 1.0 fat 6364 b- stor 15-Sep-01 07:37 res/mipmap-xxxhdpi-v4/ic_launcher.png │ --rw---- 2.0 fat 1472 bl defN 15-Sep-01 07:39 res/xml/pref_general.xml │ --rw---- 1.0 fat 174108 b- stor 15-Sep-01 07:37 resources.arsc │ --rw---- 2.0 fat 1936212 bl defN 15-Sep-01 07:39 classes.dex │ -341 files, 2533063 bytes uncompressed, 1294519 bytes compressed: 48.9% │ +-rw---- 2.0 fat 3076 bX defN 08-Jan-01 00:00 AndroidManifest.xml │ +-rw---- 1.0 fat 4580 b- stor 08-Jan-01 00:00 assets/sprite_check.png │ +-rw---- 2.0 fat 396 bl defN 08-Jan-01 00:00 res/anim/abc_fade_in.xml │ +-rw---- 2.0 fat 396 bl defN 08-Jan-01 00:00 res/anim/abc_fade_out.xml │ +-rw---- 2.0 fat 860 bl defN 08-Jan-01 00:00 res/anim/abc_grow_fade_in_from_bottom.xml │ +-rw---- 2.0 fat 860 bl defN 08-Jan-01 00:00 res/anim/abc_shrink_fade_out_from_bottom.xml │ +-rw---- 2.0 fat 400 bl defN 08-Jan-01 00:00 res/anim/abc_slide_in_bottom.xml │ +-rw---- 2.0 fat 400 bl defN 08-Jan-01 00:00 res/anim/abc_slide_in_top.xml │ +-rw---- 2.0 fat 400 bl defN 08-Jan-01 00:00 res/anim/abc_slide_out_bottom.xml │ +-rw---- 2.0 fat 400 bl defN 08-Jan-01 00:00 res/anim/abc_slide_out_top.xml │ +-rw---- 2.0 fat 880 bl defN 08-Jan-01 00:00 res/anim/dialog_main_hide_amination.xml │ +-rw---- 2.0 fat 748 bl defN 08-Jan-01 00:00 res/anim/dialog_main_show_amination.xml │ +-rw---- 2.0 fat 556 bl defN 08-Jan-01 00:00 res/anim/dialog_root_hide_amin.xml │ +-rw---- 2.0 fat 424 bl defN 08-Jan-01 00:00 res/anim/dialog_root_show_amin.xml │ +-rw---- 2.0 fat 660 bl defN 08-Jan-01 00:00 res/anim/progress_indeterminate_animation.xml │ +-rw---- 2.0 fat 360 bl defN 08-Jan-01 00:00 res/anim/snackbar_hide_animation.xml │ +-rw---- 2.0 fat 360 bl defN 08-Jan-01 00:00 res/anim/snackbar_show_animation.xml │ +-rw---- 2.0 fat 472 bl defN 08-Jan-01 00:00 res/color/abc_background_cache_hint_selector_material_dark.xml │ +-rw---- 2.0 fat 472 bl defN 08-Jan-01 00:00 res/color/abc_background_cache_hint_selector_material_light.xml │ +-rw---- 2.0 fat 468 bl defN 08-Jan-01 00:00 res/color/abc_primary_text_disable_only_material_dark.xml │ +-rw---- 2.0 fat 468 bl defN 08-Jan-01 00:00 res/color/abc_primary_text_disable_only_material_light.xml │ +-rw---- 2.0 fat 468 bl defN 08-Jan-01 00:00 res/color/abc_primary_text_material_dark.xml │ +-rw---- 2.0 fat 468 bl defN 08-Jan-01 00:00 res/color/abc_primary_text_material_light.xml │ +-rw---- 2.0 fat 596 bl defN 08-Jan-01 00:00 res/color/abc_search_url_text.xml │ +-rw---- 2.0 fat 468 bl defN 08-Jan-01 00:00 res/color/abc_secondary_text_material_dark.xml │ +-rw---- 2.0 fat 468 bl defN 08-Jan-01 00:00 res/color/abc_secondary_text_material_light.xml │ +-rw---- 1.0 fat 287 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_ab_share_pack_mtrl_alpha.9.png │ +-rw---- 1.0 fat 306 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_000.png │ +-rw---- 1.0 fat 549 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_015.png │ +-rw---- 1.0 fat 622 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_000.png │ +-rw---- 1.0 fat 753 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_015.png │ +-rw---- 1.0 fat 1589 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_btn_rating_star_off_mtrl_alpha.png │ +-rw---- 1.0 fat 1057 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_btn_rating_star_on_mtrl_alpha.png │ +-rw---- 1.0 fat 2040 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png │ +-rw---- 1.0 fat 2053 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png │ +-rw---- 1.0 fat 229 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_cab_background_top_mtrl_alpha.9.png │ +-rw---- 1.0 fat 407 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png │ +-rw---- 1.0 fat 275 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_ic_clear_mtrl_alpha.png │ +-rw---- 1.0 fat 226 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 147 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_ic_go_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 281 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png │ +-rw---- 1.0 fat 584 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_ic_menu_cut_mtrl_alpha.png │ +-rw---- 1.0 fat 190 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png │ +-rw---- 1.0 fat 360 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png │ +-rw---- 1.0 fat 270 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png │ +-rw---- 1.0 fat 791 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_ic_menu_share_mtrl_alpha.png │ +-rw---- 1.0 fat 1018 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_ic_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 541 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 170 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_list_divider_mtrl_alpha.9.png │ +-rw---- 1.0 fat 244 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_list_focused_holo.9.png │ +-rw---- 1.0 fat 212 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_list_longpressed_holo.9.png │ +-rw---- 1.0 fat 212 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_list_pressed_holo_dark.9.png │ +-rw---- 1.0 fat 212 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_list_pressed_holo_light.9.png │ +-rw---- 1.0 fat 239 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_list_selector_disabled_holo_dark.9.png │ +-rw---- 1.0 fat 240 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_list_selector_disabled_holo_light.9.png │ +-rw---- 1.0 fat 853 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png │ +-rw---- 1.0 fat 1256 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_popup_background_mtrl_mult.9.png │ +-rw---- 1.0 fat 417 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_spinner_mtrl_am_alpha.9.png │ +-rw---- 1.0 fat 530 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_switch_track_mtrl_alpha.9.png │ +-rw---- 1.0 fat 199 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_tab_indicator_mtrl_alpha.9.png │ +-rw---- 1.0 fat 192 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_textfield_activated_mtrl_alpha.9.png │ +-rw---- 1.0 fat 194 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_textfield_default_mtrl_alpha.9.png │ +-rw---- 1.0 fat 187 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png │ +-rw---- 1.0 fat 182 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png │ +-rw---- 1.0 fat 3085 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/fab_shadow.png │ +-rw---- 1.0 fat 2380 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/fab_shadow_mini.png │ +-rw---- 1.0 fat 132 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/ic_action_pause.png │ +-rw---- 1.0 fat 284 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/ic_action_play.png │ +-rw---- 1.0 fat 417 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/ic_action_refresh.png │ +-rw---- 1.0 fat 122 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/ic_action_stop.png │ +-rw---- 1.0 fat 9193 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/ic_launcher.png │ +-rw---- 1.0 fat 850 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/ic_notification.png │ +-rw---- 1.0 fat 1362 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/sprite_check.png │ +-rw---- 1.0 fat 1362 b- stor 08-Jan-01 00:00 res/drawable-ldpi-v4/sprite_check.png │ +-rw---- 1.0 fat 410 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-hdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png │ +-rw---- 1.0 fat 280 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-hdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png │ +-rw---- 1.0 fat 585 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-hdpi-v17/abc_ic_menu_cut_mtrl_alpha.png │ +-rw---- 1.0 fat 367 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-hdpi-v17/abc_spinner_mtrl_am_alpha.9.png │ +-rw---- 1.0 fat 347 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-mdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png │ +-rw---- 1.0 fat 174 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-mdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png │ +-rw---- 1.0 fat 381 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-mdpi-v17/abc_ic_menu_cut_mtrl_alpha.png │ +-rw---- 1.0 fat 342 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-mdpi-v17/abc_spinner_mtrl_am_alpha.9.png │ +-rw---- 1.0 fat 445 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-xhdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png │ +-rw---- 1.0 fat 237 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-xhdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png │ +-rw---- 1.0 fat 691 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-xhdpi-v17/abc_ic_menu_cut_mtrl_alpha.png │ +-rw---- 1.0 fat 483 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-xhdpi-v17/abc_spinner_mtrl_am_alpha.9.png │ +-rw---- 1.0 fat 512 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-xxhdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png │ +-rw---- 1.0 fat 346 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-xxhdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png │ +-rw---- 1.0 fat 934 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-xxhdpi-v17/abc_ic_menu_cut_mtrl_alpha.png │ +-rw---- 1.0 fat 593 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-xxhdpi-v17/abc_spinner_mtrl_am_alpha.9.png │ +-rw---- 1.0 fat 246 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-xxxhdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png │ +-rw---- 1.0 fat 399 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-xxxhdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png │ +-rw---- 1.0 fat 1180 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-xxxhdpi-v17/abc_ic_menu_cut_mtrl_alpha.png │ +-rw---- 1.0 fat 518 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-xxxhdpi-v17/abc_spinner_mtrl_am_alpha.9.png │ +-rw---- 1.0 fat 274 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_ab_share_pack_mtrl_alpha.9.png │ +-rw---- 1.0 fat 288 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_btn_check_to_on_mtrl_000.png │ +-rw---- 1.0 fat 429 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_btn_check_to_on_mtrl_015.png │ +-rw---- 1.0 fat 428 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_btn_radio_to_on_mtrl_000.png │ +-rw---- 1.0 fat 493 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_btn_radio_to_on_mtrl_015.png │ +-rw---- 1.0 fat 1331 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_btn_rating_star_off_mtrl_alpha.png │ +-rw---- 1.0 fat 985 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_btn_rating_star_on_mtrl_alpha.png │ +-rw---- 1.0 fat 1344 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png │ +-rw---- 1.0 fat 1415 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png │ +-rw---- 1.0 fat 225 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_cab_background_top_mtrl_alpha.9.png │ +-rw---- 1.0 fat 345 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png │ +-rw---- 1.0 fat 232 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_ic_clear_mtrl_alpha.png │ +-rw---- 1.0 fat 263 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 149 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_ic_go_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 177 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png │ +-rw---- 1.0 fat 377 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_ic_menu_cut_mtrl_alpha.png │ +-rw---- 1.0 fat 158 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png │ +-rw---- 1.0 fat 234 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png │ +-rw---- 1.0 fat 186 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png │ +-rw---- 1.0 fat 545 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_ic_menu_share_mtrl_alpha.png │ +-rw---- 1.0 fat 683 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_ic_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 404 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 170 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_list_divider_mtrl_alpha.9.png │ +-rw---- 1.0 fat 222 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_list_focused_holo.9.png │ +-rw---- 1.0 fat 211 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_list_longpressed_holo.9.png │ +-rw---- 1.0 fat 211 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_list_pressed_holo_dark.9.png │ +-rw---- 1.0 fat 211 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_list_pressed_holo_light.9.png │ +-rw---- 1.0 fat 226 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_list_selector_disabled_holo_dark.9.png │ +-rw---- 1.0 fat 227 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_list_selector_disabled_holo_light.9.png │ +-rw---- 1.0 fat 605 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png │ +-rw---- 1.0 fat 850 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_popup_background_mtrl_mult.9.png │ +-rw---- 1.0 fat 362 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_spinner_mtrl_am_alpha.9.png │ +-rw---- 1.0 fat 424 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_switch_track_mtrl_alpha.9.png │ +-rw---- 1.0 fat 192 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_tab_indicator_mtrl_alpha.9.png │ +-rw---- 1.0 fat 186 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_textfield_activated_mtrl_alpha.9.png │ +-rw---- 1.0 fat 185 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_textfield_default_mtrl_alpha.9.png │ +-rw---- 1.0 fat 181 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png │ +-rw---- 1.0 fat 180 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png │ +-rw---- 1.0 fat 1897 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/fab_shadow.png │ +-rw---- 1.0 fat 2332 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/fab_shadow_mini.png │ +-rw---- 1.0 fat 135 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/ic_action_pause.png │ +-rw---- 1.0 fat 231 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/ic_action_play.png │ +-rw---- 1.0 fat 336 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/ic_action_refresh.png │ +-rw---- 1.0 fat 132 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/ic_action_stop.png │ +-rw---- 1.0 fat 5057 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/ic_launcher.png │ +-rw---- 1.0 fat 572 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/ic_notification.png │ +-rw---- 1.0 fat 1362 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/sprite_check.png │ +-rw---- 1.0 fat 1076 b- stor 08-Jan-01 00:00 res/drawable-tvdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png │ +-rw---- 1.0 fat 1191 b- stor 08-Jan-01 00:00 res/drawable-tvdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png │ +-rw---- 2.0 fat 472 bl defN 08-Jan-01 00:00 res/drawable-v21/abc_cab_background_top_material.xml │ +-rw---- 1.0 fat 297 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_ab_share_pack_mtrl_alpha.9.png │ +-rw---- 1.0 fat 354 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_btn_check_to_on_mtrl_000.png │ +-rw---- 1.0 fat 556 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_btn_check_to_on_mtrl_015.png │ +-rw---- 1.0 fat 831 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_btn_radio_to_on_mtrl_000.png │ +-rw---- 1.0 fat 996 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_btn_radio_to_on_mtrl_015.png │ +-rw---- 1.0 fat 2172 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_btn_rating_star_off_mtrl_alpha.png │ +-rw---- 1.0 fat 1524 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_btn_rating_star_on_mtrl_alpha.png │ +-rw---- 1.0 fat 2796 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png │ +-rw---- 1.0 fat 2943 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png │ +-rw---- 1.0 fat 234 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_cab_background_top_mtrl_alpha.9.png │ +-rw---- 1.0 fat 442 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png │ +-rw---- 1.0 fat 320 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_ic_clear_mtrl_alpha.png │ +-rw---- 1.0 fat 325 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 179 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_ic_go_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 237 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png │ +-rw---- 1.0 fat 693 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png │ +-rw---- 1.0 fat 218 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png │ +-rw---- 1.0 fat 360 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png │ +-rw---- 1.0 fat 238 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png │ +-rw---- 1.0 fat 919 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_ic_menu_share_mtrl_alpha.png │ +-rw---- 1.0 fat 1132 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_ic_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 719 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 170 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_list_divider_mtrl_alpha.9.png │ +-rw---- 1.0 fat 244 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_list_focused_holo.9.png │ +-rw---- 1.0 fat 214 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_list_longpressed_holo.9.png │ +-rw---- 1.0 fat 214 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_list_pressed_holo_dark.9.png │ +-rw---- 1.0 fat 214 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_list_pressed_holo_light.9.png │ +-rw---- 1.0 fat 254 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_list_selector_disabled_holo_dark.9.png │ +-rw---- 1.0 fat 253 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_list_selector_disabled_holo_light.9.png │ +-rw---- 1.0 fat 1153 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png │ +-rw---- 1.0 fat 1785 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_popup_background_mtrl_mult.9.png │ +-rw---- 1.0 fat 516 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_spinner_mtrl_am_alpha.9.png │ +-rw---- 1.0 fat 736 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_switch_track_mtrl_alpha.9.png │ +-rw---- 1.0 fat 205 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png │ +-rw---- 1.0 fat 198 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_textfield_activated_mtrl_alpha.9.png │ +-rw---- 1.0 fat 197 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_textfield_default_mtrl_alpha.9.png │ +-rw---- 1.0 fat 190 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png │ +-rw---- 1.0 fat 190 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png │ +-rw---- 1.0 fat 3065 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/dialog_background.9.png │ +-rw---- 1.0 fat 4184 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/fab_shadow.png │ +-rw---- 1.0 fat 3920 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/fab_shadow_mini.png │ +-rw---- 1.0 fat 2879 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/float_button1_shadowp.png │ +-rw---- 1.0 fat 1508 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/float_button_shadow1.png │ +-rw---- 1.0 fat 153 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/ic_action_pause.png │ +-rw---- 1.0 fat 331 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/ic_action_play.png │ +-rw---- 1.0 fat 510 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/ic_action_refresh.png │ +-rw---- 1.0 fat 150 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/ic_action_stop.png │ +-rw---- 1.0 fat 14068 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/ic_launcher.png │ +-rw---- 1.0 fat 1025 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/ic_notification.png │ +-rw---- 1.0 fat 2545 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/ic_reloj_max.png │ +-rw---- 1.0 fat 1362 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/sprite_check.png │ +-rw---- 1.0 fat 339 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_ab_share_pack_mtrl_alpha.9.png │ +-rw---- 1.0 fat 369 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_btn_check_to_on_mtrl_000.png │ +-rw---- 1.0 fat 725 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_btn_check_to_on_mtrl_015.png │ +-rw---- 1.0 fat 1249 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_btn_radio_to_on_mtrl_000.png │ +-rw---- 1.0 fat 1467 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_btn_radio_to_on_mtrl_015.png │ +-rw---- 1.0 fat 2265 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_btn_rating_star_off_mtrl_alpha.png │ +-rw---- 1.0 fat 1032 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_btn_rating_star_on_mtrl_alpha.png │ +-rw---- 1.0 fat 4091 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png │ +-rw---- 1.0 fat 4535 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png │ +-rw---- 1.0 fat 246 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_cab_background_top_mtrl_alpha.9.png │ +-rw---- 1.0 fat 515 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png │ +-rw---- 1.0 fat 389 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_ic_clear_mtrl_alpha.png │ +-rw---- 1.0 fat 306 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 176 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_ic_go_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 348 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png │ +-rw---- 1.0 fat 934 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png │ +-rw---- 1.0 fat 284 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png │ +-rw---- 1.0 fat 511 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png │ +-rw---- 1.0 fat 323 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png │ +-rw---- 1.0 fat 1292 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_ic_menu_share_mtrl_alpha.png │ +-rw---- 1.0 fat 1920 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_ic_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 928 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 178 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_list_divider_mtrl_alpha.9.png │ +-rw---- 1.0 fat 245 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_list_focused_holo.9.png │ +-rw---- 1.0 fat 221 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_list_longpressed_holo.9.png │ +-rw---- 1.0 fat 221 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_list_pressed_holo_dark.9.png │ +-rw---- 1.0 fat 221 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_list_pressed_holo_light.9.png │ +-rw---- 1.0 fat 307 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_list_selector_disabled_holo_dark.9.png │ +-rw---- 1.0 fat 305 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_list_selector_disabled_holo_light.9.png │ +-rw---- 1.0 fat 1867 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png │ +-rw---- 1.0 fat 2774 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_popup_background_mtrl_mult.9.png │ +-rw---- 1.0 fat 646 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_spinner_mtrl_am_alpha.9.png │ +-rw---- 1.0 fat 1082 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_switch_track_mtrl_alpha.9.png │ +-rw---- 1.0 fat 215 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png │ +-rw---- 1.0 fat 202 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_textfield_activated_mtrl_alpha.9.png │ +-rw---- 1.0 fat 204 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_textfield_default_mtrl_alpha.9.png │ +-rw---- 1.0 fat 193 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png │ +-rw---- 1.0 fat 196 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png │ +-rw---- 1.0 fat 7250 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/fab_shadow.png │ +-rw---- 1.0 fat 5421 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/fab_shadow_mini.png │ +-rw---- 1.0 fat 180 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/ic_action_pause.png │ +-rw---- 1.0 fat 423 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/ic_action_play.png │ +-rw---- 1.0 fat 687 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/ic_action_refresh.png │ +-rw---- 1.0 fat 161 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/ic_action_stop.png │ +-rw---- 1.0 fat 1467 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/ic_notification.png │ +-rw---- 1.0 fat 1362 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/sprite_check.png │ +-rw---- 1.0 fat 295 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_btn_check_to_on_mtrl_000.png │ +-rw---- 1.0 fat 551 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_btn_check_to_on_mtrl_015.png │ +-rw---- 1.0 fat 1014 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_btn_radio_to_on_mtrl_000.png │ +-rw---- 1.0 fat 1226 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_btn_radio_to_on_mtrl_015.png │ +-rw---- 1.0 fat 3674 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png │ +-rw---- 1.0 fat 3998 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png │ +-rw---- 1.0 fat 240 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png │ +-rw---- 1.0 fat 463 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_ic_clear_mtrl_alpha.png │ +-rw---- 1.0 fat 401 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png │ +-rw---- 1.0 fat 1173 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png │ +-rw---- 1.0 fat 355 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png │ +-rw---- 1.0 fat 665 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png │ +-rw---- 1.0 fat 390 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png │ +-rw---- 1.0 fat 1559 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_ic_menu_share_mtrl_alpha.png │ +-rw---- 1.0 fat 1515 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_ic_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 1271 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 696 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_spinner_mtrl_am_alpha.9.png │ +-rw---- 1.0 fat 1064 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_switch_track_mtrl_alpha.9.png │ +-rw---- 1.0 fat 261 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png │ +-rw---- 1.0 fat 7006 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/fab_shadow.png │ +-rw---- 1.0 fat 5470 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/fab_shadow_mini.png │ +-rw---- 2.0 fat 560 bl defN 08-Jan-01 00:00 res/drawable/abc_btn_check_material.xml │ +-rw---- 2.0 fat 1092 bl defN 08-Jan-01 00:00 res/drawable/abc_btn_default_mtrl_shape.xml │ +-rw---- 2.0 fat 560 bl defN 08-Jan-01 00:00 res/drawable/abc_btn_radio_material.xml │ +-rw---- 2.0 fat 436 bl defN 08-Jan-01 00:00 res/drawable/abc_cab_background_internal_bg.xml │ +-rw---- 2.0 fat 508 bl defN 08-Jan-01 00:00 res/drawable/abc_cab_background_top_material.xml │ +-rw---- 2.0 fat 1164 bl defN 08-Jan-01 00:00 res/drawable/abc_edit_text_material.xml │ +-rw---- 2.0 fat 1136 bl defN 08-Jan-01 00:00 res/drawable/abc_item_background_holo_dark.xml │ +-rw---- 2.0 fat 1136 bl defN 08-Jan-01 00:00 res/drawable/abc_item_background_holo_light.xml │ +-rw---- 2.0 fat 508 bl defN 08-Jan-01 00:00 res/drawable/abc_list_selector_background_transition_holo_dark.xml │ +-rw---- 2.0 fat 508 bl defN 08-Jan-01 00:00 res/drawable/abc_list_selector_background_transition_holo_light.xml │ +-rw---- 2.0 fat 1208 bl defN 08-Jan-01 00:00 res/drawable/abc_list_selector_holo_dark.xml │ +-rw---- 2.0 fat 1208 bl defN 08-Jan-01 00:00 res/drawable/abc_list_selector_holo_light.xml │ +-rw---- 2.0 fat 664 bl defN 08-Jan-01 00:00 res/drawable/abc_ratingbar_full_material.xml │ +-rw---- 2.0 fat 1328 bl defN 08-Jan-01 00:00 res/drawable/abc_spinner_textfield_background_material.xml │ +-rw---- 2.0 fat 560 bl defN 08-Jan-01 00:00 res/drawable/abc_switch_thumb_material.xml │ +-rw---- 2.0 fat 564 bl defN 08-Jan-01 00:00 res/drawable/abc_tab_indicator_material.xml │ +-rw---- 2.0 fat 880 bl defN 08-Jan-01 00:00 res/drawable/abc_textfield_search_material.xml │ +-rw---- 1.0 fat 770 b- stor 08-Jan-01 00:00 res/drawable/background_button.9.png │ +-rw---- 2.0 fat 908 bl defN 08-Jan-01 00:00 res/drawable/background_button_float.xml │ +-rw---- 2.0 fat 872 bl defN 08-Jan-01 00:00 res/drawable/background_button_rectangle.xml │ +-rw---- 2.0 fat 636 bl defN 08-Jan-01 00:00 res/drawable/background_checkbox.xml │ +-rw---- 2.0 fat 764 bl defN 08-Jan-01 00:00 res/drawable/background_checkbox_check.xml │ +-rw---- 2.0 fat 904 bl defN 08-Jan-01 00:00 res/drawable/background_checkbox_uncheck.xml │ +-rw---- 2.0 fat 844 bl defN 08-Jan-01 00:00 res/drawable/background_progress.xml │ +-rw---- 2.0 fat 780 bl defN 08-Jan-01 00:00 res/drawable/background_switch_ball_uncheck.xml │ +-rw---- 2.0 fat 764 bl defN 08-Jan-01 00:00 res/drawable/background_transparent.xml │ +-rw---- 2.0 fat 720 bl defN 08-Jan-01 00:00 res/drawable/shadow_down.xml │ +-rw---- 2.0 fat 740 bl defN 08-Jan-01 00:00 res/drawable/shadow_right.xml │ +-rw---- 2.0 fat 572 bl defN 08-Jan-01 00:00 res/layout-v11/abc_screen_content_include.xml │ +-rw---- 2.0 fat 1624 bl defN 08-Jan-01 00:00 res/layout-v21/abc_screen_toolbar.xml │ +-rw---- 2.0 fat 8236 bl defN 08-Jan-01 00:00 res/layout-v21/activity_main.xml │ +-rw---- 2.0 fat 956 bl defN 08-Jan-01 00:00 res/layout-v21/activity_settings.xml │ +-rw---- 2.0 fat 940 bl defN 08-Jan-01 00:00 res/layout/abc_action_bar_title_item.xml │ +-rw---- 2.0 fat 448 bl defN 08-Jan-01 00:00 res/layout/abc_action_bar_up_container.xml │ +-rw---- 2.0 fat 396 bl defN 08-Jan-01 00:00 res/layout/abc_action_bar_view_list_nav_layout.xml │ +-rw---- 2.0 fat 812 bl defN 08-Jan-01 00:00 res/layout/abc_action_menu_item_layout.xml │ +-rw---- 2.0 fat 584 bl defN 08-Jan-01 00:00 res/layout/abc_action_menu_layout.xml │ +-rw---- 2.0 fat 472 bl defN 08-Jan-01 00:00 res/layout/abc_action_mode_bar.xml │ +-rw---- 2.0 fat 632 bl defN 08-Jan-01 00:00 res/layout/abc_action_mode_close_item_material.xml │ +-rw---- 2.0 fat 1788 bl defN 08-Jan-01 00:00 res/layout/abc_activity_chooser_view.xml │ +-rw---- 2.0 fat 1272 bl defN 08-Jan-01 00:00 res/layout/abc_activity_chooser_view_list_item.xml │ +-rw---- 2.0 fat 404 bl defN 08-Jan-01 00:00 res/layout/abc_expanded_menu_layout.xml │ +-rw---- 2.0 fat 536 bl defN 08-Jan-01 00:00 res/layout/abc_list_menu_item_checkbox.xml │ +-rw---- 2.0 fat 688 bl defN 08-Jan-01 00:00 res/layout/abc_list_menu_item_icon.xml │ +-rw---- 2.0 fat 1412 bl defN 08-Jan-01 00:00 res/layout/abc_list_menu_item_layout.xml │ +-rw---- 2.0 fat 536 bl defN 08-Jan-01 00:00 res/layout/abc_list_menu_item_radio.xml │ +-rw---- 2.0 fat 1556 bl defN 08-Jan-01 00:00 res/layout/abc_popup_menu_item_layout.xml │ +-rw---- 2.0 fat 564 bl defN 08-Jan-01 00:00 res/layout/abc_screen_content_include.xml │ +-rw---- 2.0 fat 892 bl defN 08-Jan-01 00:00 res/layout/abc_screen_simple.xml │ +-rw---- 2.0 fat 848 bl defN 08-Jan-01 00:00 res/layout/abc_screen_simple_overlay_action_mode.xml │ +-rw---- 2.0 fat 1572 bl defN 08-Jan-01 00:00 res/layout/abc_screen_toolbar.xml │ +-rw---- 2.0 fat 2244 bl defN 08-Jan-01 00:00 res/layout/abc_search_dropdown_item_icons_2line.xml │ +-rw---- 2.0 fat 3736 bl defN 08-Jan-01 00:00 res/layout/abc_search_view.xml │ +-rw---- 2.0 fat 488 bl defN 08-Jan-01 00:00 res/layout/abc_simple_dropdown_hint.xml │ +-rw---- 2.0 fat 8136 bl defN 08-Jan-01 00:00 res/layout/activity_main.xml │ +-rw---- 2.0 fat 916 bl defN 08-Jan-01 00:00 res/layout/activity_settings.xml │ +-rw---- 2.0 fat 2968 bl defN 08-Jan-01 00:00 res/layout/color_selector.xml │ +-rw---- 2.0 fat 2496 bl defN 08-Jan-01 00:00 res/layout/dialog.xml │ +-rw---- 2.0 fat 364 bl defN 08-Jan-01 00:00 res/layout/number_indicator_spinner.xml │ +-rw---- 2.0 fat 1296 bl defN 08-Jan-01 00:00 res/layout/progress_dialog.xml │ +-rw---- 2.0 fat 1520 bl defN 08-Jan-01 00:00 res/layout/snackbar.xml │ +-rw---- 2.0 fat 508 bl defN 08-Jan-01 00:00 res/layout/support_simple_spinner_dropdown_item.xml │ +-rw---- 2.0 fat 568 bl defN 08-Jan-01 00:00 res/menu/menu_main.xml │ +-rw---- 1.0 fat 2208 b- stor 08-Jan-01 00:00 res/mipmap-hdpi-v4/ic_launcher.png │ +-rw---- 1.0 fat 1774 b- stor 08-Jan-01 00:00 res/mipmap-mdpi-v4/ic_launcher.png │ +-rw---- 1.0 fat 2995 b- stor 08-Jan-01 00:00 res/mipmap-xhdpi-v4/ic_launcher.png │ +-rw---- 1.0 fat 4480 b- stor 08-Jan-01 00:00 res/mipmap-xxhdpi-v4/ic_launcher.png │ +-rw---- 1.0 fat 6364 b- stor 08-Jan-01 00:00 res/mipmap-xxxhdpi-v4/ic_launcher.png │ +-rw---- 2.0 fat 1472 bl defN 08-Jan-01 00:00 res/xml/pref_general.xml │ +-rw---- 1.0 fat 173220 b- stor 08-Jan-01 00:00 resources.arsc │ +-rw---- 2.0 fat 1948764 bl defN 08-Jan-01 00:00 classes.dex │ +338 files, 2531871 bytes uncompressed, 1295814 bytes compressed: 48.8% ├── res/layout/abc_search_view.xml │ @@ -1,13 +1,13 @@ │ │ - │ + ├── res/layout/activity_main.xml │ @@ -5,27 +5,27 @@ │ xmlns:android="http://schemas.android.com/apk/res/android" /> │ │ - │ - │ - │ - │ - │ - │ - │ - │ - │ - │ - │ - │ - │ - │ + │ + │ + │ + │ + │ + │ + │ + │ + │ + │ + │ + │ + │ + │ - │ - │ - │ + │ + │ + │ ├── res/layout/abc_activity_chooser_view.xml │ @@ -1,10 +1,10 @@ │ │ - │ + ├── smali/android/support/v7/appcompat/R.smali │ @@ -26,10 +26,9 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 9 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 729 │ return-void │ .end method ├── smali/com/gc/materialdesign/R.smali │ @@ -21,10 +21,9 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 9 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 88 │ return-void │ .end method ├── smali/com/google/gson/DefaultDateTypeAdapter.smali │ @@ -22,162 +22,142 @@ │ } │ .end annotation │ │ │ # instance fields │ .field private final enUsFormat:Ljava/text/DateFormat; │ │ -.field private final iso8601Format:Ljava/text/DateFormat; │ - │ .field private final localFormat:Ljava/text/DateFormat; │ │ │ # direct methods │ .method constructor ()V │ .locals 2 │ │ .prologue │ const/4 v1, 0x2 │ │ - .line 44 │ + .line 45 │ sget-object v0, Ljava/util/Locale;->US:Ljava/util/Locale; │ │ invoke-static {v1, v1, v0}, Ljava/text/DateFormat;->getDateTimeInstance(IILjava/util/Locale;)Ljava/text/DateFormat; │ │ move-result-object v0 │ │ + .line 46 │ invoke-static {v1, v1}, Ljava/text/DateFormat;->getDateTimeInstance(II)Ljava/text/DateFormat; │ │ move-result-object v1 │ │ + .line 45 │ invoke-direct {p0, v0, v1}, Lcom/google/gson/DefaultDateTypeAdapter;->(Ljava/text/DateFormat;Ljava/text/DateFormat;)V │ │ - .line 46 │ + .line 47 │ return-void │ .end method │ │ .method constructor (I)V │ .locals 2 │ .param p1, "style" # I │ │ .prologue │ - .line 53 │ + .line 54 │ sget-object v0, Ljava/util/Locale;->US:Ljava/util/Locale; │ │ invoke-static {p1, v0}, Ljava/text/DateFormat;->getDateInstance(ILjava/util/Locale;)Ljava/text/DateFormat; │ │ move-result-object v0 │ │ invoke-static {p1}, Ljava/text/DateFormat;->getDateInstance(I)Ljava/text/DateFormat; │ │ move-result-object v1 │ │ invoke-direct {p0, v0, v1}, Lcom/google/gson/DefaultDateTypeAdapter;->(Ljava/text/DateFormat;Ljava/text/DateFormat;)V │ │ - .line 54 │ + .line 55 │ return-void │ .end method │ │ .method public constructor (II)V │ .locals 2 │ .param p1, "dateStyle" # I │ .param p2, "timeStyle" # I │ │ .prologue │ - .line 57 │ + .line 58 │ sget-object v0, Ljava/util/Locale;->US:Ljava/util/Locale; │ │ invoke-static {p1, p2, v0}, Ljava/text/DateFormat;->getDateTimeInstance(IILjava/util/Locale;)Ljava/text/DateFormat; │ │ move-result-object v0 │ │ + .line 59 │ invoke-static {p1, p2}, Ljava/text/DateFormat;->getDateTimeInstance(II)Ljava/text/DateFormat; │ │ move-result-object v1 │ │ + .line 58 │ invoke-direct {p0, v0, v1}, Lcom/google/gson/DefaultDateTypeAdapter;->(Ljava/text/DateFormat;Ljava/text/DateFormat;)V │ │ - .line 59 │ + .line 60 │ return-void │ .end method │ │ .method constructor (Ljava/lang/String;)V │ .locals 2 │ .param p1, "datePattern" # Ljava/lang/String; │ │ .prologue │ - .line 49 │ + .line 50 │ new-instance v0, Ljava/text/SimpleDateFormat; │ │ sget-object v1, Ljava/util/Locale;->US:Ljava/util/Locale; │ │ invoke-direct {v0, p1, v1}, Ljava/text/SimpleDateFormat;->(Ljava/lang/String;Ljava/util/Locale;)V │ │ new-instance v1, Ljava/text/SimpleDateFormat; │ │ invoke-direct {v1, p1}, Ljava/text/SimpleDateFormat;->(Ljava/lang/String;)V │ │ invoke-direct {p0, v0, v1}, Lcom/google/gson/DefaultDateTypeAdapter;->(Ljava/text/DateFormat;Ljava/text/DateFormat;)V │ │ - .line 50 │ + .line 51 │ return-void │ .end method │ │ .method constructor (Ljava/text/DateFormat;Ljava/text/DateFormat;)V │ - .locals 3 │ + .locals 0 │ .param p1, "enUsFormat" # Ljava/text/DateFormat; │ .param p2, "localFormat" # Ljava/text/DateFormat; │ │ .prologue │ - .line 61 │ - invoke-direct {p0}, Ljava/lang/Object;->()V │ - │ .line 62 │ - iput-object p1, p0, Lcom/google/gson/DefaultDateTypeAdapter;->enUsFormat:Ljava/text/DateFormat; │ + invoke-direct {p0}, Ljava/lang/Object;->()V │ │ .line 63 │ - iput-object p2, p0, Lcom/google/gson/DefaultDateTypeAdapter;->localFormat:Ljava/text/DateFormat; │ + iput-object p1, p0, Lcom/google/gson/DefaultDateTypeAdapter;->enUsFormat:Ljava/text/DateFormat; │ │ .line 64 │ - new-instance v0, Ljava/text/SimpleDateFormat; │ - │ - const-string v1, "yyyy-MM-dd\'T\'HH:mm:ss\'Z\'" │ - │ - sget-object v2, Ljava/util/Locale;->US:Ljava/util/Locale; │ - │ - invoke-direct {v0, v1, v2}, Ljava/text/SimpleDateFormat;->(Ljava/lang/String;Ljava/util/Locale;)V │ - │ - iput-object v0, p0, Lcom/google/gson/DefaultDateTypeAdapter;->iso8601Format:Ljava/text/DateFormat; │ + iput-object p2, p0, Lcom/google/gson/DefaultDateTypeAdapter;->localFormat:Ljava/text/DateFormat; │ │ .line 65 │ - iget-object v0, p0, Lcom/google/gson/DefaultDateTypeAdapter;->iso8601Format:Ljava/text/DateFormat; │ - │ - const-string v1, "UTC" │ - │ - invoke-static {v1}, Ljava/util/TimeZone;->getTimeZone(Ljava/lang/String;)Ljava/util/TimeZone; │ - │ - move-result-object v1 │ - │ - invoke-virtual {v0, v1}, Ljava/text/DateFormat;->setTimeZone(Ljava/util/TimeZone;)V │ - │ - .line 66 │ return-void │ .end method │ │ .method private deserializeToDate(Lcom/google/gson/JsonElement;)Ljava/util/Date; │ - .locals 4 │ + .locals 5 │ .param p1, "json" # Lcom/google/gson/JsonElement; │ │ .prologue │ - .line 95 │ + .line 96 │ iget-object v2, p0, Lcom/google/gson/DefaultDateTypeAdapter;->localFormat:Ljava/text/DateFormat; │ │ monitor-enter v2 │ │ - .line 97 │ + .line 98 │ :try_start_0 │ iget-object v1, p0, Lcom/google/gson/DefaultDateTypeAdapter;->localFormat:Ljava/text/DateFormat; │ │ invoke-virtual {p1}, Lcom/google/gson/JsonElement;->getAsString()Ljava/lang/String; │ │ move-result-object v3 │ │ @@ -189,19 +169,19 @@ │ move-result-object v1 │ │ :try_start_1 │ monitor-exit v2 │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 105 │ + .line 104 │ :goto_0 │ return-object v1 │ │ - .line 98 │ + .line 99 │ :catch_0 │ move-exception v1 │ │ .line 101 │ :try_start_2 │ iget-object v1, p0, Lcom/google/gson/DefaultDateTypeAdapter;->enUsFormat:Ljava/text/DateFormat; │ │ @@ -217,53 +197,57 @@ │ move-result-object v1 │ │ :try_start_3 │ monitor-exit v2 │ │ goto :goto_0 │ │ - .line 109 │ + .line 108 │ :catchall_0 │ move-exception v1 │ │ monitor-exit v2 │ :try_end_3 │ .catchall {:try_start_3 .. :try_end_3} :catchall_0 │ │ throw v1 │ │ .line 102 │ :catch_1 │ move-exception v1 │ │ - .line 105 │ + .line 104 │ :try_start_4 │ - iget-object v1, p0, Lcom/google/gson/DefaultDateTypeAdapter;->iso8601Format:Ljava/text/DateFormat; │ - │ invoke-virtual {p1}, Lcom/google/gson/JsonElement;->getAsString()Ljava/lang/String; │ │ - move-result-object v3 │ + move-result-object v1 │ │ - invoke-virtual {v1, v3}, Ljava/text/DateFormat;->parse(Ljava/lang/String;)Ljava/util/Date; │ + new-instance v3, Ljava/text/ParsePosition; │ + │ + const/4 v4, 0x0 │ + │ + invoke-direct {v3, v4}, Ljava/text/ParsePosition;->(I)V │ + │ + invoke-static {v1, v3}, Lcom/google/gson/internal/bind/util/ISO8601Utils;->parse(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/util/Date; │ :try_end_4 │ .catch Ljava/text/ParseException; {:try_start_4 .. :try_end_4} :catch_2 │ .catchall {:try_start_4 .. :try_end_4} :catchall_0 │ │ move-result-object v1 │ │ :try_start_5 │ monitor-exit v2 │ │ goto :goto_0 │ │ - .line 106 │ + .line 105 │ :catch_2 │ move-exception v0 │ │ - .line 107 │ + .line 106 │ .local v0, "e":Ljava/text/ParseException; │ new-instance v1, Lcom/google/gson/JsonSyntaxException; │ │ invoke-virtual {p1}, Lcom/google/gson/JsonElement;->getAsString()Ljava/lang/String; │ │ move-result-object v3 │ │ @@ -274,25 +258,22 @@ │ .catchall {:try_start_5 .. :try_end_5} :catchall_0 │ .end method │ │ │ # virtual methods │ .method public bridge synthetic deserialize(Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/JsonElement; │ - .param p2, "x1" # Ljava/lang/reflect/Type; │ - .param p3, "x2" # Lcom/google/gson/JsonDeserializationContext; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Lcom/google/gson/JsonParseException; │ } │ .end annotation │ │ .prologue │ - .line 35 │ + .line 37 │ invoke-virtual {p0, p1, p2, p3}, Lcom/google/gson/DefaultDateTypeAdapter;->deserialize(Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/util/Date; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ @@ -304,85 +285,85 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Lcom/google/gson/JsonParseException; │ } │ .end annotation │ │ .prologue │ - .line 79 │ + .line 80 │ instance-of v1, p1, Lcom/google/gson/JsonPrimitive; │ │ if-nez v1, :cond_0 │ │ - .line 80 │ + .line 81 │ new-instance v1, Lcom/google/gson/JsonParseException; │ │ const-string v2, "The date should be a string value" │ │ invoke-direct {v1, v2}, Lcom/google/gson/JsonParseException;->(Ljava/lang/String;)V │ │ throw v1 │ │ - .line 82 │ + .line 83 │ :cond_0 │ invoke-direct {p0, p1}, Lcom/google/gson/DefaultDateTypeAdapter;->deserializeToDate(Lcom/google/gson/JsonElement;)Ljava/util/Date; │ │ move-result-object v0 │ │ - .line 83 │ + .line 84 │ .local v0, "date":Ljava/util/Date; │ const-class v1, Ljava/util/Date; │ │ if-ne p2, v1, :cond_1 │ │ - .line 88 │ + .line 89 │ .end local v0 # "date":Ljava/util/Date; │ :goto_0 │ return-object v0 │ │ - .line 85 │ + .line 86 │ .restart local v0 # "date":Ljava/util/Date; │ :cond_1 │ const-class v1, Ljava/sql/Timestamp; │ │ if-ne p2, v1, :cond_2 │ │ - .line 86 │ + .line 87 │ new-instance v1, Ljava/sql/Timestamp; │ │ invoke-virtual {v0}, Ljava/util/Date;->getTime()J │ │ move-result-wide v2 │ │ invoke-direct {v1, v2, v3}, Ljava/sql/Timestamp;->(J)V │ │ move-object v0, v1 │ │ goto :goto_0 │ │ - .line 87 │ + .line 88 │ :cond_2 │ const-class v1, Ljava/sql/Date; │ │ if-ne p2, v1, :cond_3 │ │ - .line 88 │ + .line 89 │ new-instance v1, Ljava/sql/Date; │ │ invoke-virtual {v0}, Ljava/util/Date;->getTime()J │ │ move-result-wide v2 │ │ invoke-direct {v1, v2, v3}, Ljava/sql/Date;->(J)V │ │ move-object v0, v1 │ │ goto :goto_0 │ │ - .line 90 │ + .line 91 │ :cond_3 │ new-instance v1, Ljava/lang/IllegalArgumentException; │ │ new-instance v2, Ljava/lang/StringBuilder; │ │ invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ │ @@ -411,23 +392,19 @@ │ invoke-direct {v1, v2}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ throw v1 │ .end method │ │ .method public bridge synthetic serialize(Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; │ .locals 1 │ - .param p1, "x0" # Ljava/lang/Object; │ - .param p2, "x1" # Ljava/lang/reflect/Type; │ - .param p3, "x2" # Lcom/google/gson/JsonSerializationContext; │ │ .prologue │ - .line 35 │ + .line 37 │ check-cast p1, Ljava/util/Date; │ │ - .end local p1 # "x0":Ljava/lang/Object; │ invoke-virtual {p0, p1, p2, p3}, Lcom/google/gson/DefaultDateTypeAdapter;->serialize(Ljava/util/Date;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ @@ -473,30 +450,30 @@ │ throw v1 │ .end method │ │ .method public toString()Ljava/lang/String; │ .locals 3 │ │ .prologue │ - .line 114 │ + .line 113 │ new-instance v0, Ljava/lang/StringBuilder; │ │ invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ │ - .line 115 │ + .line 114 │ .local v0, "sb":Ljava/lang/StringBuilder; │ const-class v1, Lcom/google/gson/DefaultDateTypeAdapter; │ │ invoke-virtual {v1}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - .line 116 │ + .line 115 │ const/16 v1, 0x28 │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ iget-object v2, p0, Lcom/google/gson/DefaultDateTypeAdapter;->localFormat:Ljava/text/DateFormat; │ @@ -513,14 +490,14 @@ │ │ move-result-object v1 │ │ const/16 v2, 0x29 │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 117 │ + .line 116 │ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v1 │ │ return-object v1 │ .end method ├── smali/com/google/gson/FieldNamingPolicy$1.smali │ @@ -15,29 +15,29 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 36 │ + .line 37 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lcom/google/gson/FieldNamingPolicy;->(Ljava/lang/String;ILcom/google/gson/FieldNamingPolicy$1;)V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public translateName(Ljava/lang/reflect/Field;)Ljava/lang/String; │ .locals 1 │ .param p1, "f" # Ljava/lang/reflect/Field; │ │ .prologue │ - .line 38 │ + .line 39 │ invoke-virtual {p1}, Ljava/lang/reflect/Field;->getName()Ljava/lang/String; │ │ move-result-object v0 │ │ return-object v0 │ .end method ├── smali/com/google/gson/FieldNamingPolicy$2.smali │ @@ -15,34 +15,33 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 52 │ + .line 53 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lcom/google/gson/FieldNamingPolicy;->(Ljava/lang/String;ILcom/google/gson/FieldNamingPolicy$1;)V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public translateName(Ljava/lang/reflect/Field;)Ljava/lang/String; │ .locals 1 │ .param p1, "f" # Ljava/lang/reflect/Field; │ │ .prologue │ - .line 54 │ + .line 55 │ invoke-virtual {p1}, Ljava/lang/reflect/Field;->getName()Ljava/lang/String; │ │ move-result-object v0 │ │ - # invokes: Lcom/google/gson/FieldNamingPolicy;->upperCaseFirstLetter(Ljava/lang/String;)Ljava/lang/String; │ - invoke-static {v0}, Lcom/google/gson/FieldNamingPolicy;->access$100(Ljava/lang/String;)Ljava/lang/String; │ + invoke-static {v0}, Lcom/google/gson/FieldNamingPolicy$2;->upperCaseFirstLetter(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v0 │ │ return-object v0 │ .end method ├── smali/com/google/gson/FieldNamingPolicy$3.smali │ @@ -15,41 +15,39 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 71 │ + .line 72 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lcom/google/gson/FieldNamingPolicy;->(Ljava/lang/String;ILcom/google/gson/FieldNamingPolicy$1;)V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public translateName(Ljava/lang/reflect/Field;)Ljava/lang/String; │ .locals 2 │ .param p1, "f" # Ljava/lang/reflect/Field; │ │ .prologue │ - .line 73 │ + .line 74 │ invoke-virtual {p1}, Ljava/lang/reflect/Field;->getName()Ljava/lang/String; │ │ move-result-object v0 │ │ const-string v1, " " │ │ - # invokes: Lcom/google/gson/FieldNamingPolicy;->separateCamelCase(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ - invoke-static {v0, v1}, Lcom/google/gson/FieldNamingPolicy;->access$200(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ + invoke-static {v0, v1}, Lcom/google/gson/FieldNamingPolicy$3;->separateCamelCase(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v0 │ │ - # invokes: Lcom/google/gson/FieldNamingPolicy;->upperCaseFirstLetter(Ljava/lang/String;)Ljava/lang/String; │ - invoke-static {v0}, Lcom/google/gson/FieldNamingPolicy;->access$100(Ljava/lang/String;)Ljava/lang/String; │ + invoke-static {v0}, Lcom/google/gson/FieldNamingPolicy$3;->upperCaseFirstLetter(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v0 │ │ return-object v0 │ .end method ├── smali/com/google/gson/FieldNamingPolicy$4.smali │ @@ -15,40 +15,41 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 89 │ + .line 90 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lcom/google/gson/FieldNamingPolicy;->(Ljava/lang/String;ILcom/google/gson/FieldNamingPolicy$1;)V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public translateName(Ljava/lang/reflect/Field;)Ljava/lang/String; │ .locals 2 │ .param p1, "f" # Ljava/lang/reflect/Field; │ │ .prologue │ - .line 91 │ + .line 92 │ invoke-virtual {p1}, Ljava/lang/reflect/Field;->getName()Ljava/lang/String; │ │ move-result-object v0 │ │ const-string v1, "_" │ │ - # invokes: Lcom/google/gson/FieldNamingPolicy;->separateCamelCase(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ - invoke-static {v0, v1}, Lcom/google/gson/FieldNamingPolicy;->access$200(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ + invoke-static {v0, v1}, Lcom/google/gson/FieldNamingPolicy$4;->separateCamelCase(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v0 │ │ - invoke-virtual {v0}, Ljava/lang/String;->toLowerCase()Ljava/lang/String; │ + sget-object v1, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ + │ + invoke-virtual {v0, v1}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String; │ │ move-result-object v0 │ │ return-object v0 │ .end method ├── smali/com/google/gson/FieldNamingPolicy$5.smali │ @@ -15,40 +15,41 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 112 │ + .line 113 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lcom/google/gson/FieldNamingPolicy;->(Ljava/lang/String;ILcom/google/gson/FieldNamingPolicy$1;)V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public translateName(Ljava/lang/reflect/Field;)Ljava/lang/String; │ .locals 2 │ .param p1, "f" # Ljava/lang/reflect/Field; │ │ .prologue │ - .line 114 │ + .line 115 │ invoke-virtual {p1}, Ljava/lang/reflect/Field;->getName()Ljava/lang/String; │ │ move-result-object v0 │ │ const-string v1, "-" │ │ - # invokes: Lcom/google/gson/FieldNamingPolicy;->separateCamelCase(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ - invoke-static {v0, v1}, Lcom/google/gson/FieldNamingPolicy;->access$200(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ + invoke-static {v0, v1}, Lcom/google/gson/FieldNamingPolicy$5;->separateCamelCase(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v0 │ │ - invoke-virtual {v0}, Ljava/lang/String;->toLowerCase()Ljava/lang/String; │ + sget-object v1, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ + │ + invoke-virtual {v0, v1}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String; │ │ move-result-object v0 │ │ return-object v0 │ .end method ├── smali/com/google/gson/FieldNamingPolicy.smali │ @@ -43,60 +43,60 @@ │ │ const/4 v4, 0x2 │ │ const/4 v3, 0x1 │ │ const/4 v2, 0x0 │ │ - .line 36 │ + .line 37 │ new-instance v0, Lcom/google/gson/FieldNamingPolicy$1; │ │ const-string v1, "IDENTITY" │ │ invoke-direct {v0, v1, v2}, Lcom/google/gson/FieldNamingPolicy$1;->(Ljava/lang/String;I)V │ │ sput-object v0, Lcom/google/gson/FieldNamingPolicy;->IDENTITY:Lcom/google/gson/FieldNamingPolicy; │ │ - .line 52 │ + .line 53 │ new-instance v0, Lcom/google/gson/FieldNamingPolicy$2; │ │ const-string v1, "UPPER_CAMEL_CASE" │ │ invoke-direct {v0, v1, v3}, Lcom/google/gson/FieldNamingPolicy$2;->(Ljava/lang/String;I)V │ │ sput-object v0, Lcom/google/gson/FieldNamingPolicy;->UPPER_CAMEL_CASE:Lcom/google/gson/FieldNamingPolicy; │ │ - .line 71 │ + .line 72 │ new-instance v0, Lcom/google/gson/FieldNamingPolicy$3; │ │ const-string v1, "UPPER_CAMEL_CASE_WITH_SPACES" │ │ invoke-direct {v0, v1, v4}, Lcom/google/gson/FieldNamingPolicy$3;->(Ljava/lang/String;I)V │ │ sput-object v0, Lcom/google/gson/FieldNamingPolicy;->UPPER_CAMEL_CASE_WITH_SPACES:Lcom/google/gson/FieldNamingPolicy; │ │ - .line 89 │ + .line 90 │ new-instance v0, Lcom/google/gson/FieldNamingPolicy$4; │ │ const-string v1, "LOWER_CASE_WITH_UNDERSCORES" │ │ invoke-direct {v0, v1, v5}, Lcom/google/gson/FieldNamingPolicy$4;->(Ljava/lang/String;I)V │ │ sput-object v0, Lcom/google/gson/FieldNamingPolicy;->LOWER_CASE_WITH_UNDERSCORES:Lcom/google/gson/FieldNamingPolicy; │ │ - .line 112 │ + .line 113 │ new-instance v0, Lcom/google/gson/FieldNamingPolicy$5; │ │ const-string v1, "LOWER_CASE_WITH_DASHES" │ │ invoke-direct {v0, v1, v6}, Lcom/google/gson/FieldNamingPolicy$5;->(Ljava/lang/String;I)V │ │ sput-object v0, Lcom/google/gson/FieldNamingPolicy;->LOWER_CASE_WITH_DASHES:Lcom/google/gson/FieldNamingPolicy; │ │ - .line 30 │ + .line 31 │ const/4 v0, 0x5 │ │ new-array v0, v0, [Lcom/google/gson/FieldNamingPolicy; │ │ sget-object v1, Lcom/google/gson/FieldNamingPolicy;->IDENTITY:Lcom/google/gson/FieldNamingPolicy; │ │ aput-object v1, v0, v2 │ @@ -127,260 +127,235 @@ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "()V" │ } │ .end annotation │ │ .prologue │ - .line 30 │ + .line 31 │ invoke-direct {p0, p1, p2}, Ljava/lang/Enum;->(Ljava/lang/String;I)V │ │ return-void │ .end method │ │ .method synthetic constructor (Ljava/lang/String;ILcom/google/gson/FieldNamingPolicy$1;)V │ .locals 0 │ .param p1, "x0" # Ljava/lang/String; │ .param p2, "x1" # I │ .param p3, "x2" # Lcom/google/gson/FieldNamingPolicy$1; │ │ .prologue │ - .line 30 │ + .line 31 │ invoke-direct {p0, p1, p2}, Lcom/google/gson/FieldNamingPolicy;->(Ljava/lang/String;I)V │ │ return-void │ .end method │ │ -.method static synthetic access$100(Ljava/lang/String;)Ljava/lang/String; │ - .locals 1 │ - .param p0, "x0" # Ljava/lang/String; │ - │ - .prologue │ - .line 30 │ - invoke-static {p0}, Lcom/google/gson/FieldNamingPolicy;->upperCaseFirstLetter(Ljava/lang/String;)Ljava/lang/String; │ - │ - move-result-object v0 │ - │ - return-object v0 │ -.end method │ - │ -.method static synthetic access$200(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ - .locals 1 │ - .param p0, "x0" # Ljava/lang/String; │ - .param p1, "x1" # Ljava/lang/String; │ - │ - .prologue │ - .line 30 │ - invoke-static {p0, p1}, Lcom/google/gson/FieldNamingPolicy;->separateCamelCase(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ - │ - move-result-object v0 │ - │ - return-object v0 │ -.end method │ - │ .method private static modifyString(CLjava/lang/String;I)Ljava/lang/String; │ .locals 2 │ .param p0, "firstCharacter" # C │ .param p1, "srcString" # Ljava/lang/String; │ .param p2, "indexOfSubstring" # I │ │ .prologue │ - .line 164 │ + .line 165 │ invoke-virtual {p1}, Ljava/lang/String;->length()I │ │ move-result v0 │ │ if-ge p2, v0, :cond_0 │ │ new-instance v0, Ljava/lang/StringBuilder; │ │ invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ │ invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ move-result-object v0 │ │ + .line 166 │ invoke-virtual {p1, p2}, Ljava/lang/String;->substring(I)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v0 │ │ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ + .line 167 │ :goto_0 │ return-object v0 │ │ :cond_0 │ invoke-static {p0}, Ljava/lang/String;->valueOf(C)Ljava/lang/String; │ │ move-result-object v0 │ │ goto :goto_0 │ .end method │ │ -.method private static separateCamelCase(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ +.method static separateCamelCase(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ .locals 4 │ .param p0, "name" # Ljava/lang/String; │ .param p1, "separator" # Ljava/lang/String; │ │ .prologue │ - .line 123 │ + .line 124 │ new-instance v2, Ljava/lang/StringBuilder; │ │ invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ │ - .line 124 │ + .line 125 │ .local v2, "translation":Ljava/lang/StringBuilder; │ const/4 v1, 0x0 │ │ .local v1, "i":I │ :goto_0 │ invoke-virtual {p0}, Ljava/lang/String;->length()I │ │ move-result v3 │ │ if-ge v1, v3, :cond_1 │ │ - .line 125 │ + .line 126 │ invoke-virtual {p0, v1}, Ljava/lang/String;->charAt(I)C │ │ move-result v0 │ │ - .line 126 │ + .line 127 │ .local v0, "character":C │ invoke-static {v0}, Ljava/lang/Character;->isUpperCase(C)Z │ │ move-result v3 │ │ if-eqz v3, :cond_0 │ │ invoke-virtual {v2}, Ljava/lang/StringBuilder;->length()I │ │ move-result v3 │ │ if-eqz v3, :cond_0 │ │ - .line 127 │ + .line 128 │ invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - .line 129 │ + .line 130 │ :cond_0 │ invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 124 │ + .line 125 │ add-int/lit8 v1, v1, 0x1 │ │ goto :goto_0 │ │ - .line 131 │ + .line 132 │ .end local v0 # "character":C │ :cond_1 │ invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v3 │ │ return-object v3 │ .end method │ │ -.method private static upperCaseFirstLetter(Ljava/lang/String;)Ljava/lang/String; │ +.method static upperCaseFirstLetter(Ljava/lang/String;)Ljava/lang/String; │ .locals 5 │ .param p0, "name" # Ljava/lang/String; │ │ .prologue │ - .line 138 │ + .line 139 │ new-instance v0, Ljava/lang/StringBuilder; │ │ invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ │ - .line 139 │ + .line 140 │ .local v0, "fieldNameBuilder":Ljava/lang/StringBuilder; │ const/4 v2, 0x0 │ │ - .line 140 │ + .line 141 │ .local v2, "index":I │ invoke-virtual {p0, v2}, Ljava/lang/String;->charAt(I)C │ │ move-result v1 │ │ - .line 142 │ + .line 143 │ .local v1, "firstCharacter":C │ :goto_0 │ invoke-virtual {p0}, Ljava/lang/String;->length()I │ │ move-result v4 │ │ add-int/lit8 v4, v4, -0x1 │ │ if-ge v2, v4, :cond_0 │ │ - .line 143 │ + .line 144 │ invoke-static {v1}, Ljava/lang/Character;->isLetter(C)Z │ │ move-result v4 │ │ if-eqz v4, :cond_2 │ │ - .line 151 │ + .line 152 │ :cond_0 │ invoke-virtual {p0}, Ljava/lang/String;->length()I │ │ move-result v4 │ │ if-ne v2, v4, :cond_3 │ │ - .line 152 │ + .line 153 │ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object p0 │ │ - .line 159 │ + .line 160 │ .end local p0 # "name":Ljava/lang/String; │ :cond_1 │ :goto_1 │ return-object p0 │ │ - .line 147 │ + .line 148 │ .restart local p0 # "name":Ljava/lang/String; │ :cond_2 │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 148 │ + .line 149 │ add-int/lit8 v2, v2, 0x1 │ │ invoke-virtual {p0, v2}, Ljava/lang/String;->charAt(I)C │ │ move-result v1 │ │ goto :goto_0 │ │ - .line 155 │ + .line 156 │ :cond_3 │ invoke-static {v1}, Ljava/lang/Character;->isUpperCase(C)Z │ │ move-result v4 │ │ if-nez v4, :cond_1 │ │ - .line 156 │ + .line 157 │ invoke-static {v1}, Ljava/lang/Character;->toUpperCase(C)C │ │ move-result v4 │ │ add-int/lit8 v2, v2, 0x1 │ │ invoke-static {v4, p0, v2}, Lcom/google/gson/FieldNamingPolicy;->modifyString(CLjava/lang/String;I)Ljava/lang/String; │ │ move-result-object v3 │ │ - .line 157 │ + .line 158 │ .local v3, "modifiedTarget":Ljava/lang/String; │ invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v4 │ │ invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ @@ -390,15 +365,15 @@ │ .end method │ │ .method public static valueOf(Ljava/lang/String;)Lcom/google/gson/FieldNamingPolicy; │ .locals 1 │ .param p0, "name" # Ljava/lang/String; │ │ .prologue │ - .line 30 │ + .line 31 │ const-class v0, Lcom/google/gson/FieldNamingPolicy; │ │ invoke-static {v0, p0}, Ljava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum; │ │ move-result-object v0 │ │ check-cast v0, Lcom/google/gson/FieldNamingPolicy; │ @@ -406,15 +381,15 @@ │ return-object v0 │ .end method │ │ .method public static values()[Lcom/google/gson/FieldNamingPolicy; │ .locals 1 │ │ .prologue │ - .line 30 │ + .line 31 │ sget-object v0, Lcom/google/gson/FieldNamingPolicy;->$VALUES:[Lcom/google/gson/FieldNamingPolicy; │ │ invoke-virtual {v0}, [Lcom/google/gson/FieldNamingPolicy;->clone()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, [Lcom/google/gson/FieldNamingPolicy; ├── smali/com/google/gson/Gson$1.smali │ @@ -1,69 +1,35 @@ │ -.class Lcom/google/gson/Gson$1; │ -.super Ljava/lang/Object; │ +.class final Lcom/google/gson/Gson$1; │ +.super Lcom/google/gson/reflect/TypeToken; │ .source "Gson.java" │ │ -# interfaces │ -.implements Lcom/google/gson/JsonDeserializationContext; │ - │ │ # annotations │ .annotation system Ldalvik/annotation/EnclosingClass; │ value = Lcom/google/gson/Gson; │ .end annotation │ │ .annotation system Ldalvik/annotation/InnerClass; │ - accessFlags = 0x0 │ + accessFlags = 0x8 │ name = null │ .end annotation │ │ - │ -# instance fields │ -.field final synthetic this$0:Lcom/google/gson/Gson; │ +.annotation system Ldalvik/annotation/Signature; │ + value = { │ + "Lcom/google/gson/reflect/TypeToken", │ + "<", │ + "Ljava/lang/Object;", │ + ">;" │ + } │ +.end annotation │ │ │ # direct methods │ -.method constructor (Lcom/google/gson/Gson;)V │ +.method constructor ()V │ .locals 0 │ │ .prologue │ - .line 125 │ - iput-object p1, p0, Lcom/google/gson/Gson$1;->this$0:Lcom/google/gson/Gson; │ - │ - invoke-direct {p0}, Ljava/lang/Object;->()V │ + .line 112 │ + invoke-direct {p0}, Lcom/google/gson/reflect/TypeToken;->()V │ │ return-void │ .end method │ - │ - │ -# virtual methods │ -.method public deserialize(Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;)Ljava/lang/Object; │ - .locals 1 │ - .param p1, "json" # Lcom/google/gson/JsonElement; │ - .param p2, "typeOfT" # Ljava/lang/reflect/Type; │ - .annotation system Ldalvik/annotation/Signature; │ - value = { │ - "(", │ - "Lcom/google/gson/JsonElement;", │ - "Ljava/lang/reflect/Type;", │ - ")TT;" │ - } │ - .end annotation │ - │ - .annotation system Ldalvik/annotation/Throws; │ - value = { │ - Lcom/google/gson/JsonParseException; │ - } │ - .end annotation │ - │ - .prologue │ - .line 128 │ - iget-object v0, p0, Lcom/google/gson/Gson$1;->this$0:Lcom/google/gson/Gson; │ - │ - invoke-virtual {v0, p1, p2}, Lcom/google/gson/Gson;->fromJson(Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;)Ljava/lang/Object; │ - │ - move-result-object v0 │ - │ - return-object v0 │ -.end method ├── smali/com/google/gson/Gson$2.smali │ @@ -1,68 +1,156 @@ │ .class Lcom/google/gson/Gson$2; │ -.super Ljava/lang/Object; │ +.super Lcom/google/gson/TypeAdapter; │ .source "Gson.java" │ │ -# interfaces │ -.implements Lcom/google/gson/JsonSerializationContext; │ - │ │ # annotations │ -.annotation system Ldalvik/annotation/EnclosingClass; │ - value = Lcom/google/gson/Gson; │ +.annotation system Ldalvik/annotation/EnclosingMethod; │ + value = Lcom/google/gson/Gson;->doubleAdapter(Z)Lcom/google/gson/TypeAdapter; │ .end annotation │ │ .annotation system Ldalvik/annotation/InnerClass; │ accessFlags = 0x0 │ name = null │ .end annotation │ │ +.annotation system Ldalvik/annotation/Signature; │ + value = { │ + "Lcom/google/gson/TypeAdapter", │ + "<", │ + "Ljava/lang/Number;", │ + ">;" │ + } │ +.end annotation │ + │ │ # instance fields │ .field final synthetic this$0:Lcom/google/gson/Gson; │ │ │ # direct methods │ .method constructor (Lcom/google/gson/Gson;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/google/gson/Gson; │ │ .prologue │ - .line 132 │ + .line 278 │ iput-object p1, p0, Lcom/google/gson/Gson$2;->this$0:Lcom/google/gson/Gson; │ │ - invoke-direct {p0}, Ljava/lang/Object;->()V │ + invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ -.method public serialize(Ljava/lang/Object;)Lcom/google/gson/JsonElement; │ - .locals 1 │ - .param p1, "src" # Ljava/lang/Object; │ +.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Double; │ + .locals 2 │ + .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/io/IOException; │ + } │ + .end annotation │ │ .prologue │ - .line 134 │ - iget-object v0, p0, Lcom/google/gson/Gson$2;->this$0:Lcom/google/gson/Gson; │ - │ - invoke-virtual {v0, p1}, Lcom/google/gson/Gson;->toJsonTree(Ljava/lang/Object;)Lcom/google/gson/JsonElement; │ + .line 280 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v0 │ │ + sget-object v1, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ + │ + if-ne v0, v1, :cond_0 │ + │ + .line 281 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ + │ + .line 282 │ + const/4 v0, 0x0 │ + │ + .line 284 │ + :goto_0 │ return-object v0 │ + │ + :cond_0 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextDouble()D │ + │ + move-result-wide v0 │ + │ + invoke-static {v0, v1}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double; │ + │ + move-result-object v0 │ + │ + goto :goto_0 │ .end method │ │ -.method public serialize(Ljava/lang/Object;Ljava/lang/reflect/Type;)Lcom/google/gson/JsonElement; │ +.method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "src" # Ljava/lang/Object; │ - .param p2, "typeOfSrc" # Ljava/lang/reflect/Type; │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/io/IOException; │ + } │ + .end annotation │ │ .prologue │ - .line 137 │ - iget-object v0, p0, Lcom/google/gson/Gson$2;->this$0:Lcom/google/gson/Gson; │ - │ - invoke-virtual {v0, p1, p2}, Lcom/google/gson/Gson;->toJsonTree(Ljava/lang/Object;Ljava/lang/reflect/Type;)Lcom/google/gson/JsonElement; │ + .line 278 │ + invoke-virtual {p0, p1}, Lcom/google/gson/Gson$2;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Double; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ + │ +.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Number;)V │ + .locals 2 │ + .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ + .param p2, "value" # Ljava/lang/Number; │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/io/IOException; │ + } │ + .end annotation │ + │ + .prologue │ + .line 287 │ + if-nez p2, :cond_0 │ + │ + .line 288 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->nullValue()Lcom/google/gson/stream/JsonWriter; │ + │ + .line 294 │ + :goto_0 │ + return-void │ + │ + .line 291 │ + :cond_0 │ + invoke-virtual {p2}, Ljava/lang/Number;->doubleValue()D │ + │ + move-result-wide v0 │ + │ + .line 292 │ + .local v0, "doubleValue":D │ + invoke-static {v0, v1}, Lcom/google/gson/Gson;->checkValidFloatingPoint(D)V │ + │ + .line 293 │ + invoke-virtual {p1, p2}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/Number;)Lcom/google/gson/stream/JsonWriter; │ + │ + goto :goto_0 │ +.end method │ + │ +.method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ + .locals 0 │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/io/IOException; │ + } │ + .end annotation │ + │ + .prologue │ + .line 278 │ + check-cast p2, Ljava/lang/Number; │ + │ + invoke-virtual {p0, p1, p2}, Lcom/google/gson/Gson$2;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Number;)V │ + │ + return-void │ +.end method ├── smali/com/google/gson/Gson$3.smali │ @@ -1,15 +1,15 @@ │ .class Lcom/google/gson/Gson$3; │ .super Lcom/google/gson/TypeAdapter; │ .source "Gson.java" │ │ │ # annotations │ .annotation system Ldalvik/annotation/EnclosingMethod; │ - value = Lcom/google/gson/Gson;->doubleAdapter(Z)Lcom/google/gson/TypeAdapter; │ + value = Lcom/google/gson/Gson;->floatAdapter(Z)Lcom/google/gson/TypeAdapter; │ .end annotation │ │ .annotation system Ldalvik/annotation/InnerClass; │ accessFlags = 0x0 │ name = null │ .end annotation │ │ @@ -26,137 +26,135 @@ │ # instance fields │ .field final synthetic this$0:Lcom/google/gson/Gson; │ │ │ # direct methods │ .method constructor (Lcom/google/gson/Gson;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/google/gson/Gson; │ │ .prologue │ - .line 253 │ + .line 302 │ iput-object p1, p0, Lcom/google/gson/Gson$3;->this$0:Lcom/google/gson/Gson; │ │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ -.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Double; │ +.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Float; │ .locals 2 │ .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 255 │ + .line 304 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v0 │ │ sget-object v1, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ if-ne v0, v1, :cond_0 │ │ - .line 256 │ + .line 305 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ │ - .line 257 │ + .line 306 │ const/4 v0, 0x0 │ │ - .line 259 │ + .line 308 │ :goto_0 │ return-object v0 │ │ :cond_0 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextDouble()D │ │ move-result-wide v0 │ │ - invoke-static {v0, v1}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double; │ + double-to-float v0, v0 │ + │ + invoke-static {v0}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float; │ │ move-result-object v0 │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 253 │ - invoke-virtual {p0, p1}, Lcom/google/gson/Gson$3;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Double; │ + .line 302 │ + invoke-virtual {p0, p1}, Lcom/google/gson/Gson$3;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Float; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Number;)V │ - .locals 3 │ + .locals 4 │ .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ .param p2, "value" # Ljava/lang/Number; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 262 │ + .line 311 │ if-nez p2, :cond_0 │ │ - .line 263 │ + .line 312 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->nullValue()Lcom/google/gson/stream/JsonWriter; │ │ - .line 269 │ + .line 318 │ :goto_0 │ return-void │ │ - .line 266 │ + .line 315 │ :cond_0 │ - invoke-virtual {p2}, Ljava/lang/Number;->doubleValue()D │ + invoke-virtual {p2}, Ljava/lang/Number;->floatValue()F │ │ - move-result-wide v0 │ + move-result v0 │ │ - .line 267 │ - .local v0, "doubleValue":D │ - iget-object v2, p0, Lcom/google/gson/Gson$3;->this$0:Lcom/google/gson/Gson; │ + .line 316 │ + .local v0, "floatValue":F │ + float-to-double v2, v0 │ │ - # invokes: Lcom/google/gson/Gson;->checkValidFloatingPoint(D)V │ - invoke-static {v2, v0, v1}, Lcom/google/gson/Gson;->access$000(Lcom/google/gson/Gson;D)V │ + invoke-static {v2, v3}, Lcom/google/gson/Gson;->checkValidFloatingPoint(D)V │ │ - .line 268 │ + .line 317 │ invoke-virtual {p1, p2}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/Number;)Lcom/google/gson/stream/JsonWriter; │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 253 │ + .line 302 │ check-cast p2, Ljava/lang/Number; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ invoke-virtual {p0, p1, p2}, Lcom/google/gson/Gson$3;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Number;)V │ │ return-void │ .end method ├── smali/com/google/gson/Gson$5.smali │ @@ -1,154 +1,137 @@ │ -.class Lcom/google/gson/Gson$5; │ +.class final Lcom/google/gson/Gson$5; │ .super Lcom/google/gson/TypeAdapter; │ .source "Gson.java" │ │ │ # annotations │ .annotation system Ldalvik/annotation/EnclosingMethod; │ - value = Lcom/google/gson/Gson;->longAdapter(Lcom/google/gson/LongSerializationPolicy;)Lcom/google/gson/TypeAdapter; │ + value = Lcom/google/gson/Gson;->atomicLongAdapter(Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapter; │ .end annotation │ │ .annotation system Ldalvik/annotation/InnerClass; │ - accessFlags = 0x0 │ + accessFlags = 0x8 │ name = null │ .end annotation │ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Lcom/google/gson/TypeAdapter", │ "<", │ - "Ljava/lang/Number;", │ + "Ljava/util/concurrent/atomic/AtomicLong;", │ ">;" │ } │ .end annotation │ │ │ # instance fields │ -.field final synthetic this$0:Lcom/google/gson/Gson; │ +.field final synthetic val$longAdapter:Lcom/google/gson/TypeAdapter; │ │ │ # direct methods │ -.method constructor (Lcom/google/gson/Gson;)V │ +.method constructor (Lcom/google/gson/TypeAdapter;)V │ .locals 0 │ │ .prologue │ - .line 309 │ - iput-object p1, p0, Lcom/google/gson/Gson$5;->this$0:Lcom/google/gson/Gson; │ + .line 353 │ + iput-object p1, p0, Lcom/google/gson/Gson$5;->val$longAdapter:Lcom/google/gson/TypeAdapter; │ │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ -.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Number; │ - .locals 2 │ - .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ +.method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ + .locals 1 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 311 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ + .line 353 │ + invoke-virtual {p0, p1}, Lcom/google/gson/Gson$5;->read(Lcom/google/gson/stream/JsonReader;)Ljava/util/concurrent/atomic/AtomicLong; │ │ move-result-object v0 │ │ - sget-object v1, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ - │ - if-ne v0, v1, :cond_0 │ - │ - .line 312 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ - │ - .line 313 │ - const/4 v0, 0x0 │ - │ - .line 315 │ - :goto_0 │ return-object v0 │ - │ - :cond_0 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextLong()J │ - │ - move-result-wide v0 │ - │ - invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ - │ - move-result-object v0 │ - │ - goto :goto_0 │ .end method │ │ -.method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ - .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ +.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/util/concurrent/atomic/AtomicLong; │ + .locals 4 │ + .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 309 │ - invoke-virtual {p0, p1}, Lcom/google/gson/Gson$5;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Number; │ + .line 358 │ + iget-object v1, p0, Lcom/google/gson/Gson$5;->val$longAdapter:Lcom/google/gson/TypeAdapter; │ + │ + invoke-virtual {v1, p1}, Lcom/google/gson/TypeAdapter;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ │ move-result-object v0 │ │ - return-object v0 │ + check-cast v0, Ljava/lang/Number; │ + │ + .line 359 │ + .local v0, "value":Ljava/lang/Number; │ + new-instance v1, Ljava/util/concurrent/atomic/AtomicLong; │ + │ + invoke-virtual {v0}, Ljava/lang/Number;->longValue()J │ + │ + move-result-wide v2 │ + │ + invoke-direct {v1, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;->(J)V │ + │ + return-object v1 │ .end method │ │ -.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Number;)V │ - .locals 1 │ - .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "value" # Ljava/lang/Number; │ +.method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ + .locals 0 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 318 │ - if-nez p2, :cond_0 │ + .line 353 │ + check-cast p2, Ljava/util/concurrent/atomic/AtomicLong; │ │ - .line 319 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->nullValue()Lcom/google/gson/stream/JsonWriter; │ + invoke-virtual {p0, p1, p2}, Lcom/google/gson/Gson$5;->write(Lcom/google/gson/stream/JsonWriter;Ljava/util/concurrent/atomic/AtomicLong;)V │ │ - .line 323 │ - :goto_0 │ return-void │ - │ - .line 322 │ - :cond_0 │ - invoke-virtual {p2}, Ljava/lang/Object;->toString()Ljava/lang/String; │ - │ - move-result-object v0 │ - │ - invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ - │ - goto :goto_0 │ .end method │ │ -.method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ - .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ +.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/util/concurrent/atomic/AtomicLong;)V │ + .locals 4 │ + .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ + .param p2, "value" # Ljava/util/concurrent/atomic/AtomicLong; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 309 │ - check-cast p2, Ljava/lang/Number; │ + .line 355 │ + iget-object v0, p0, Lcom/google/gson/Gson$5;->val$longAdapter:Lcom/google/gson/TypeAdapter; │ + │ + invoke-virtual {p2}, Ljava/util/concurrent/atomic/AtomicLong;->get()J │ + │ + move-result-wide v2 │ + │ + invoke-static {v2, v3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ + │ + move-result-object v1 │ │ - .end local p2 # "x1":Ljava/lang/Object; │ - invoke-virtual {p0, p1, p2}, Lcom/google/gson/Gson$5;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Number;)V │ + invoke-virtual {v0, p1, v1}, Lcom/google/gson/TypeAdapter;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ │ + .line 356 │ return-void │ .end method ├── smali/com/google/gson/Gson$FutureTypeAdapter.smali │ @@ -36,15 +36,15 @@ │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 878 │ + .line 955 │ .local p0, "this":Lcom/google/gson/Gson$FutureTypeAdapter;, "Lcom/google/gson/Gson$FutureTypeAdapter;" │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ @@ -63,28 +63,28 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 889 │ + .line 966 │ .local p0, "this":Lcom/google/gson/Gson$FutureTypeAdapter;, "Lcom/google/gson/Gson$FutureTypeAdapter;" │ iget-object v0, p0, Lcom/google/gson/Gson$FutureTypeAdapter;->delegate:Lcom/google/gson/TypeAdapter; │ │ if-nez v0, :cond_0 │ │ - .line 890 │ + .line 967 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ invoke-direct {v0}, Ljava/lang/IllegalStateException;->()V │ │ throw v0 │ │ - .line 892 │ + .line 969 │ :cond_0 │ iget-object v0, p0, Lcom/google/gson/Gson$FutureTypeAdapter;->delegate:Lcom/google/gson/TypeAdapter; │ │ invoke-virtual {v0, p1}, Lcom/google/gson/TypeAdapter;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ │ move-result-object v0 │ │ @@ -98,33 +98,33 @@ │ "(", │ "Lcom/google/gson/TypeAdapter", │ ";)V" │ } │ .end annotation │ │ .prologue │ - .line 882 │ + .line 959 │ .local p0, "this":Lcom/google/gson/Gson$FutureTypeAdapter;, "Lcom/google/gson/Gson$FutureTypeAdapter;" │ .local p1, "typeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ iget-object v0, p0, Lcom/google/gson/Gson$FutureTypeAdapter;->delegate:Lcom/google/gson/TypeAdapter; │ │ if-eqz v0, :cond_0 │ │ - .line 883 │ + .line 960 │ new-instance v0, Ljava/lang/AssertionError; │ │ invoke-direct {v0}, Ljava/lang/AssertionError;->()V │ │ throw v0 │ │ - .line 885 │ + .line 962 │ :cond_0 │ iput-object p1, p0, Lcom/google/gson/Gson$FutureTypeAdapter;->delegate:Lcom/google/gson/TypeAdapter; │ │ - .line 886 │ + .line 963 │ return-void │ .end method │ │ .method public write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 1 │ .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ .annotation system Ldalvik/annotation/Signature; │ @@ -138,30 +138,30 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 896 │ + .line 973 │ .local p0, "this":Lcom/google/gson/Gson$FutureTypeAdapter;, "Lcom/google/gson/Gson$FutureTypeAdapter;" │ .local p2, "value":Ljava/lang/Object;, "TT;" │ iget-object v0, p0, Lcom/google/gson/Gson$FutureTypeAdapter;->delegate:Lcom/google/gson/TypeAdapter; │ │ if-nez v0, :cond_0 │ │ - .line 897 │ + .line 974 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ invoke-direct {v0}, Ljava/lang/IllegalStateException;->()V │ │ throw v0 │ │ - .line 899 │ + .line 976 │ :cond_0 │ iget-object v0, p0, Lcom/google/gson/Gson$FutureTypeAdapter;->delegate:Lcom/google/gson/TypeAdapter; │ │ invoke-virtual {v0, p1, p2}, Lcom/google/gson/TypeAdapter;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ │ - .line 900 │ + .line 977 │ return-void │ .end method ├── smali/com/google/gson/Gson.smali │ @@ -8,18 +8,39 @@ │ value = { │ Lcom/google/gson/Gson$FutureTypeAdapter; │ } │ .end annotation │ │ │ # static fields │ +.field static final DEFAULT_COMPLEX_MAP_KEYS:Z = false │ + │ +.field static final DEFAULT_ESCAPE_HTML:Z = true │ + │ .field static final DEFAULT_JSON_NON_EXECUTABLE:Z = false │ │ +.field static final DEFAULT_LENIENT:Z = false │ + │ +.field static final DEFAULT_PRETTY_PRINT:Z = false │ + │ +.field static final DEFAULT_SERIALIZE_NULLS:Z = false │ + │ +.field static final DEFAULT_SPECIALIZE_FLOAT_VALUES:Z = false │ + │ .field private static final JSON_NON_EXECUTABLE_PREFIX:Ljava/lang/String; = ")]}\'\n" │ │ +.field private static final NULL_KEY_SURROGATE:Lcom/google/gson/reflect/TypeToken; │ + .annotation system Ldalvik/annotation/Signature; │ + value = { │ + "Lcom/google/gson/reflect/TypeToken", │ + "<*>;" │ + } │ + .end annotation │ +.end field │ + │ │ # instance fields │ .field private final calls:Ljava/lang/ThreadLocal; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Ljava/lang/ThreadLocal", │ "<", │ @@ -31,34 +52,38 @@ │ "<*>;>;>;" │ } │ .end annotation │ .end field │ │ .field private final constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor; │ │ -.field final deserializationContext:Lcom/google/gson/JsonDeserializationContext; │ +.field private final excluder:Lcom/google/gson/internal/Excluder; │ │ .field private final factories:Ljava/util/List; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Ljava/util/List", │ "<", │ "Lcom/google/gson/TypeAdapterFactory;", │ ">;" │ } │ .end annotation │ .end field │ │ +.field private final fieldNamingStrategy:Lcom/google/gson/FieldNamingStrategy; │ + │ .field private final generateNonExecutableJson:Z │ │ .field private final htmlSafe:Z │ │ -.field private final prettyPrinting:Z │ +.field private final jsonAdapterFactory:Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory; │ + │ +.field private final lenient:Z │ │ -.field final serializationContext:Lcom/google/gson/JsonSerializationContext; │ +.field private final prettyPrinting:Z │ │ .field private final serializeNulls:Z │ │ .field private final typeTokenCache:Ljava/util/Map; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Ljava/util/Map", │ @@ -69,490 +94,616 @@ │ "<*>;>;" │ } │ .end annotation │ .end field │ │ │ # direct methods │ +.method static constructor ()V │ + .locals 1 │ + │ + .prologue │ + .line 112 │ + new-instance v0, Lcom/google/gson/Gson$1; │ + │ + invoke-direct {v0}, Lcom/google/gson/Gson$1;->()V │ + │ + sput-object v0, Lcom/google/gson/Gson;->NULL_KEY_SURROGATE:Lcom/google/gson/reflect/TypeToken; │ + │ + return-void │ +.end method │ + │ .method public constructor ()V │ - .locals 12 │ + .locals 13 │ │ .prologue │ const/4 v4, 0x0 │ │ - .line 176 │ + .line 174 │ sget-object v1, Lcom/google/gson/internal/Excluder;->DEFAULT:Lcom/google/gson/internal/Excluder; │ │ sget-object v2, Lcom/google/gson/FieldNamingPolicy;->IDENTITY:Lcom/google/gson/FieldNamingPolicy; │ │ + .line 175 │ invoke-static {}, Ljava/util/Collections;->emptyMap()Ljava/util/Map; │ │ move-result-object v3 │ │ const/4 v7, 0x1 │ │ - sget-object v10, Lcom/google/gson/LongSerializationPolicy;->DEFAULT:Lcom/google/gson/LongSerializationPolicy; │ + sget-object v11, Lcom/google/gson/LongSerializationPolicy;->DEFAULT:Lcom/google/gson/LongSerializationPolicy; │ │ + .line 178 │ invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List; │ │ - move-result-object v11 │ + move-result-object v12 │ │ move-object v0, p0 │ │ move v5, v4 │ │ move v6, v4 │ │ move v8, v4 │ │ move v9, v4 │ │ - invoke-direct/range {v0 .. v11}, Lcom/google/gson/Gson;->(Lcom/google/gson/internal/Excluder;Lcom/google/gson/FieldNamingStrategy;Ljava/util/Map;ZZZZZZLcom/google/gson/LongSerializationPolicy;Ljava/util/List;)V │ + move v10, v4 │ + │ + .line 174 │ + invoke-direct/range {v0 .. v12}, Lcom/google/gson/Gson;->(Lcom/google/gson/internal/Excluder;Lcom/google/gson/FieldNamingStrategy;Ljava/util/Map;ZZZZZZZLcom/google/gson/LongSerializationPolicy;Ljava/util/List;)V │ │ - .line 180 │ + .line 179 │ return-void │ .end method │ │ -.method constructor (Lcom/google/gson/internal/Excluder;Lcom/google/gson/FieldNamingStrategy;Ljava/util/Map;ZZZZZZLcom/google/gson/LongSerializationPolicy;Ljava/util/List;)V │ - .locals 4 │ +.method constructor (Lcom/google/gson/internal/Excluder;Lcom/google/gson/FieldNamingStrategy;Ljava/util/Map;ZZZZZZZLcom/google/gson/LongSerializationPolicy;Ljava/util/List;)V │ + .locals 6 │ .param p1, "excluder" # Lcom/google/gson/internal/Excluder; │ - .param p2, "fieldNamingPolicy" # Lcom/google/gson/FieldNamingStrategy; │ + .param p2, "fieldNamingStrategy" # Lcom/google/gson/FieldNamingStrategy; │ .param p4, "serializeNulls" # Z │ .param p5, "complexMapKeySerialization" # Z │ .param p6, "generateNonExecutableGson" # Z │ .param p7, "htmlSafe" # Z │ .param p8, "prettyPrinting" # Z │ - .param p9, "serializeSpecialFloatingPointValues" # Z │ - .param p10, "longSerializationPolicy" # Lcom/google/gson/LongSerializationPolicy; │ + .param p9, "lenient" # Z │ + .param p10, "serializeSpecialFloatingPointValues" # Z │ + .param p11, "longSerializationPolicy" # Lcom/google/gson/LongSerializationPolicy; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Lcom/google/gson/internal/Excluder;", │ "Lcom/google/gson/FieldNamingStrategy;", │ "Ljava/util/Map", │ "<", │ "Ljava/lang/reflect/Type;", │ "Lcom/google/gson/InstanceCreator", │ - "<*>;>;ZZZZZZ", │ + "<*>;>;ZZZZZZZ", │ "Lcom/google/gson/LongSerializationPolicy;", │ "Ljava/util/List", │ "<", │ "Lcom/google/gson/TypeAdapterFactory;", │ ">;)V" │ } │ .end annotation │ │ .prologue │ - .line 187 │ + .line 186 │ .local p3, "instanceCreators":Ljava/util/Map;, "Ljava/util/Map;>;" │ - .local p11, "typeAdapterFactories":Ljava/util/List;, "Ljava/util/List;" │ + .local p12, "typeAdapterFactories":Ljava/util/List;, "Ljava/util/List;" │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 111 │ - new-instance v1, Ljava/lang/ThreadLocal; │ - │ - invoke-direct {v1}, Ljava/lang/ThreadLocal;->()V │ - │ - iput-object v1, p0, Lcom/google/gson/Gson;->calls:Ljava/lang/ThreadLocal; │ - │ - .line 114 │ - new-instance v1, Ljava/util/HashMap; │ - │ - invoke-direct {v1}, Ljava/util/HashMap;->()V │ + .line 122 │ + new-instance v3, Ljava/lang/ThreadLocal; │ │ - invoke-static {v1}, Ljava/util/Collections;->synchronizedMap(Ljava/util/Map;)Ljava/util/Map; │ + invoke-direct {v3}, Ljava/lang/ThreadLocal;->()V │ │ - move-result-object v1 │ - │ - iput-object v1, p0, Lcom/google/gson/Gson;->typeTokenCache:Ljava/util/Map; │ + iput-object v3, p0, Lcom/google/gson/Gson;->calls:Ljava/lang/ThreadLocal; │ │ .line 125 │ - new-instance v1, Lcom/google/gson/Gson$1; │ + new-instance v3, Ljava/util/concurrent/ConcurrentHashMap; │ │ - invoke-direct {v1, p0}, Lcom/google/gson/Gson$1;->(Lcom/google/gson/Gson;)V │ + invoke-direct {v3}, Ljava/util/concurrent/ConcurrentHashMap;->()V │ │ - iput-object v1, p0, Lcom/google/gson/Gson;->deserializationContext:Lcom/google/gson/JsonDeserializationContext; │ + iput-object v3, p0, Lcom/google/gson/Gson;->typeTokenCache:Ljava/util/Map; │ │ - .line 132 │ - new-instance v1, Lcom/google/gson/Gson$2; │ + .line 187 │ + new-instance v3, Lcom/google/gson/internal/ConstructorConstructor; │ │ - invoke-direct {v1, p0}, Lcom/google/gson/Gson$2;->(Lcom/google/gson/Gson;)V │ + invoke-direct {v3, p3}, Lcom/google/gson/internal/ConstructorConstructor;->(Ljava/util/Map;)V │ │ - iput-object v1, p0, Lcom/google/gson/Gson;->serializationContext:Lcom/google/gson/JsonSerializationContext; │ + iput-object v3, p0, Lcom/google/gson/Gson;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor; │ │ .line 188 │ - new-instance v1, Lcom/google/gson/internal/ConstructorConstructor; │ - │ - invoke-direct {v1, p3}, Lcom/google/gson/internal/ConstructorConstructor;->(Ljava/util/Map;)V │ - │ - iput-object v1, p0, Lcom/google/gson/Gson;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor; │ + iput-object p1, p0, Lcom/google/gson/Gson;->excluder:Lcom/google/gson/internal/Excluder; │ │ .line 189 │ - iput-boolean p4, p0, Lcom/google/gson/Gson;->serializeNulls:Z │ + iput-object p2, p0, Lcom/google/gson/Gson;->fieldNamingStrategy:Lcom/google/gson/FieldNamingStrategy; │ │ .line 190 │ - iput-boolean p6, p0, Lcom/google/gson/Gson;->generateNonExecutableJson:Z │ + iput-boolean p4, p0, Lcom/google/gson/Gson;->serializeNulls:Z │ │ .line 191 │ - iput-boolean p7, p0, Lcom/google/gson/Gson;->htmlSafe:Z │ + iput-boolean p6, p0, Lcom/google/gson/Gson;->generateNonExecutableJson:Z │ │ .line 192 │ + iput-boolean p7, p0, Lcom/google/gson/Gson;->htmlSafe:Z │ + │ + .line 193 │ iput-boolean p8, p0, Lcom/google/gson/Gson;->prettyPrinting:Z │ │ .line 194 │ - new-instance v0, Ljava/util/ArrayList; │ - │ - invoke-direct {v0}, Ljava/util/ArrayList;->()V │ - │ - .line 197 │ - .local v0, "factories":Ljava/util/List;, "Ljava/util/List;" │ - sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->JSON_ELEMENT_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + iput-boolean p9, p0, Lcom/google/gson/Gson;->lenient:Z │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + .line 196 │ + new-instance v1, Ljava/util/ArrayList; │ │ - .line 198 │ - sget-object v1, Lcom/google/gson/internal/bind/ObjectTypeAdapter;->FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + invoke-direct {v1}, Ljava/util/ArrayList;->()V │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + .line 199 │ + .local v1, "factories":Ljava/util/List;, "Ljava/util/List;" │ + sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->JSON_ELEMENT_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - .line 201 │ - invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ - .line 204 │ - invoke-interface {v0, p11}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z │ + .line 200 │ + sget-object v3, Lcom/google/gson/internal/bind/ObjectTypeAdapter;->FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - .line 207 │ - sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->STRING_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + .line 203 │ + invoke-interface {v1, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ - .line 208 │ - sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->INTEGER_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + .line 206 │ + move-object/from16 v0, p12 │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v1, v0}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z │ │ .line 209 │ - sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->BOOLEAN_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->STRING_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 210 │ - sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->BYTE_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->INTEGER_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 211 │ - sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->SHORT_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->BOOLEAN_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 212 │ - sget-object v1, Ljava/lang/Long;->TYPE:Ljava/lang/Class; │ + sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->BYTE_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - const-class v2, Ljava/lang/Long; │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ - invoke-direct {p0, p10}, Lcom/google/gson/Gson;->longAdapter(Lcom/google/gson/LongSerializationPolicy;)Lcom/google/gson/TypeAdapter; │ + .line 213 │ + sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->SHORT_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - move-result-object v3 │ - │ - invoke-static {v1, v2, v3}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ - │ - move-result-object v1 │ - │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 214 │ - sget-object v1, Ljava/lang/Double;->TYPE:Ljava/lang/Class; │ + invoke-static/range {p11 .. p11}, Lcom/google/gson/Gson;->longAdapter(Lcom/google/gson/LongSerializationPolicy;)Lcom/google/gson/TypeAdapter; │ │ - const-class v2, Ljava/lang/Double; │ + move-result-object v2 │ │ - invoke-direct {p0, p9}, Lcom/google/gson/Gson;->doubleAdapter(Z)Lcom/google/gson/TypeAdapter; │ + .line 215 │ + .local v2, "longAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ + sget-object v3, Ljava/lang/Long;->TYPE:Ljava/lang/Class; │ │ - move-result-object v3 │ + const-class v4, Ljava/lang/Long; │ │ - invoke-static {v1, v2, v3}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ + invoke-static {v3, v4, v2}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ │ - move-result-object v1 │ + move-result-object v3 │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 216 │ - sget-object v1, Ljava/lang/Float;->TYPE:Ljava/lang/Class; │ + sget-object v3, Ljava/lang/Double;->TYPE:Ljava/lang/Class; │ │ - const-class v2, Ljava/lang/Float; │ + const-class v4, Ljava/lang/Double; │ │ - invoke-direct {p0, p9}, Lcom/google/gson/Gson;->floatAdapter(Z)Lcom/google/gson/TypeAdapter; │ + .line 217 │ + move/from16 v0, p10 │ │ - move-result-object v3 │ + invoke-direct {p0, v0}, Lcom/google/gson/Gson;->doubleAdapter(Z)Lcom/google/gson/TypeAdapter; │ │ - invoke-static {v1, v2, v3}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ + move-result-object v5 │ │ - move-result-object v1 │ + .line 216 │ + invoke-static {v3, v4, v5}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + move-result-object v3 │ + │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 218 │ - sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->NUMBER_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + sget-object v3, Ljava/lang/Float;->TYPE:Ljava/lang/Class; │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + const-class v4, Ljava/lang/Float; │ │ .line 219 │ - sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->CHARACTER_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + move/from16 v0, p10 │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-direct {p0, v0}, Lcom/google/gson/Gson;->floatAdapter(Z)Lcom/google/gson/TypeAdapter; │ + │ + move-result-object v5 │ + │ + .line 218 │ + invoke-static {v3, v4, v5}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ + │ + move-result-object v3 │ + │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 220 │ - sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->STRING_BUILDER_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->NUMBER_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 221 │ - sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->STRING_BUFFER_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->ATOMIC_INTEGER_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 222 │ - const-class v1, Ljava/math/BigDecimal; │ + sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->ATOMIC_BOOLEAN_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - sget-object v2, Lcom/google/gson/internal/bind/TypeAdapters;->BIG_DECIMAL:Lcom/google/gson/TypeAdapter; │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ - invoke-static {v1, v2}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ + .line 223 │ + const-class v3, Ljava/util/concurrent/atomic/AtomicLong; │ │ - move-result-object v1 │ + invoke-static {v2}, Lcom/google/gson/Gson;->atomicLongAdapter(Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapter; │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + move-result-object v4 │ │ - .line 223 │ - const-class v1, Ljava/math/BigInteger; │ + invoke-static {v3, v4}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ │ - sget-object v2, Lcom/google/gson/internal/bind/TypeAdapters;->BIG_INTEGER:Lcom/google/gson/TypeAdapter; │ + move-result-object v3 │ │ - invoke-static {v1, v2}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ - move-result-object v1 │ + .line 224 │ + const-class v3, Ljava/util/concurrent/atomic/AtomicLongArray; │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-static {v2}, Lcom/google/gson/Gson;->atomicLongArrayAdapter(Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapter; │ │ - .line 224 │ - sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->URL_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + move-result-object v4 │ + │ + invoke-static {v3, v4}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ + │ + move-result-object v3 │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 225 │ - sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->URI_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->ATOMIC_INTEGER_ARRAY_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 226 │ - sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->UUID_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->CHARACTER_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 227 │ - sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->LOCALE_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->STRING_BUILDER_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 228 │ - sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->INET_ADDRESS_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->STRING_BUFFER_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 229 │ - sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->BIT_SET_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + const-class v3, Ljava/math/BigDecimal; │ + │ + sget-object v4, Lcom/google/gson/internal/bind/TypeAdapters;->BIG_DECIMAL:Lcom/google/gson/TypeAdapter; │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-static {v3, v4}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ + │ + move-result-object v3 │ + │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 230 │ - sget-object v1, Lcom/google/gson/internal/bind/DateTypeAdapter;->FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + const-class v3, Ljava/math/BigInteger; │ + │ + sget-object v4, Lcom/google/gson/internal/bind/TypeAdapters;->BIG_INTEGER:Lcom/google/gson/TypeAdapter; │ + │ + invoke-static {v3, v4}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + move-result-object v3 │ + │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 231 │ - sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->CALENDAR_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->URL_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 232 │ - sget-object v1, Lcom/google/gson/internal/bind/TimeTypeAdapter;->FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->URI_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 233 │ - sget-object v1, Lcom/google/gson/internal/bind/SqlDateTypeAdapter;->FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->UUID_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 234 │ - sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->TIMESTAMP_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->CURRENCY_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 235 │ - sget-object v1, Lcom/google/gson/internal/bind/ArrayTypeAdapter;->FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->LOCALE_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 236 │ - sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->CLASS_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->INET_ADDRESS_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ - .line 239 │ - new-instance v1, Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory; │ + .line 237 │ + sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->BIT_SET_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - iget-object v2, p0, Lcom/google/gson/Gson;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor; │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ - invoke-direct {v1, v2}, Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory;->(Lcom/google/gson/internal/ConstructorConstructor;)V │ + .line 238 │ + sget-object v3, Lcom/google/gson/internal/bind/DateTypeAdapter;->FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ - .line 240 │ - new-instance v1, Lcom/google/gson/internal/bind/MapTypeAdapterFactory; │ + .line 239 │ + sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->CALENDAR_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - iget-object v2, p0, Lcom/google/gson/Gson;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor; │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ - invoke-direct {v1, v2, p5}, Lcom/google/gson/internal/bind/MapTypeAdapterFactory;->(Lcom/google/gson/internal/ConstructorConstructor;Z)V │ + .line 240 │ + sget-object v3, Lcom/google/gson/internal/bind/TimeTypeAdapter;->FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 241 │ - new-instance v1, Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory; │ - │ - iget-object v2, p0, Lcom/google/gson/Gson;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor; │ + sget-object v3, Lcom/google/gson/internal/bind/SqlDateTypeAdapter;->FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - invoke-direct {v1, v2}, Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory;->(Lcom/google/gson/internal/ConstructorConstructor;)V │ - │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 242 │ - sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->ENUM_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->TIMESTAMP_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 243 │ - new-instance v1, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory; │ + sget-object v3, Lcom/google/gson/internal/bind/ArrayTypeAdapter;->FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - iget-object v2, p0, Lcom/google/gson/Gson;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor; │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ - invoke-direct {v1, v2, p2, p1}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->(Lcom/google/gson/internal/ConstructorConstructor;Lcom/google/gson/FieldNamingStrategy;Lcom/google/gson/internal/Excluder;)V │ + .line 244 │ + sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->CLASS_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ - .line 246 │ - invoke-static {v0}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List; │ + .line 247 │ + new-instance v3, Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory; │ │ - move-result-object v1 │ + iget-object v4, p0, Lcom/google/gson/Gson;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor; │ │ - iput-object v1, p0, Lcom/google/gson/Gson;->factories:Ljava/util/List; │ + invoke-direct {v3, v4}, Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory;->(Lcom/google/gson/internal/ConstructorConstructor;)V │ │ - .line 247 │ - return-void │ -.end method │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ -.method static synthetic access$000(Lcom/google/gson/Gson;D)V │ - .locals 1 │ - .param p0, "x0" # Lcom/google/gson/Gson; │ - .param p1, "x1" # D │ + .line 248 │ + new-instance v3, Lcom/google/gson/internal/bind/MapTypeAdapterFactory; │ │ - .prologue │ - .line 99 │ - invoke-direct {p0, p1, p2}, Lcom/google/gson/Gson;->checkValidFloatingPoint(D)V │ + iget-object v4, p0, Lcom/google/gson/Gson;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor; │ + │ + invoke-direct {v3, v4, p5}, Lcom/google/gson/internal/bind/MapTypeAdapterFactory;->(Lcom/google/gson/internal/ConstructorConstructor;Z)V │ + │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + │ + .line 249 │ + new-instance v3, Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory; │ + │ + iget-object v4, p0, Lcom/google/gson/Gson;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor; │ + │ + invoke-direct {v3, v4}, Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory;->(Lcom/google/gson/internal/ConstructorConstructor;)V │ │ + iput-object v3, p0, Lcom/google/gson/Gson;->jsonAdapterFactory:Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory; │ + │ + .line 250 │ + iget-object v3, p0, Lcom/google/gson/Gson;->jsonAdapterFactory:Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory; │ + │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + │ + .line 251 │ + sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->ENUM_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + │ + .line 252 │ + new-instance v3, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory; │ + │ + iget-object v4, p0, Lcom/google/gson/Gson;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor; │ + │ + iget-object v5, p0, Lcom/google/gson/Gson;->jsonAdapterFactory:Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory; │ + │ + invoke-direct {v3, v4, p2, p1, v5}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->(Lcom/google/gson/internal/ConstructorConstructor;Lcom/google/gson/FieldNamingStrategy;Lcom/google/gson/internal/Excluder;Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory;)V │ + │ + invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + │ + .line 255 │ + invoke-static {v1}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List; │ + │ + move-result-object v3 │ + │ + iput-object v3, p0, Lcom/google/gson/Gson;->factories:Ljava/util/List; │ + │ + .line 256 │ return-void │ .end method │ │ .method private static assertFullConsumption(Ljava/lang/Object;Lcom/google/gson/stream/JsonReader;)V │ .locals 3 │ .param p0, "obj" # Ljava/lang/Object; │ .param p1, "reader" # Lcom/google/gson/stream/JsonReader; │ │ .prologue │ - .line 782 │ + .line 859 │ if-eqz p0, :cond_0 │ │ :try_start_0 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v1 │ │ sget-object v2, Lcom/google/gson/stream/JsonToken;->END_DOCUMENT:Lcom/google/gson/stream/JsonToken; │ │ if-eq v1, v2, :cond_0 │ │ - .line 783 │ + .line 860 │ new-instance v1, Lcom/google/gson/JsonIOException; │ │ const-string v2, "JSON document was not fully consumed." │ │ invoke-direct {v1, v2}, Lcom/google/gson/JsonIOException;->(Ljava/lang/String;)V │ │ throw v1 │ :try_end_0 │ .catch Lcom/google/gson/stream/MalformedJsonException; {:try_start_0 .. :try_end_0} :catch_0 │ .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_1 │ │ - .line 785 │ + .line 862 │ :catch_0 │ move-exception v0 │ │ - .line 786 │ + .line 863 │ .local v0, "e":Lcom/google/gson/stream/MalformedJsonException; │ new-instance v1, Lcom/google/gson/JsonSyntaxException; │ │ invoke-direct {v1, v0}, Lcom/google/gson/JsonSyntaxException;->(Ljava/lang/Throwable;)V │ │ throw v1 │ │ - .line 787 │ + .line 864 │ .end local v0 # "e":Lcom/google/gson/stream/MalformedJsonException; │ :catch_1 │ move-exception v0 │ │ - .line 788 │ + .line 865 │ .local v0, "e":Ljava/io/IOException; │ new-instance v1, Lcom/google/gson/JsonIOException; │ │ invoke-direct {v1, v0}, Lcom/google/gson/JsonIOException;->(Ljava/lang/Throwable;)V │ │ throw v1 │ │ - .line 790 │ + .line 867 │ .end local v0 # "e":Ljava/io/IOException; │ :cond_0 │ return-void │ .end method │ │ -.method private checkValidFloatingPoint(D)V │ - .locals 3 │ - .param p1, "value" # D │ +.method private static atomicLongAdapter(Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapter; │ + .locals 1 │ + .annotation system Ldalvik/annotation/Signature; │ + value = { │ + "(", │ + "Lcom/google/gson/TypeAdapter", │ + "<", │ + "Ljava/lang/Number;", │ + ">;)", │ + "Lcom/google/gson/TypeAdapter", │ + "<", │ + "Ljava/util/concurrent/atomic/AtomicLong;", │ + ">;" │ + } │ + .end annotation │ + │ + .prologue │ + .line 353 │ + .local p0, "longAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ + new-instance v0, Lcom/google/gson/Gson$5; │ + │ + invoke-direct {v0, p0}, Lcom/google/gson/Gson$5;->(Lcom/google/gson/TypeAdapter;)V │ + │ + .line 361 │ + invoke-virtual {v0}, Lcom/google/gson/Gson$5;->nullSafe()Lcom/google/gson/TypeAdapter; │ + │ + move-result-object v0 │ + │ + return-object v0 │ +.end method │ + │ +.method private static atomicLongArrayAdapter(Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapter; │ + .locals 1 │ + .annotation system Ldalvik/annotation/Signature; │ + value = { │ + "(", │ + "Lcom/google/gson/TypeAdapter", │ + "<", │ + "Ljava/lang/Number;", │ + ">;)", │ + "Lcom/google/gson/TypeAdapter", │ + "<", │ + "Ljava/util/concurrent/atomic/AtomicLongArray;", │ + ">;" │ + } │ + .end annotation │ + │ + .prologue │ + .line 365 │ + .local p0, "longAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ + new-instance v0, Lcom/google/gson/Gson$6; │ + │ + invoke-direct {v0, p0}, Lcom/google/gson/Gson$6;->(Lcom/google/gson/TypeAdapter;)V │ + │ + .line 388 │ + invoke-virtual {v0}, Lcom/google/gson/Gson$6;->nullSafe()Lcom/google/gson/TypeAdapter; │ + │ + move-result-object v0 │ + │ + return-object v0 │ +.end method │ + │ +.method static checkValidFloatingPoint(D)V │ + .locals 4 │ + .param p0, "value" # D │ │ .prologue │ - .line 298 │ - invoke-static {p1, p2}, Ljava/lang/Double;->isNaN(D)Z │ + .line 323 │ + invoke-static {p0, p1}, Ljava/lang/Double;->isNaN(D)Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ - invoke-static {p1, p2}, Ljava/lang/Double;->isInfinite(D)Z │ + invoke-static {p0, p1}, Ljava/lang/Double;->isInfinite(D)Z │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ - .line 299 │ + .line 324 │ :cond_0 │ new-instance v0, Ljava/lang/IllegalArgumentException; │ │ new-instance v1, Ljava/lang/StringBuilder; │ │ invoke-direct {v1}, Ljava/lang/StringBuilder;->()V │ │ - invoke-virtual {v1, p1, p2}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder; │ + invoke-virtual {v1, p0, p1}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ const-string v2, " is not a valid double value as per JSON specification. To override this" │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ @@ -568,15 +719,15 @@ │ │ move-result-object v1 │ │ invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ throw v0 │ │ - .line 303 │ + .line 328 │ :cond_1 │ return-void │ .end method │ │ .method private doubleAdapter(Z)Lcom/google/gson/TypeAdapter; │ .locals 1 │ .param p1, "serializeSpecialFloatingPointValues" # Z │ @@ -587,28 +738,28 @@ │ "<", │ "Ljava/lang/Number;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 250 │ + .line 275 │ if-eqz p1, :cond_0 │ │ - .line 251 │ + .line 276 │ sget-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->DOUBLE:Lcom/google/gson/TypeAdapter; │ │ - .line 253 │ + .line 278 │ :goto_0 │ return-object v0 │ │ :cond_0 │ - new-instance v0, Lcom/google/gson/Gson$3; │ + new-instance v0, Lcom/google/gson/Gson$2; │ │ - invoke-direct {v0, p0}, Lcom/google/gson/Gson$3;->(Lcom/google/gson/Gson;)V │ + invoke-direct {v0, p0}, Lcom/google/gson/Gson$2;->(Lcom/google/gson/Gson;)V │ │ goto :goto_0 │ .end method │ │ .method private floatAdapter(Z)Lcom/google/gson/TypeAdapter; │ .locals 1 │ .param p1, "serializeSpecialFloatingPointValues" # Z │ @@ -619,117 +770,90 @@ │ "<", │ "Ljava/lang/Number;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 274 │ + .line 299 │ if-eqz p1, :cond_0 │ │ - .line 275 │ + .line 300 │ sget-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->FLOAT:Lcom/google/gson/TypeAdapter; │ │ - .line 277 │ + .line 302 │ :goto_0 │ return-object v0 │ │ :cond_0 │ - new-instance v0, Lcom/google/gson/Gson$4; │ + new-instance v0, Lcom/google/gson/Gson$3; │ │ - invoke-direct {v0, p0}, Lcom/google/gson/Gson$4;->(Lcom/google/gson/Gson;)V │ + invoke-direct {v0, p0}, Lcom/google/gson/Gson$3;->(Lcom/google/gson/Gson;)V │ │ goto :goto_0 │ .end method │ │ -.method private longAdapter(Lcom/google/gson/LongSerializationPolicy;)Lcom/google/gson/TypeAdapter; │ +.method private static longAdapter(Lcom/google/gson/LongSerializationPolicy;)Lcom/google/gson/TypeAdapter; │ .locals 1 │ - .param p1, "longSerializationPolicy" # Lcom/google/gson/LongSerializationPolicy; │ + .param p0, "longSerializationPolicy" # Lcom/google/gson/LongSerializationPolicy; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Lcom/google/gson/LongSerializationPolicy;", │ ")", │ "Lcom/google/gson/TypeAdapter", │ "<", │ "Ljava/lang/Number;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 306 │ + .line 331 │ sget-object v0, Lcom/google/gson/LongSerializationPolicy;->DEFAULT:Lcom/google/gson/LongSerializationPolicy; │ │ - if-ne p1, v0, :cond_0 │ + if-ne p0, v0, :cond_0 │ │ - .line 307 │ + .line 332 │ sget-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->LONG:Lcom/google/gson/TypeAdapter; │ │ - .line 309 │ + .line 334 │ :goto_0 │ return-object v0 │ │ :cond_0 │ - new-instance v0, Lcom/google/gson/Gson$5; │ + new-instance v0, Lcom/google/gson/Gson$4; │ │ - invoke-direct {v0, p0}, Lcom/google/gson/Gson$5;->(Lcom/google/gson/Gson;)V │ + invoke-direct {v0}, Lcom/google/gson/Gson$4;->()V │ │ goto :goto_0 │ .end method │ │ -.method private newJsonWriter(Ljava/io/Writer;)Lcom/google/gson/stream/JsonWriter; │ - .locals 2 │ - .param p1, "writer" # Ljava/io/Writer; │ - .annotation system Ldalvik/annotation/Throws; │ - value = { │ - Ljava/io/IOException; │ - } │ - .end annotation │ - │ - .prologue │ - .line 645 │ - iget-boolean v1, p0, Lcom/google/gson/Gson;->generateNonExecutableJson:Z │ - │ - if-eqz v1, :cond_0 │ - │ - .line 646 │ - const-string v1, ")]}\'\n" │ │ - invoke-virtual {p1, v1}, Ljava/io/Writer;->write(Ljava/lang/String;)V │ - │ - .line 648 │ - :cond_0 │ - new-instance v0, Lcom/google/gson/stream/JsonWriter; │ - │ - invoke-direct {v0, p1}, Lcom/google/gson/stream/JsonWriter;->(Ljava/io/Writer;)V │ - │ - .line 649 │ - .local v0, "jsonWriter":Lcom/google/gson/stream/JsonWriter; │ - iget-boolean v1, p0, Lcom/google/gson/Gson;->prettyPrinting:Z │ - │ - if-eqz v1, :cond_1 │ +# virtual methods │ +.method public excluder()Lcom/google/gson/internal/Excluder; │ + .locals 1 │ │ - .line 650 │ - const-string v1, " " │ + .prologue │ + .line 259 │ + iget-object v0, p0, Lcom/google/gson/Gson;->excluder:Lcom/google/gson/internal/Excluder; │ │ - invoke-virtual {v0, v1}, Lcom/google/gson/stream/JsonWriter;->setIndent(Ljava/lang/String;)V │ + return-object v0 │ +.end method │ │ - .line 652 │ - :cond_1 │ - iget-boolean v1, p0, Lcom/google/gson/Gson;->serializeNulls:Z │ +.method public fieldNamingStrategy()Lcom/google/gson/FieldNamingStrategy; │ + .locals 1 │ │ - invoke-virtual {v0, v1}, Lcom/google/gson/stream/JsonWriter;->setSerializeNulls(Z)V │ + .prologue │ + .line 263 │ + iget-object v0, p0, Lcom/google/gson/Gson;->fieldNamingStrategy:Lcom/google/gson/FieldNamingStrategy; │ │ - .line 653 │ return-object v0 │ .end method │ │ - │ -# virtual methods │ .method public fromJson(Lcom/google/gson/JsonElement;Ljava/lang/Class;)Ljava/lang/Object; │ .locals 2 │ .param p1, "json" # Lcom/google/gson/JsonElement; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ ";" │ invoke-virtual {p0, p1, p2}, Lcom/google/gson/Gson;->fromJson(Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;)Ljava/lang/Object; │ │ move-result-object v0 │ │ - .line 849 │ + .line 926 │ .local v0, "object":Ljava/lang/Object; │ invoke-static {p2}, Lcom/google/gson/internal/Primitives;->wrap(Ljava/lang/Class;)Ljava/lang/Class; │ │ move-result-object v1 │ │ invoke-virtual {v1, v0}, Ljava/lang/Class;->cast(Ljava/lang/Object;)Ljava/lang/Object; │ │ @@ -784,21 +908,21 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Lcom/google/gson/JsonSyntaxException; │ } │ .end annotation │ │ .prologue │ - .line 872 │ + .line 949 │ if-nez p1, :cond_0 │ │ - .line 873 │ + .line 950 │ const/4 v0, 0x0 │ │ - .line 875 │ + .line 952 │ :goto_0 │ return-object v0 │ │ :cond_0 │ new-instance v0, Lcom/google/gson/internal/bind/JsonTreeReader; │ │ invoke-direct {v0, p1}, Lcom/google/gson/internal/bind/JsonTreeReader;->(Lcom/google/gson/JsonElement;)V │ @@ -829,123 +953,123 @@ │ value = { │ Lcom/google/gson/JsonIOException;, │ Lcom/google/gson/JsonSyntaxException; │ } │ .end annotation │ │ .prologue │ - .line 802 │ + .line 879 │ const/4 v1, 0x1 │ │ - .line 803 │ + .line 880 │ .local v1, "isEmpty":Z │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->isLenient()Z │ │ move-result v3 │ │ - .line 804 │ + .line 881 │ .local v3, "oldLenient":Z │ const/4 v6, 0x1 │ │ invoke-virtual {p1, v6}, Lcom/google/gson/stream/JsonReader;->setLenient(Z)V │ │ - .line 806 │ + .line 883 │ :try_start_0 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ - .line 807 │ + .line 884 │ const/4 v1, 0x0 │ │ - .line 808 │ + .line 885 │ invoke-static {p2}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken; │ │ move-result-object v5 │ │ - .line 809 │ + .line 886 │ .local v5, "typeToken":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken;" │ invoke-virtual {p0, v5}, Lcom/google/gson/Gson;->getAdapter(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ │ move-result-object v4 │ │ - .line 810 │ + .line 887 │ .local v4, "typeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ invoke-virtual {v4, p1}, Lcom/google/gson/TypeAdapter;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ :try_end_0 │ .catch Ljava/io/EOFException; {:try_start_0 .. :try_end_0} :catch_0 │ .catch Ljava/lang/IllegalStateException; {:try_start_0 .. :try_end_0} :catch_1 │ .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_2 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ move-result-object v2 │ │ - .line 827 │ + .line 904 │ .local v2, "object":Ljava/lang/Object;, "TT;" │ invoke-virtual {p1, v3}, Lcom/google/gson/stream/JsonReader;->setLenient(Z)V │ │ .end local v2 # "object":Ljava/lang/Object;, "TT;" │ .end local v4 # "typeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ .end local v5 # "typeToken":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken;" │ :goto_0 │ return-object v2 │ │ - .line 812 │ + .line 889 │ :catch_0 │ move-exception v0 │ │ - .line 817 │ + .line 894 │ .local v0, "e":Ljava/io/EOFException; │ if-eqz v1, :cond_0 │ │ - .line 818 │ + .line 895 │ const/4 v2, 0x0 │ │ - .line 827 │ + .line 904 │ invoke-virtual {p1, v3}, Lcom/google/gson/stream/JsonReader;->setLenient(Z)V │ │ goto :goto_0 │ │ - .line 820 │ + .line 897 │ :cond_0 │ :try_start_1 │ new-instance v6, Lcom/google/gson/JsonSyntaxException; │ │ invoke-direct {v6, v0}, Lcom/google/gson/JsonSyntaxException;->(Ljava/lang/Throwable;)V │ │ throw v6 │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 827 │ + .line 904 │ .end local v0 # "e":Ljava/io/EOFException; │ :catchall_0 │ move-exception v6 │ │ invoke-virtual {p1, v3}, Lcom/google/gson/stream/JsonReader;->setLenient(Z)V │ │ throw v6 │ │ - .line 821 │ + .line 898 │ :catch_1 │ move-exception v0 │ │ - .line 822 │ + .line 899 │ .local v0, "e":Ljava/lang/IllegalStateException; │ :try_start_2 │ new-instance v6, Lcom/google/gson/JsonSyntaxException; │ │ invoke-direct {v6, v0}, Lcom/google/gson/JsonSyntaxException;->(Ljava/lang/Throwable;)V │ │ throw v6 │ │ - .line 823 │ + .line 900 │ .end local v0 # "e":Ljava/lang/IllegalStateException; │ :catch_2 │ move-exception v0 │ │ - .line 825 │ + .line 902 │ .local v0, "e":Ljava/io/IOException; │ new-instance v6, Lcom/google/gson/JsonSyntaxException; │ │ invoke-direct {v6, v0}, Lcom/google/gson/JsonSyntaxException;->(Ljava/lang/Throwable;)V │ │ throw v6 │ :try_end_2 │ @@ -970,31 +1094,31 @@ │ value = { │ Lcom/google/gson/JsonSyntaxException;, │ Lcom/google/gson/JsonIOException; │ } │ .end annotation │ │ .prologue │ - .line 747 │ + .line 824 │ .local p2, "classOfT":Ljava/lang/Class;, "Ljava/lang/Class;" │ - new-instance v0, Lcom/google/gson/stream/JsonReader; │ + invoke-virtual {p0, p1}, Lcom/google/gson/Gson;->newJsonReader(Ljava/io/Reader;)Lcom/google/gson/stream/JsonReader; │ │ - invoke-direct {v0, p1}, Lcom/google/gson/stream/JsonReader;->(Ljava/io/Reader;)V │ + move-result-object v0 │ │ - .line 748 │ + .line 825 │ .local v0, "jsonReader":Lcom/google/gson/stream/JsonReader; │ invoke-virtual {p0, v0, p2}, Lcom/google/gson/Gson;->fromJson(Lcom/google/gson/stream/JsonReader;Ljava/lang/reflect/Type;)Ljava/lang/Object; │ │ move-result-object v1 │ │ - .line 749 │ + .line 826 │ .local v1, "object":Ljava/lang/Object; │ invoke-static {v1, v0}, Lcom/google/gson/Gson;->assertFullConsumption(Ljava/lang/Object;Lcom/google/gson/stream/JsonReader;)V │ │ - .line 750 │ + .line 827 │ invoke-static {p2}, Lcom/google/gson/internal/Primitives;->wrap(Ljava/lang/Class;)Ljava/lang/Class; │ │ move-result-object v2 │ │ invoke-virtual {v2, v1}, Ljava/lang/Class;->cast(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v2 │ @@ -1021,30 +1145,30 @@ │ value = { │ Lcom/google/gson/JsonIOException;, │ Lcom/google/gson/JsonSyntaxException; │ } │ .end annotation │ │ .prologue │ - .line 774 │ - new-instance v0, Lcom/google/gson/stream/JsonReader; │ + .line 851 │ + invoke-virtual {p0, p1}, Lcom/google/gson/Gson;->newJsonReader(Ljava/io/Reader;)Lcom/google/gson/stream/JsonReader; │ │ - invoke-direct {v0, p1}, Lcom/google/gson/stream/JsonReader;->(Ljava/io/Reader;)V │ + move-result-object v0 │ │ - .line 775 │ + .line 852 │ .local v0, "jsonReader":Lcom/google/gson/stream/JsonReader; │ invoke-virtual {p0, v0, p2}, Lcom/google/gson/Gson;->fromJson(Lcom/google/gson/stream/JsonReader;Ljava/lang/reflect/Type;)Ljava/lang/Object; │ │ move-result-object v1 │ │ - .line 776 │ + .line 853 │ .local v1, "object":Ljava/lang/Object;, "TT;" │ invoke-static {v1, v0}, Lcom/google/gson/Gson;->assertFullConsumption(Ljava/lang/Object;Lcom/google/gson/stream/JsonReader;)V │ │ - .line 777 │ + .line 854 │ return-object v1 │ .end method │ │ .method public fromJson(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object; │ .locals 2 │ .param p1, "json" # Ljava/lang/String; │ .annotation system Ldalvik/annotation/Signature; │ @@ -1061,21 +1185,21 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Lcom/google/gson/JsonSyntaxException; │ } │ .end annotation │ │ .prologue │ - .line 696 │ + .line 773 │ .local p2, "classOfT":Ljava/lang/Class;, "Ljava/lang/Class;" │ invoke-virtual {p0, p1, p2}, Lcom/google/gson/Gson;->fromJson(Ljava/lang/String;Ljava/lang/reflect/Type;)Ljava/lang/Object; │ │ move-result-object v0 │ │ - .line 697 │ + .line 774 │ .local v0, "object":Ljava/lang/Object; │ invoke-static {p2}, Lcom/google/gson/internal/Primitives;->wrap(Ljava/lang/Class;)Ljava/lang/Class; │ │ move-result-object v1 │ │ invoke-virtual {v1, v0}, Ljava/lang/Class;->cast(Ljava/lang/Object;)Ljava/lang/Object; │ │ @@ -1102,243 +1226,252 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Lcom/google/gson/JsonSyntaxException; │ } │ .end annotation │ │ .prologue │ - .line 720 │ + .line 797 │ if-nez p1, :cond_0 │ │ - .line 721 │ + .line 798 │ const/4 v1, 0x0 │ │ - .line 725 │ + .line 802 │ :goto_0 │ return-object v1 │ │ - .line 723 │ + .line 800 │ :cond_0 │ new-instance v0, Ljava/io/StringReader; │ │ invoke-direct {v0, p1}, Ljava/io/StringReader;->(Ljava/lang/String;)V │ │ - .line 724 │ + .line 801 │ .local v0, "reader":Ljava/io/StringReader; │ invoke-virtual {p0, v0, p2}, Lcom/google/gson/Gson;->fromJson(Ljava/io/Reader;Ljava/lang/reflect/Type;)Ljava/lang/Object; │ │ move-result-object v1 │ │ - .line 725 │ + .line 802 │ .local v1, "target":Ljava/lang/Object;, "TT;" │ goto :goto_0 │ .end method │ │ .method public getAdapter(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ - .locals 11 │ + .locals 10 │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Lcom/google/gson/reflect/TypeToken", │ ";)", │ "Lcom/google/gson/TypeAdapter", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 335 │ + .line 399 │ .local p1, "type":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken;" │ iget-object v8, p0, Lcom/google/gson/Gson;->typeTokenCache:Ljava/util/Map; │ │ - invoke-interface {v8, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; │ + if-nez p1, :cond_0 │ + │ + sget-object v7, Lcom/google/gson/Gson;->NULL_KEY_SURROGATE:Lcom/google/gson/reflect/TypeToken; │ + │ + :goto_0 │ + invoke-interface {v8, v7}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lcom/google/gson/TypeAdapter; │ │ - .line 336 │ + .line 400 │ .local v0, "cached":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<*>;" │ - if-eqz v0, :cond_0 │ + if-eqz v0, :cond_1 │ │ - .line 371 │ + .line 435 │ .end local v0 # "cached":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<*>;" │ - :goto_0 │ + :goto_1 │ return-object v0 │ │ - .line 340 │ - .restart local v0 # "cached":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<*>;" │ :cond_0 │ - iget-object v8, p0, Lcom/google/gson/Gson;->calls:Ljava/lang/ThreadLocal; │ + move-object v7, p1 │ │ - invoke-virtual {v8}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object; │ + .line 399 │ + goto :goto_0 │ │ - move-result-object v7 │ + .line 404 │ + .restart local v0 # "cached":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<*>;" │ + :cond_1 │ + iget-object v7, p0, Lcom/google/gson/Gson;->calls:Ljava/lang/ThreadLocal; │ │ - check-cast v7, Ljava/util/Map; │ + invoke-virtual {v7}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object; │ │ - .line 341 │ - .local v7, "threadCalls":Ljava/util/Map;, "Ljava/util/Map;Lcom/google/gson/Gson$FutureTypeAdapter<*>;>;" │ - const/4 v6, 0x0 │ + move-result-object v6 │ │ - .line 342 │ - .local v6, "requiresThreadLocalCleanup":Z │ - if-nez v7, :cond_1 │ + check-cast v6, Ljava/util/Map; │ │ - .line 343 │ - new-instance v7, Ljava/util/HashMap; │ + .line 405 │ + .local v6, "threadCalls":Ljava/util/Map;, "Ljava/util/Map;Lcom/google/gson/Gson$FutureTypeAdapter<*>;>;" │ + const/4 v5, 0x0 │ │ - .end local v7 # "threadCalls":Ljava/util/Map;, "Ljava/util/Map;Lcom/google/gson/Gson$FutureTypeAdapter<*>;>;" │ - invoke-direct {v7}, Ljava/util/HashMap;->()V │ + .line 406 │ + .local v5, "requiresThreadLocalCleanup":Z │ + if-nez v6, :cond_2 │ │ - .line 344 │ - .restart local v7 # "threadCalls":Ljava/util/Map;, "Ljava/util/Map;Lcom/google/gson/Gson$FutureTypeAdapter<*>;>;" │ - iget-object v8, p0, Lcom/google/gson/Gson;->calls:Ljava/lang/ThreadLocal; │ + .line 407 │ + new-instance v6, Ljava/util/HashMap; │ │ - invoke-virtual {v8, v7}, Ljava/lang/ThreadLocal;->set(Ljava/lang/Object;)V │ + .end local v6 # "threadCalls":Ljava/util/Map;, "Ljava/util/Map;Lcom/google/gson/Gson$FutureTypeAdapter<*>;>;" │ + invoke-direct {v6}, Ljava/util/HashMap;->()V │ │ - .line 345 │ - const/4 v6, 0x1 │ + .line 408 │ + .restart local v6 # "threadCalls":Ljava/util/Map;, "Ljava/util/Map;Lcom/google/gson/Gson$FutureTypeAdapter<*>;>;" │ + iget-object v7, p0, Lcom/google/gson/Gson;->calls:Ljava/lang/ThreadLocal; │ │ - .line 349 │ - :cond_1 │ - invoke-interface {v7, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-virtual {v7, v6}, Ljava/lang/ThreadLocal;->set(Ljava/lang/Object;)V │ │ - move-result-object v5 │ + .line 409 │ + const/4 v5, 0x1 │ │ - check-cast v5, Lcom/google/gson/Gson$FutureTypeAdapter; │ + .line 413 │ + :cond_2 │ + invoke-interface {v6, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ - .line 350 │ - .local v5, "ongoingCall":Lcom/google/gson/Gson$FutureTypeAdapter;, "Lcom/google/gson/Gson$FutureTypeAdapter;" │ - if-eqz v5, :cond_2 │ + move-result-object v4 │ │ - move-object v0, v5 │ + check-cast v4, Lcom/google/gson/Gson$FutureTypeAdapter; │ │ - .line 351 │ - goto :goto_0 │ + .line 414 │ + .local v4, "ongoingCall":Lcom/google/gson/Gson$FutureTypeAdapter;, "Lcom/google/gson/Gson$FutureTypeAdapter;" │ + if-eqz v4, :cond_3 │ │ - .line 355 │ - :cond_2 │ + move-object v0, v4 │ + │ + .line 415 │ + goto :goto_1 │ + │ + .line 419 │ + :cond_3 │ :try_start_0 │ new-instance v1, Lcom/google/gson/Gson$FutureTypeAdapter; │ │ invoke-direct {v1}, Lcom/google/gson/Gson$FutureTypeAdapter;->()V │ │ - .line 356 │ + .line 420 │ .local v1, "call":Lcom/google/gson/Gson$FutureTypeAdapter;, "Lcom/google/gson/Gson$FutureTypeAdapter;" │ - invoke-interface {v7, p1, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-interface {v6, p1, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ - .line 358 │ - iget-object v8, p0, Lcom/google/gson/Gson;->factories:Ljava/util/List; │ + .line 422 │ + iget-object v7, p0, Lcom/google/gson/Gson;->factories:Ljava/util/List; │ │ - invoke-interface {v8}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v7}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v4 │ + move-result-object v7 │ │ - .local v4, "i$":Ljava/util/Iterator; │ - :cond_3 │ - invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z │ + :cond_4 │ + invoke-interface {v7}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v8 │ │ - if-eqz v8, :cond_5 │ + if-eqz v8, :cond_6 │ │ - invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v7}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v3 │ │ check-cast v3, Lcom/google/gson/TypeAdapterFactory; │ │ - .line 359 │ + .line 423 │ .local v3, "factory":Lcom/google/gson/TypeAdapterFactory; │ invoke-interface {v3, p0, p1}, Lcom/google/gson/TypeAdapterFactory;->create(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ │ move-result-object v2 │ │ - .line 360 │ + .line 424 │ .local v2, "candidate":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ - if-eqz v2, :cond_3 │ + if-eqz v2, :cond_4 │ │ - .line 361 │ + .line 425 │ invoke-virtual {v1, v2}, Lcom/google/gson/Gson$FutureTypeAdapter;->setDelegate(Lcom/google/gson/TypeAdapter;)V │ │ - .line 362 │ - iget-object v8, p0, Lcom/google/gson/Gson;->typeTokenCache:Ljava/util/Map; │ + .line 426 │ + iget-object v7, p0, Lcom/google/gson/Gson;->typeTokenCache:Ljava/util/Map; │ │ - invoke-interface {v8, p1, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-interface {v7, p1, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ - .line 368 │ - invoke-interface {v7, p1}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object; │ + .line 432 │ + invoke-interface {v6, p1}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object; │ │ - .line 370 │ - if-eqz v6, :cond_4 │ + .line 434 │ + if-eqz v5, :cond_5 │ │ - .line 371 │ - iget-object v8, p0, Lcom/google/gson/Gson;->calls:Ljava/lang/ThreadLocal; │ + .line 435 │ + iget-object v7, p0, Lcom/google/gson/Gson;->calls:Ljava/lang/ThreadLocal; │ │ - invoke-virtual {v8}, Ljava/lang/ThreadLocal;->remove()V │ + invoke-virtual {v7}, Ljava/lang/ThreadLocal;->remove()V │ │ - :cond_4 │ + :cond_5 │ move-object v0, v2 │ │ - goto :goto_0 │ + goto :goto_1 │ │ - .line 366 │ + .line 430 │ .end local v2 # "candidate":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ .end local v3 # "factory":Lcom/google/gson/TypeAdapterFactory; │ - :cond_5 │ + :cond_6 │ :try_start_1 │ - new-instance v8, Ljava/lang/IllegalArgumentException; │ + new-instance v7, Ljava/lang/IllegalArgumentException; │ │ - new-instance v9, Ljava/lang/StringBuilder; │ + new-instance v8, Ljava/lang/StringBuilder; │ │ - invoke-direct {v9}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v8}, Ljava/lang/StringBuilder;->()V │ │ - const-string v10, "GSON cannot handle " │ + const-string v9, "GSON cannot handle " │ │ - invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v9 │ + move-result-object v8 │ │ - invoke-virtual {v9, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ + invoke-virtual {v8, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ - move-result-object v9 │ + move-result-object v8 │ │ - invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v9 │ + move-result-object v8 │ │ - invoke-direct {v8, v9}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ + invoke-direct {v7, v8}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ - throw v8 │ + throw v7 │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 368 │ + .line 432 │ .end local v1 # "call":Lcom/google/gson/Gson$FutureTypeAdapter;, "Lcom/google/gson/Gson$FutureTypeAdapter;" │ - .end local v4 # "i$":Ljava/util/Iterator; │ :catchall_0 │ - move-exception v8 │ + move-exception v7 │ │ - invoke-interface {v7, p1}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-interface {v6, p1}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object; │ │ - .line 370 │ - if-eqz v6, :cond_6 │ + .line 434 │ + if-eqz v5, :cond_7 │ │ - .line 371 │ - iget-object v9, p0, Lcom/google/gson/Gson;->calls:Ljava/lang/ThreadLocal; │ + .line 435 │ + iget-object v8, p0, Lcom/google/gson/Gson;->calls:Ljava/lang/ThreadLocal; │ │ - invoke-virtual {v9}, Ljava/lang/ThreadLocal;->remove()V │ + invoke-virtual {v8}, Ljava/lang/ThreadLocal;->remove()V │ │ - :cond_6 │ - throw v8 │ + :cond_7 │ + throw v7 │ .end method │ │ .method public getAdapter(Ljava/lang/Class;)Lcom/google/gson/TypeAdapter; │ .locals 1 │ .annotation system Ldalvik/annotation/Signature; │ value = { │ ";)", │ "Lcom/google/gson/TypeAdapter", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 452 │ + .line 521 │ .local p1, "type":Ljava/lang/Class;, "Ljava/lang/Class;" │ invoke-static {p1}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/Class;)Lcom/google/gson/reflect/TypeToken; │ │ move-result-object v0 │ │ invoke-virtual {p0, v0}, Lcom/google/gson/Gson;->getAdapter(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public getDelegateAdapter(Lcom/google/gson/TypeAdapterFactory;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ - .locals 7 │ + .locals 6 │ .param p1, "skipPast" # Lcom/google/gson/TypeAdapterFactory; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Lcom/google/gson/TypeAdapterFactory;", │ @@ -1378,145 +1511,232 @@ │ ";)", │ "Lcom/google/gson/TypeAdapter", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 423 │ + .line 493 │ .local p2, "type":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken;" │ - const/4 v3, 0x0 │ + iget-object v3, p0, Lcom/google/gson/Gson;->factories:Ljava/util/List; │ │ - .line 427 │ - .local v3, "skipPastFound":Z │ - iget-object v4, p0, Lcom/google/gson/Gson;->factories:Ljava/util/List; │ + invoke-interface {v3, p1}, Ljava/util/List;->contains(Ljava/lang/Object;)Z │ │ - invoke-interface {v4, p1}, Ljava/util/List;->contains(Ljava/lang/Object;)Z │ - │ - move-result v4 │ + move-result v3 │ │ - if-nez v4, :cond_0 │ + if-nez v3, :cond_0 │ │ - const/4 v3, 0x1 │ + .line 494 │ + iget-object p1, p0, Lcom/google/gson/Gson;->jsonAdapterFactory:Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory; │ │ - .line 429 │ + .line 497 │ :cond_0 │ - iget-object v4, p0, Lcom/google/gson/Gson;->factories:Ljava/util/List; │ + const/4 v2, 0x0 │ │ - invoke-interface {v4}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + .line 498 │ + .local v2, "skipPastFound":Z │ + iget-object v3, p0, Lcom/google/gson/Gson;->factories:Ljava/util/List; │ │ - move-result-object v2 │ + invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + │ + move-result-object v3 │ │ - .local v2, "i$":Ljava/util/Iterator; │ :cond_1 │ :goto_0 │ - invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v4 │ │ if-eqz v4, :cond_3 │ │ - invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Lcom/google/gson/TypeAdapterFactory; │ │ - .line 430 │ + .line 499 │ .local v1, "factory":Lcom/google/gson/TypeAdapterFactory; │ - if-nez v3, :cond_2 │ + if-nez v2, :cond_2 │ │ - .line 431 │ + .line 500 │ if-ne v1, p1, :cond_1 │ │ - .line 432 │ - const/4 v3, 0x1 │ + .line 501 │ + const/4 v2, 0x1 │ │ goto :goto_0 │ │ - .line 437 │ + .line 506 │ :cond_2 │ invoke-interface {v1, p0, p2}, Lcom/google/gson/TypeAdapterFactory;->create(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ │ move-result-object v0 │ │ - .line 438 │ + .line 507 │ .local v0, "candidate":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ if-eqz v0, :cond_1 │ │ - .line 439 │ + .line 508 │ return-object v0 │ │ - .line 442 │ + .line 511 │ .end local v0 # "candidate":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ .end local v1 # "factory":Lcom/google/gson/TypeAdapterFactory; │ :cond_3 │ - new-instance v4, Ljava/lang/IllegalArgumentException; │ + new-instance v3, Ljava/lang/IllegalArgumentException; │ │ - new-instance v5, Ljava/lang/StringBuilder; │ + new-instance v4, Ljava/lang/StringBuilder; │ │ - invoke-direct {v5}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v4}, Ljava/lang/StringBuilder;->()V │ │ - const-string v6, "GSON cannot serialize " │ + const-string v5, "GSON cannot serialize " │ │ - invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ + invoke-virtual {v4, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - invoke-direct {v4, v5}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ + invoke-direct {v3, v4}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ - throw v4 │ + throw v3 │ +.end method │ + │ +.method public htmlSafe()Z │ + .locals 1 │ + │ + .prologue │ + .line 271 │ + iget-boolean v0, p0, Lcom/google/gson/Gson;->htmlSafe:Z │ + │ + return v0 │ +.end method │ + │ +.method public newJsonReader(Ljava/io/Reader;)Lcom/google/gson/stream/JsonReader; │ + .locals 2 │ + .param p1, "reader" # Ljava/io/Reader; │ + │ + .prologue │ + .line 728 │ + new-instance v0, Lcom/google/gson/stream/JsonReader; │ + │ + invoke-direct {v0, p1}, Lcom/google/gson/stream/JsonReader;->(Ljava/io/Reader;)V │ + │ + .line 729 │ + .local v0, "jsonReader":Lcom/google/gson/stream/JsonReader; │ + iget-boolean v1, p0, Lcom/google/gson/Gson;->lenient:Z │ + │ + invoke-virtual {v0, v1}, Lcom/google/gson/stream/JsonReader;->setLenient(Z)V │ + │ + .line 730 │ + return-object v0 │ +.end method │ + │ +.method public newJsonWriter(Ljava/io/Writer;)Lcom/google/gson/stream/JsonWriter; │ + .locals 2 │ + .param p1, "writer" # Ljava/io/Writer; │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/io/IOException; │ + } │ + .end annotation │ + │ + .prologue │ + .line 713 │ + iget-boolean v1, p0, Lcom/google/gson/Gson;->generateNonExecutableJson:Z │ + │ + if-eqz v1, :cond_0 │ + │ + .line 714 │ + const-string v1, ")]}\'\n" │ + │ + invoke-virtual {p1, v1}, Ljava/io/Writer;->write(Ljava/lang/String;)V │ + │ + .line 716 │ + :cond_0 │ + new-instance v0, Lcom/google/gson/stream/JsonWriter; │ + │ + invoke-direct {v0, p1}, Lcom/google/gson/stream/JsonWriter;->(Ljava/io/Writer;)V │ + │ + .line 717 │ + .local v0, "jsonWriter":Lcom/google/gson/stream/JsonWriter; │ + iget-boolean v1, p0, Lcom/google/gson/Gson;->prettyPrinting:Z │ + │ + if-eqz v1, :cond_1 │ + │ + .line 718 │ + const-string v1, " " │ + │ + invoke-virtual {v0, v1}, Lcom/google/gson/stream/JsonWriter;->setIndent(Ljava/lang/String;)V │ + │ + .line 720 │ + :cond_1 │ + iget-boolean v1, p0, Lcom/google/gson/Gson;->serializeNulls:Z │ + │ + invoke-virtual {v0, v1}, Lcom/google/gson/stream/JsonWriter;->setSerializeNulls(Z)V │ + │ + .line 721 │ + return-object v0 │ +.end method │ + │ +.method public serializeNulls()Z │ + .locals 1 │ + │ + .prologue │ + .line 267 │ + iget-boolean v0, p0, Lcom/google/gson/Gson;->serializeNulls:Z │ + │ + return v0 │ .end method │ │ .method public toJson(Lcom/google/gson/JsonElement;)Ljava/lang/String; │ .locals 2 │ .param p1, "jsonElement" # Lcom/google/gson/JsonElement; │ │ .prologue │ - .line 618 │ + .line 687 │ new-instance v0, Ljava/io/StringWriter; │ │ invoke-direct {v0}, Ljava/io/StringWriter;->()V │ │ - .line 619 │ + .line 688 │ .local v0, "writer":Ljava/io/StringWriter; │ invoke-virtual {p0, p1, v0}, Lcom/google/gson/Gson;->toJson(Lcom/google/gson/JsonElement;Ljava/lang/Appendable;)V │ │ - .line 620 │ + .line 689 │ invoke-virtual {v0}, Ljava/io/StringWriter;->toString()Ljava/lang/String; │ │ move-result-object v1 │ │ return-object v1 │ .end method │ │ .method public toJson(Ljava/lang/Object;)Ljava/lang/String; │ .locals 1 │ .param p1, "src" # Ljava/lang/Object; │ │ .prologue │ - .line 511 │ + .line 580 │ if-nez p1, :cond_0 │ │ - .line 512 │ + .line 581 │ sget-object v0, Lcom/google/gson/JsonNull;->INSTANCE:Lcom/google/gson/JsonNull; │ │ invoke-virtual {p0, v0}, Lcom/google/gson/Gson;->toJson(Lcom/google/gson/JsonElement;)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 514 │ + .line 583 │ :goto_0 │ return-object v0 │ │ :cond_0 │ invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ move-result-object v0 │ @@ -1530,24 +1750,24 @@ │ │ .method public toJson(Ljava/lang/Object;Ljava/lang/reflect/Type;)Ljava/lang/String; │ .locals 2 │ .param p1, "src" # Ljava/lang/Object; │ .param p2, "typeOfSrc" # Ljava/lang/reflect/Type; │ │ .prologue │ - .line 533 │ + .line 602 │ new-instance v0, Ljava/io/StringWriter; │ │ invoke-direct {v0}, Ljava/io/StringWriter;->()V │ │ - .line 534 │ + .line 603 │ .local v0, "writer":Ljava/io/StringWriter; │ invoke-virtual {p0, p1, p2, v0}, Lcom/google/gson/Gson;->toJson(Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/Appendable;)V │ │ - .line 535 │ + .line 604 │ invoke-virtual {v0}, Ljava/io/StringWriter;->toString()Ljava/lang/String; │ │ move-result-object v1 │ │ return-object v1 │ .end method │ │ @@ -1558,92 +1778,92 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Lcom/google/gson/JsonIOException; │ } │ .end annotation │ │ .prologue │ - .line 661 │ + .line 738 │ invoke-virtual {p2}, Lcom/google/gson/stream/JsonWriter;->isLenient()Z │ │ move-result v2 │ │ - .line 662 │ + .line 739 │ .local v2, "oldLenient":Z │ const/4 v4, 0x1 │ │ invoke-virtual {p2, v4}, Lcom/google/gson/stream/JsonWriter;->setLenient(Z)V │ │ - .line 663 │ + .line 740 │ invoke-virtual {p2}, Lcom/google/gson/stream/JsonWriter;->isHtmlSafe()Z │ │ move-result v1 │ │ - .line 664 │ + .line 741 │ .local v1, "oldHtmlSafe":Z │ iget-boolean v4, p0, Lcom/google/gson/Gson;->htmlSafe:Z │ │ invoke-virtual {p2, v4}, Lcom/google/gson/stream/JsonWriter;->setHtmlSafe(Z)V │ │ - .line 665 │ + .line 742 │ invoke-virtual {p2}, Lcom/google/gson/stream/JsonWriter;->getSerializeNulls()Z │ │ move-result v3 │ │ - .line 666 │ + .line 743 │ .local v3, "oldSerializeNulls":Z │ iget-boolean v4, p0, Lcom/google/gson/Gson;->serializeNulls:Z │ │ invoke-virtual {p2, v4}, Lcom/google/gson/stream/JsonWriter;->setSerializeNulls(Z)V │ │ - .line 668 │ + .line 745 │ :try_start_0 │ invoke-static {p1, p2}, Lcom/google/gson/internal/Streams;->write(Lcom/google/gson/JsonElement;Lcom/google/gson/stream/JsonWriter;)V │ :try_end_0 │ .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ - .line 672 │ + .line 749 │ invoke-virtual {p2, v2}, Lcom/google/gson/stream/JsonWriter;->setLenient(Z)V │ │ - .line 673 │ + .line 750 │ invoke-virtual {p2, v1}, Lcom/google/gson/stream/JsonWriter;->setHtmlSafe(Z)V │ │ - .line 674 │ + .line 751 │ invoke-virtual {p2, v3}, Lcom/google/gson/stream/JsonWriter;->setSerializeNulls(Z)V │ │ - .line 676 │ + .line 753 │ return-void │ │ - .line 669 │ + .line 746 │ :catch_0 │ move-exception v0 │ │ - .line 670 │ + .line 747 │ .local v0, "e":Ljava/io/IOException; │ :try_start_1 │ new-instance v4, Lcom/google/gson/JsonIOException; │ │ invoke-direct {v4, v0}, Lcom/google/gson/JsonIOException;->(Ljava/lang/Throwable;)V │ │ throw v4 │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 672 │ + .line 749 │ .end local v0 # "e":Ljava/io/IOException; │ :catchall_0 │ move-exception v4 │ │ invoke-virtual {p2, v2}, Lcom/google/gson/stream/JsonWriter;->setLenient(Z)V │ │ - .line 673 │ + .line 750 │ invoke-virtual {p2, v1}, Lcom/google/gson/stream/JsonWriter;->setHtmlSafe(Z)V │ │ - .line 674 │ + .line 751 │ invoke-virtual {p2, v3}, Lcom/google/gson/stream/JsonWriter;->setSerializeNulls(Z)V │ │ throw v4 │ .end method │ │ .method public toJson(Lcom/google/gson/JsonElement;Ljava/lang/Appendable;)V │ .locals 3 │ @@ -1652,43 +1872,43 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Lcom/google/gson/JsonIOException; │ } │ .end annotation │ │ .prologue │ - .line 633 │ + .line 702 │ :try_start_0 │ invoke-static {p2}, Lcom/google/gson/internal/Streams;->writerForAppendable(Ljava/lang/Appendable;)Ljava/io/Writer; │ │ move-result-object v2 │ │ - invoke-direct {p0, v2}, Lcom/google/gson/Gson;->newJsonWriter(Ljava/io/Writer;)Lcom/google/gson/stream/JsonWriter; │ + invoke-virtual {p0, v2}, Lcom/google/gson/Gson;->newJsonWriter(Ljava/io/Writer;)Lcom/google/gson/stream/JsonWriter; │ │ move-result-object v1 │ │ - .line 634 │ + .line 703 │ .local v1, "jsonWriter":Lcom/google/gson/stream/JsonWriter; │ invoke-virtual {p0, p1, v1}, Lcom/google/gson/Gson;->toJson(Lcom/google/gson/JsonElement;Lcom/google/gson/stream/JsonWriter;)V │ :try_end_0 │ .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 638 │ + .line 707 │ return-void │ │ - .line 635 │ + .line 704 │ .end local v1 # "jsonWriter":Lcom/google/gson/stream/JsonWriter; │ :catch_0 │ move-exception v0 │ │ - .line 636 │ + .line 705 │ .local v0, "e":Ljava/io/IOException; │ - new-instance v2, Ljava/lang/RuntimeException; │ + new-instance v2, Lcom/google/gson/JsonIOException; │ │ - invoke-direct {v2, v0}, Ljava/lang/RuntimeException;->(Ljava/lang/Throwable;)V │ + invoke-direct {v2, v0}, Lcom/google/gson/JsonIOException;->(Ljava/lang/Throwable;)V │ │ throw v2 │ .end method │ │ .method public toJson(Ljava/lang/Object;Ljava/lang/Appendable;)V │ .locals 1 │ .param p1, "src" # Ljava/lang/Object; │ @@ -1696,29 +1916,29 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Lcom/google/gson/JsonIOException; │ } │ .end annotation │ │ .prologue │ - .line 553 │ + .line 622 │ if-eqz p1, :cond_0 │ │ - .line 554 │ + .line 623 │ invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ move-result-object v0 │ │ invoke-virtual {p0, p1, v0, p2}, Lcom/google/gson/Gson;->toJson(Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/Appendable;)V │ │ - .line 558 │ + .line 627 │ :goto_0 │ return-void │ │ - .line 556 │ + .line 625 │ :cond_0 │ sget-object v0, Lcom/google/gson/JsonNull;->INSTANCE:Lcom/google/gson/JsonNull; │ │ invoke-virtual {p0, v0, p2}, Lcom/google/gson/Gson;->toJson(Lcom/google/gson/JsonElement;Ljava/lang/Appendable;)V │ │ goto :goto_0 │ .end method │ @@ -1731,102 +1951,102 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Lcom/google/gson/JsonIOException; │ } │ .end annotation │ │ .prologue │ - .line 592 │ + .line 661 │ invoke-static {p2}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken; │ │ move-result-object v5 │ │ invoke-virtual {p0, v5}, Lcom/google/gson/Gson;->getAdapter(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ │ move-result-object v0 │ │ - .line 593 │ + .line 662 │ .local v0, "adapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<*>;" │ invoke-virtual {p3}, Lcom/google/gson/stream/JsonWriter;->isLenient()Z │ │ move-result v3 │ │ - .line 594 │ + .line 663 │ .local v3, "oldLenient":Z │ const/4 v5, 0x1 │ │ invoke-virtual {p3, v5}, Lcom/google/gson/stream/JsonWriter;->setLenient(Z)V │ │ - .line 595 │ + .line 664 │ invoke-virtual {p3}, Lcom/google/gson/stream/JsonWriter;->isHtmlSafe()Z │ │ move-result v2 │ │ - .line 596 │ + .line 665 │ .local v2, "oldHtmlSafe":Z │ iget-boolean v5, p0, Lcom/google/gson/Gson;->htmlSafe:Z │ │ invoke-virtual {p3, v5}, Lcom/google/gson/stream/JsonWriter;->setHtmlSafe(Z)V │ │ - .line 597 │ + .line 666 │ invoke-virtual {p3}, Lcom/google/gson/stream/JsonWriter;->getSerializeNulls()Z │ │ move-result v4 │ │ - .line 598 │ + .line 667 │ .local v4, "oldSerializeNulls":Z │ iget-boolean v5, p0, Lcom/google/gson/Gson;->serializeNulls:Z │ │ invoke-virtual {p3, v5}, Lcom/google/gson/stream/JsonWriter;->setSerializeNulls(Z)V │ │ - .line 600 │ + .line 669 │ :try_start_0 │ invoke-virtual {v0, p3, p1}, Lcom/google/gson/TypeAdapter;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ :try_end_0 │ .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ - .line 604 │ + .line 673 │ invoke-virtual {p3, v3}, Lcom/google/gson/stream/JsonWriter;->setLenient(Z)V │ │ - .line 605 │ + .line 674 │ invoke-virtual {p3, v2}, Lcom/google/gson/stream/JsonWriter;->setHtmlSafe(Z)V │ │ - .line 606 │ + .line 675 │ invoke-virtual {p3, v4}, Lcom/google/gson/stream/JsonWriter;->setSerializeNulls(Z)V │ │ - .line 608 │ + .line 677 │ return-void │ │ - .line 601 │ + .line 670 │ :catch_0 │ move-exception v1 │ │ - .line 602 │ + .line 671 │ .local v1, "e":Ljava/io/IOException; │ :try_start_1 │ new-instance v5, Lcom/google/gson/JsonIOException; │ │ invoke-direct {v5, v1}, Lcom/google/gson/JsonIOException;->(Ljava/lang/Throwable;)V │ │ throw v5 │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 604 │ + .line 673 │ .end local v1 # "e":Ljava/io/IOException; │ :catchall_0 │ move-exception v5 │ │ invoke-virtual {p3, v3}, Lcom/google/gson/stream/JsonWriter;->setLenient(Z)V │ │ - .line 605 │ + .line 674 │ invoke-virtual {p3, v2}, Lcom/google/gson/stream/JsonWriter;->setHtmlSafe(Z)V │ │ - .line 606 │ + .line 675 │ invoke-virtual {p3, v4}, Lcom/google/gson/stream/JsonWriter;->setSerializeNulls(Z)V │ │ throw v5 │ .end method │ │ .method public toJson(Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/Appendable;)V │ .locals 3 │ @@ -1836,59 +2056,59 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Lcom/google/gson/JsonIOException; │ } │ .end annotation │ │ .prologue │ - .line 578 │ + .line 647 │ :try_start_0 │ invoke-static {p3}, Lcom/google/gson/internal/Streams;->writerForAppendable(Ljava/lang/Appendable;)Ljava/io/Writer; │ │ move-result-object v2 │ │ - invoke-direct {p0, v2}, Lcom/google/gson/Gson;->newJsonWriter(Ljava/io/Writer;)Lcom/google/gson/stream/JsonWriter; │ + invoke-virtual {p0, v2}, Lcom/google/gson/Gson;->newJsonWriter(Ljava/io/Writer;)Lcom/google/gson/stream/JsonWriter; │ │ move-result-object v1 │ │ - .line 579 │ + .line 648 │ .local v1, "jsonWriter":Lcom/google/gson/stream/JsonWriter; │ invoke-virtual {p0, p1, p2, v1}, Lcom/google/gson/Gson;->toJson(Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/stream/JsonWriter;)V │ :try_end_0 │ .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 583 │ + .line 652 │ return-void │ │ - .line 580 │ + .line 649 │ .end local v1 # "jsonWriter":Lcom/google/gson/stream/JsonWriter; │ :catch_0 │ move-exception v0 │ │ - .line 581 │ + .line 650 │ .local v0, "e":Ljava/io/IOException; │ new-instance v2, Lcom/google/gson/JsonIOException; │ │ invoke-direct {v2, v0}, Lcom/google/gson/JsonIOException;->(Ljava/lang/Throwable;)V │ │ throw v2 │ .end method │ │ .method public toJsonTree(Ljava/lang/Object;)Lcom/google/gson/JsonElement; │ .locals 1 │ .param p1, "src" # Ljava/lang/Object; │ │ .prologue │ - .line 469 │ + .line 538 │ if-nez p1, :cond_0 │ │ - .line 470 │ + .line 539 │ sget-object v0, Lcom/google/gson/JsonNull;->INSTANCE:Lcom/google/gson/JsonNull; │ │ - .line 472 │ + .line 541 │ :goto_0 │ return-object v0 │ │ :cond_0 │ invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ move-result-object v0 │ @@ -1902,77 +2122,82 @@ │ │ .method public toJsonTree(Ljava/lang/Object;Ljava/lang/reflect/Type;)Lcom/google/gson/JsonElement; │ .locals 2 │ .param p1, "src" # Ljava/lang/Object; │ .param p2, "typeOfSrc" # Ljava/lang/reflect/Type; │ │ .prologue │ - .line 492 │ + .line 561 │ new-instance v0, Lcom/google/gson/internal/bind/JsonTreeWriter; │ │ invoke-direct {v0}, Lcom/google/gson/internal/bind/JsonTreeWriter;->()V │ │ - .line 493 │ + .line 562 │ .local v0, "writer":Lcom/google/gson/internal/bind/JsonTreeWriter; │ invoke-virtual {p0, p1, p2, v0}, Lcom/google/gson/Gson;->toJson(Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/stream/JsonWriter;)V │ │ - .line 494 │ + .line 563 │ invoke-virtual {v0}, Lcom/google/gson/internal/bind/JsonTreeWriter;->get()Lcom/google/gson/JsonElement; │ │ move-result-object v1 │ │ return-object v1 │ .end method │ │ .method public toString()Ljava/lang/String; │ .locals 2 │ │ .prologue │ - .line 905 │ + .line 982 │ new-instance v0, Ljava/lang/StringBuilder; │ │ const-string v1, "{serializeNulls:" │ │ invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V │ │ iget-boolean v1, p0, Lcom/google/gson/Gson;->serializeNulls:Z │ │ + .line 983 │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder; │ │ move-result-object v0 │ │ const-string v1, "factories:" │ │ + .line 984 │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v0 │ │ iget-object v1, p0, Lcom/google/gson/Gson;->factories:Ljava/util/List; │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ move-result-object v0 │ │ const-string v1, ",instanceCreators:" │ │ + .line 985 │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v0 │ │ iget-object v1, p0, Lcom/google/gson/Gson;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor; │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ move-result-object v0 │ │ const-string v1, "}" │ │ + .line 986 │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v0 │ │ + .line 987 │ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ return-object v0 │ .end method ├── smali/com/google/gson/GsonBuilder.smali │ @@ -48,83 +48,105 @@ │ "Ljava/lang/reflect/Type;", │ "Lcom/google/gson/InstanceCreator", │ "<*>;>;" │ } │ .end annotation │ .end field │ │ +.field private lenient:Z │ + │ .field private longSerializationPolicy:Lcom/google/gson/LongSerializationPolicy; │ │ .field private prettyPrinting:Z │ │ .field private serializeNulls:Z │ │ .field private serializeSpecialFloatingPointValues:Z │ │ .field private timeStyle:I │ │ │ # direct methods │ .method public constructor ()V │ - .locals 2 │ + .locals 3 │ │ .prologue │ - const/4 v1, 0x2 │ + const/4 v2, 0x2 │ │ - .line 93 │ + const/4 v1, 0x0 │ + │ + .line 104 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 69 │ + .line 79 │ sget-object v0, Lcom/google/gson/internal/Excluder;->DEFAULT:Lcom/google/gson/internal/Excluder; │ │ iput-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder; │ │ - .line 70 │ + .line 80 │ sget-object v0, Lcom/google/gson/LongSerializationPolicy;->DEFAULT:Lcom/google/gson/LongSerializationPolicy; │ │ iput-object v0, p0, Lcom/google/gson/GsonBuilder;->longSerializationPolicy:Lcom/google/gson/LongSerializationPolicy; │ │ - .line 71 │ + .line 81 │ sget-object v0, Lcom/google/gson/FieldNamingPolicy;->IDENTITY:Lcom/google/gson/FieldNamingPolicy; │ │ iput-object v0, p0, Lcom/google/gson/GsonBuilder;->fieldNamingPolicy:Lcom/google/gson/FieldNamingStrategy; │ │ - .line 72 │ + .line 82 │ new-instance v0, Ljava/util/HashMap; │ │ invoke-direct {v0}, Ljava/util/HashMap;->()V │ │ iput-object v0, p0, Lcom/google/gson/GsonBuilder;->instanceCreators:Ljava/util/Map; │ │ - .line 74 │ + .line 84 │ new-instance v0, Ljava/util/ArrayList; │ │ invoke-direct {v0}, Ljava/util/ArrayList;->()V │ │ iput-object v0, p0, Lcom/google/gson/GsonBuilder;->factories:Ljava/util/List; │ │ - .line 76 │ + .line 86 │ new-instance v0, Ljava/util/ArrayList; │ │ invoke-direct {v0}, Ljava/util/ArrayList;->()V │ │ iput-object v0, p0, Lcom/google/gson/GsonBuilder;->hierarchyFactories:Ljava/util/List; │ │ - .line 79 │ - iput v1, p0, Lcom/google/gson/GsonBuilder;->dateStyle:I │ + .line 87 │ + iput-boolean v1, p0, Lcom/google/gson/GsonBuilder;->serializeNulls:Z │ │ - .line 80 │ - iput v1, p0, Lcom/google/gson/GsonBuilder;->timeStyle:I │ + .line 89 │ + iput v2, p0, Lcom/google/gson/GsonBuilder;->dateStyle:I │ + │ + .line 90 │ + iput v2, p0, Lcom/google/gson/GsonBuilder;->timeStyle:I │ + │ + .line 91 │ + iput-boolean v1, p0, Lcom/google/gson/GsonBuilder;->complexMapKeySerialization:Z │ │ - .line 83 │ + .line 92 │ + iput-boolean v1, p0, Lcom/google/gson/GsonBuilder;->serializeSpecialFloatingPointValues:Z │ + │ + .line 93 │ const/4 v0, 0x1 │ │ iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->escapeHtmlChars:Z │ │ .line 94 │ + iput-boolean v1, p0, Lcom/google/gson/GsonBuilder;->prettyPrinting:Z │ + │ + .line 95 │ + iput-boolean v1, p0, Lcom/google/gson/GsonBuilder;->generateNonExecutableJson:Z │ + │ + .line 96 │ + iput-boolean v1, p0, Lcom/google/gson/GsonBuilder;->lenient:Z │ + │ + .line 105 │ return-void │ .end method │ │ .method private addTypeAdaptersForDate(Ljava/lang/String;IILjava/util/List;)V │ .locals 4 │ .param p1, "datePattern" # Ljava/lang/String; │ .param p2, "dateStyle" # I │ @@ -141,87 +163,87 @@ │ } │ .end annotation │ │ .prologue │ .local p4, "factories":Ljava/util/List;, "Ljava/util/List;" │ const/4 v3, 0x2 │ │ - .line 554 │ + .line 578 │ if-eqz p1, :cond_1 │ │ const-string v1, "" │ │ invoke-virtual {p1}, Ljava/lang/String;->trim()Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v1 │ │ if-nez v1, :cond_1 │ │ - .line 555 │ + .line 579 │ new-instance v0, Lcom/google/gson/DefaultDateTypeAdapter; │ │ invoke-direct {v0, p1}, Lcom/google/gson/DefaultDateTypeAdapter;->(Ljava/lang/String;)V │ │ - .line 562 │ + .line 586 │ .local v0, "dateTypeAdapter":Lcom/google/gson/DefaultDateTypeAdapter; │ :goto_0 │ const-class v1, Ljava/util/Date; │ │ invoke-static {v1}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/Class;)Lcom/google/gson/reflect/TypeToken; │ │ move-result-object v1 │ │ - invoke-static {v1, v0}, Lcom/google/gson/TreeTypeAdapter;->newFactory(Lcom/google/gson/reflect/TypeToken;Ljava/lang/Object;)Lcom/google/gson/TypeAdapterFactory; │ + invoke-static {v1, v0}, Lcom/google/gson/internal/bind/TreeTypeAdapter;->newFactory(Lcom/google/gson/reflect/TypeToken;Ljava/lang/Object;)Lcom/google/gson/TypeAdapterFactory; │ │ move-result-object v1 │ │ invoke-interface {p4, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ - .line 563 │ + .line 587 │ const-class v1, Ljava/sql/Timestamp; │ │ invoke-static {v1}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/Class;)Lcom/google/gson/reflect/TypeToken; │ │ move-result-object v1 │ │ - invoke-static {v1, v0}, Lcom/google/gson/TreeTypeAdapter;->newFactory(Lcom/google/gson/reflect/TypeToken;Ljava/lang/Object;)Lcom/google/gson/TypeAdapterFactory; │ + invoke-static {v1, v0}, Lcom/google/gson/internal/bind/TreeTypeAdapter;->newFactory(Lcom/google/gson/reflect/TypeToken;Ljava/lang/Object;)Lcom/google/gson/TypeAdapterFactory; │ │ move-result-object v1 │ │ invoke-interface {p4, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ - .line 564 │ + .line 588 │ const-class v1, Ljava/sql/Date; │ │ invoke-static {v1}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/Class;)Lcom/google/gson/reflect/TypeToken; │ │ move-result-object v1 │ │ - invoke-static {v1, v0}, Lcom/google/gson/TreeTypeAdapter;->newFactory(Lcom/google/gson/reflect/TypeToken;Ljava/lang/Object;)Lcom/google/gson/TypeAdapterFactory; │ + invoke-static {v1, v0}, Lcom/google/gson/internal/bind/TreeTypeAdapter;->newFactory(Lcom/google/gson/reflect/TypeToken;Ljava/lang/Object;)Lcom/google/gson/TypeAdapterFactory; │ │ move-result-object v1 │ │ invoke-interface {p4, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ - .line 565 │ + .line 589 │ .end local v0 # "dateTypeAdapter":Lcom/google/gson/DefaultDateTypeAdapter; │ :cond_0 │ return-void │ │ - .line 556 │ + .line 580 │ :cond_1 │ if-eq p2, v3, :cond_0 │ │ if-eq p3, v3, :cond_0 │ │ - .line 557 │ + .line 581 │ new-instance v0, Lcom/google/gson/DefaultDateTypeAdapter; │ │ invoke-direct {v0, p2, p3}, Lcom/google/gson/DefaultDateTypeAdapter;->(II)V │ │ .restart local v0 # "dateTypeAdapter":Lcom/google/gson/DefaultDateTypeAdapter; │ goto :goto_0 │ .end method │ @@ -229,86 +251,86 @@ │ │ # virtual methods │ .method public addDeserializationExclusionStrategy(Lcom/google/gson/ExclusionStrategy;)Lcom/google/gson/GsonBuilder; │ .locals 3 │ .param p1, "strategy" # Lcom/google/gson/ExclusionStrategy; │ │ .prologue │ - .line 339 │ + .line 350 │ iget-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder; │ │ const/4 v1, 0x0 │ │ const/4 v2, 0x1 │ │ invoke-virtual {v0, p1, v1, v2}, Lcom/google/gson/internal/Excluder;->withExclusionStrategy(Lcom/google/gson/ExclusionStrategy;ZZ)Lcom/google/gson/internal/Excluder; │ │ move-result-object v0 │ │ iput-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder; │ │ - .line 340 │ + .line 351 │ return-object p0 │ .end method │ │ .method public addSerializationExclusionStrategy(Lcom/google/gson/ExclusionStrategy;)Lcom/google/gson/GsonBuilder; │ .locals 3 │ .param p1, "strategy" # Lcom/google/gson/ExclusionStrategy; │ │ .prologue │ - .line 322 │ + .line 333 │ iget-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder; │ │ const/4 v1, 0x1 │ │ const/4 v2, 0x0 │ │ invoke-virtual {v0, p1, v1, v2}, Lcom/google/gson/internal/Excluder;->withExclusionStrategy(Lcom/google/gson/ExclusionStrategy;ZZ)Lcom/google/gson/internal/Excluder; │ │ move-result-object v0 │ │ iput-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder; │ │ - .line 323 │ + .line 334 │ return-object p0 │ .end method │ │ .method public create()Lcom/google/gson/Gson; │ - .locals 12 │ + .locals 13 │ │ .prologue │ - .line 539 │ - new-instance v11, Ljava/util/ArrayList; │ + .line 563 │ + new-instance v12, Ljava/util/ArrayList; │ │ - invoke-direct {v11}, Ljava/util/ArrayList;->()V │ + invoke-direct {v12}, Ljava/util/ArrayList;->()V │ │ - .line 540 │ - .local v11, "factories":Ljava/util/List;, "Ljava/util/List;" │ + .line 564 │ + .local v12, "factories":Ljava/util/List;, "Ljava/util/List;" │ iget-object v0, p0, Lcom/google/gson/GsonBuilder;->factories:Ljava/util/List; │ │ - invoke-interface {v11, v0}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z │ + invoke-interface {v12, v0}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z │ │ - .line 541 │ - invoke-static {v11}, Ljava/util/Collections;->reverse(Ljava/util/List;)V │ + .line 565 │ + invoke-static {v12}, Ljava/util/Collections;->reverse(Ljava/util/List;)V │ │ - .line 542 │ + .line 566 │ iget-object v0, p0, Lcom/google/gson/GsonBuilder;->hierarchyFactories:Ljava/util/List; │ │ - invoke-interface {v11, v0}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z │ + invoke-interface {v12, v0}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z │ │ - .line 543 │ + .line 567 │ iget-object v0, p0, Lcom/google/gson/GsonBuilder;->datePattern:Ljava/lang/String; │ │ iget v1, p0, Lcom/google/gson/GsonBuilder;->dateStyle:I │ │ iget v2, p0, Lcom/google/gson/GsonBuilder;->timeStyle:I │ │ - invoke-direct {p0, v0, v1, v2, v11}, Lcom/google/gson/GsonBuilder;->addTypeAdaptersForDate(Ljava/lang/String;IILjava/util/List;)V │ + invoke-direct {p0, v0, v1, v2, v12}, Lcom/google/gson/GsonBuilder;->addTypeAdaptersForDate(Ljava/lang/String;IILjava/util/List;)V │ │ - .line 545 │ + .line 569 │ new-instance v0, Lcom/google/gson/Gson; │ │ iget-object v1, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder; │ │ iget-object v2, p0, Lcom/google/gson/GsonBuilder;->fieldNamingPolicy:Lcom/google/gson/FieldNamingStrategy; │ │ iget-object v3, p0, Lcom/google/gson/GsonBuilder;->instanceCreators:Ljava/util/Map; │ @@ -319,121 +341,123 @@ │ │ iget-boolean v6, p0, Lcom/google/gson/GsonBuilder;->generateNonExecutableJson:Z │ │ iget-boolean v7, p0, Lcom/google/gson/GsonBuilder;->escapeHtmlChars:Z │ │ iget-boolean v8, p0, Lcom/google/gson/GsonBuilder;->prettyPrinting:Z │ │ - iget-boolean v9, p0, Lcom/google/gson/GsonBuilder;->serializeSpecialFloatingPointValues:Z │ + iget-boolean v9, p0, Lcom/google/gson/GsonBuilder;->lenient:Z │ │ - iget-object v10, p0, Lcom/google/gson/GsonBuilder;->longSerializationPolicy:Lcom/google/gson/LongSerializationPolicy; │ + iget-boolean v10, p0, Lcom/google/gson/GsonBuilder;->serializeSpecialFloatingPointValues:Z │ │ - invoke-direct/range {v0 .. v11}, Lcom/google/gson/Gson;->(Lcom/google/gson/internal/Excluder;Lcom/google/gson/FieldNamingStrategy;Ljava/util/Map;ZZZZZZLcom/google/gson/LongSerializationPolicy;Ljava/util/List;)V │ + iget-object v11, p0, Lcom/google/gson/GsonBuilder;->longSerializationPolicy:Lcom/google/gson/LongSerializationPolicy; │ + │ + invoke-direct/range {v0 .. v12}, Lcom/google/gson/Gson;->(Lcom/google/gson/internal/Excluder;Lcom/google/gson/FieldNamingStrategy;Ljava/util/Map;ZZZZZZZLcom/google/gson/LongSerializationPolicy;Ljava/util/List;)V │ │ return-object v0 │ .end method │ │ .method public disableHtmlEscaping()Lcom/google/gson/GsonBuilder; │ .locals 1 │ │ .prologue │ - .line 362 │ + .line 386 │ const/4 v0, 0x0 │ │ iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->escapeHtmlChars:Z │ │ - .line 363 │ + .line 387 │ return-object p0 │ .end method │ │ .method public disableInnerClassSerialization()Lcom/google/gson/GsonBuilder; │ .locals 1 │ │ .prologue │ - .line 249 │ + .line 260 │ iget-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder; │ │ invoke-virtual {v0}, Lcom/google/gson/internal/Excluder;->disableInnerClassSerialization()Lcom/google/gson/internal/Excluder; │ │ move-result-object v0 │ │ iput-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder; │ │ - .line 250 │ + .line 261 │ return-object p0 │ .end method │ │ .method public enableComplexMapKeySerialization()Lcom/google/gson/GsonBuilder; │ .locals 1 │ │ .prologue │ - .line 238 │ + .line 249 │ const/4 v0, 0x1 │ │ iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->complexMapKeySerialization:Z │ │ - .line 239 │ + .line 250 │ return-object p0 │ .end method │ │ .method public varargs excludeFieldsWithModifiers([I)Lcom/google/gson/GsonBuilder; │ .locals 1 │ .param p1, "modifiers" # [I │ │ .prologue │ - .line 120 │ + .line 131 │ iget-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder; │ │ invoke-virtual {v0, p1}, Lcom/google/gson/internal/Excluder;->withModifiers([I)Lcom/google/gson/internal/Excluder; │ │ move-result-object v0 │ │ iput-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder; │ │ - .line 121 │ + .line 132 │ return-object p0 │ .end method │ │ .method public excludeFieldsWithoutExposeAnnotation()Lcom/google/gson/GsonBuilder; │ .locals 1 │ │ .prologue │ - .line 145 │ + .line 156 │ iget-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder; │ │ invoke-virtual {v0}, Lcom/google/gson/internal/Excluder;->excludeFieldsWithoutExposeAnnotation()Lcom/google/gson/internal/Excluder; │ │ move-result-object v0 │ │ iput-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder; │ │ - .line 146 │ + .line 157 │ return-object p0 │ .end method │ │ .method public generateNonExecutableJson()Lcom/google/gson/GsonBuilder; │ .locals 1 │ │ .prologue │ - .line 134 │ + .line 145 │ const/4 v0, 0x1 │ │ iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->generateNonExecutableJson:Z │ │ - .line 135 │ + .line 146 │ return-object p0 │ .end method │ │ .method public registerTypeAdapter(Ljava/lang/reflect/Type;Ljava/lang/Object;)Lcom/google/gson/GsonBuilder; │ .locals 3 │ .param p1, "type" # Ljava/lang/reflect/Type; │ .param p2, "typeAdapter" # Ljava/lang/Object; │ │ .prologue │ - .line 448 │ + .line 472 │ instance-of v1, p2, Lcom/google/gson/JsonSerializer; │ │ if-nez v1, :cond_0 │ │ instance-of v1, p2, Lcom/google/gson/JsonDeserializer; │ │ if-nez v1, :cond_0 │ @@ -448,62 +472,62 @@ │ │ :cond_0 │ const/4 v1, 0x1 │ │ :goto_0 │ invoke-static {v1}, Lcom/google/gson/internal/$Gson$Preconditions;->checkArgument(Z)V │ │ - .line 452 │ + .line 476 │ instance-of v1, p2, Lcom/google/gson/InstanceCreator; │ │ if-eqz v1, :cond_1 │ │ - .line 453 │ + .line 477 │ iget-object v2, p0, Lcom/google/gson/GsonBuilder;->instanceCreators:Ljava/util/Map; │ │ move-object v1, p2 │ │ check-cast v1, Lcom/google/gson/InstanceCreator; │ │ invoke-interface {v2, p1, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ - .line 455 │ + .line 479 │ :cond_1 │ instance-of v1, p2, Lcom/google/gson/JsonSerializer; │ │ if-nez v1, :cond_2 │ │ instance-of v1, p2, Lcom/google/gson/JsonDeserializer; │ │ if-eqz v1, :cond_3 │ │ - .line 456 │ + .line 480 │ :cond_2 │ invoke-static {p1}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken; │ │ move-result-object v0 │ │ - .line 457 │ + .line 481 │ .local v0, "typeToken":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken<*>;" │ iget-object v1, p0, Lcom/google/gson/GsonBuilder;->factories:Ljava/util/List; │ │ - invoke-static {v0, p2}, Lcom/google/gson/TreeTypeAdapter;->newFactoryWithMatchRawType(Lcom/google/gson/reflect/TypeToken;Ljava/lang/Object;)Lcom/google/gson/TypeAdapterFactory; │ + invoke-static {v0, p2}, Lcom/google/gson/internal/bind/TreeTypeAdapter;->newFactoryWithMatchRawType(Lcom/google/gson/reflect/TypeToken;Ljava/lang/Object;)Lcom/google/gson/TypeAdapterFactory; │ │ move-result-object v2 │ │ invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ - .line 459 │ + .line 483 │ .end local v0 # "typeToken":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken<*>;" │ :cond_3 │ instance-of v1, p2, Lcom/google/gson/TypeAdapter; │ │ if-eqz v1, :cond_4 │ │ - .line 460 │ + .line 484 │ iget-object v1, p0, Lcom/google/gson/GsonBuilder;->factories:Ljava/util/List; │ │ invoke-static {p1}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken; │ │ move-result-object v2 │ │ check-cast p2, Lcom/google/gson/TypeAdapter; │ @@ -511,37 +535,37 @@ │ .end local p2 # "typeAdapter":Ljava/lang/Object; │ invoke-static {v2, p2}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Lcom/google/gson/reflect/TypeToken;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ │ move-result-object v2 │ │ invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ - .line 462 │ + .line 486 │ :cond_4 │ return-object p0 │ │ - .line 448 │ + .line 472 │ .restart local p2 # "typeAdapter":Ljava/lang/Object; │ :cond_5 │ const/4 v1, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public registerTypeAdapterFactory(Lcom/google/gson/TypeAdapterFactory;)Lcom/google/gson/GsonBuilder; │ .locals 1 │ .param p1, "factory" # Lcom/google/gson/TypeAdapterFactory; │ │ .prologue │ - .line 474 │ + .line 498 │ iget-object v0, p0, Lcom/google/gson/GsonBuilder;->factories:Ljava/util/List; │ │ invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ - .line 475 │ + .line 499 │ return-object p0 │ .end method │ │ .method public registerTypeHierarchyAdapter(Ljava/lang/Class;Ljava/lang/Object;)Lcom/google/gson/GsonBuilder; │ .locals 3 │ .param p2, "typeAdapter" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Signature; │ @@ -555,15 +579,15 @@ │ } │ .end annotation │ │ .prologue │ .local p1, "baseType":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ const/4 v1, 0x0 │ │ - .line 494 │ + .line 518 │ instance-of v0, p2, Lcom/google/gson/JsonSerializer; │ │ if-nez v0, :cond_0 │ │ instance-of v0, p2, Lcom/google/gson/JsonDeserializer; │ │ if-nez v0, :cond_0 │ @@ -574,241 +598,251 @@ │ │ :cond_0 │ const/4 v0, 0x1 │ │ :goto_0 │ invoke-static {v0}, Lcom/google/gson/internal/$Gson$Preconditions;->checkArgument(Z)V │ │ - .line 497 │ + .line 521 │ instance-of v0, p2, Lcom/google/gson/JsonDeserializer; │ │ if-nez v0, :cond_1 │ │ instance-of v0, p2, Lcom/google/gson/JsonSerializer; │ │ if-eqz v0, :cond_2 │ │ - .line 498 │ + .line 522 │ :cond_1 │ iget-object v0, p0, Lcom/google/gson/GsonBuilder;->hierarchyFactories:Ljava/util/List; │ │ - invoke-static {p1, p2}, Lcom/google/gson/TreeTypeAdapter;->newTypeHierarchyFactory(Ljava/lang/Class;Ljava/lang/Object;)Lcom/google/gson/TypeAdapterFactory; │ + .line 523 │ + invoke-static {p1, p2}, Lcom/google/gson/internal/bind/TreeTypeAdapter;->newTypeHierarchyFactory(Ljava/lang/Class;Ljava/lang/Object;)Lcom/google/gson/TypeAdapterFactory; │ │ move-result-object v2 │ │ + .line 522 │ invoke-interface {v0, v1, v2}, Ljava/util/List;->add(ILjava/lang/Object;)V │ │ - .line 501 │ + .line 525 │ :cond_2 │ instance-of v0, p2, Lcom/google/gson/TypeAdapter; │ │ if-eqz v0, :cond_3 │ │ - .line 502 │ + .line 526 │ iget-object v0, p0, Lcom/google/gson/GsonBuilder;->factories:Ljava/util/List; │ │ check-cast p2, Lcom/google/gson/TypeAdapter; │ │ .end local p2 # "typeAdapter":Ljava/lang/Object; │ invoke-static {p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters;->newTypeHierarchyFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ │ move-result-object v1 │ │ invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ - .line 504 │ + .line 528 │ :cond_3 │ return-object p0 │ │ .restart local p2 # "typeAdapter":Ljava/lang/Object; │ :cond_4 │ move v0, v1 │ │ - .line 494 │ + .line 518 │ goto :goto_0 │ .end method │ │ .method public serializeNulls()Lcom/google/gson/GsonBuilder; │ .locals 1 │ │ .prologue │ - .line 157 │ + .line 168 │ const/4 v0, 0x1 │ │ iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->serializeNulls:Z │ │ - .line 158 │ + .line 169 │ return-object p0 │ .end method │ │ .method public serializeSpecialFloatingPointValues()Lcom/google/gson/GsonBuilder; │ .locals 1 │ │ .prologue │ - .line 528 │ + .line 552 │ const/4 v0, 0x1 │ │ iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->serializeSpecialFloatingPointValues:Z │ │ - .line 529 │ + .line 553 │ return-object p0 │ .end method │ │ .method public setDateFormat(I)Lcom/google/gson/GsonBuilder; │ .locals 1 │ .param p1, "style" # I │ │ .prologue │ - .line 403 │ + .line 427 │ iput p1, p0, Lcom/google/gson/GsonBuilder;->dateStyle:I │ │ - .line 404 │ + .line 428 │ const/4 v0, 0x0 │ │ iput-object v0, p0, Lcom/google/gson/GsonBuilder;->datePattern:Ljava/lang/String; │ │ - .line 405 │ + .line 429 │ return-object p0 │ .end method │ │ .method public setDateFormat(II)Lcom/google/gson/GsonBuilder; │ .locals 1 │ .param p1, "dateStyle" # I │ .param p2, "timeStyle" # I │ │ .prologue │ - .line 424 │ + .line 448 │ iput p1, p0, Lcom/google/gson/GsonBuilder;->dateStyle:I │ │ - .line 425 │ + .line 449 │ iput p2, p0, Lcom/google/gson/GsonBuilder;->timeStyle:I │ │ - .line 426 │ + .line 450 │ const/4 v0, 0x0 │ │ iput-object v0, p0, Lcom/google/gson/GsonBuilder;->datePattern:Ljava/lang/String; │ │ - .line 427 │ + .line 451 │ return-object p0 │ .end method │ │ .method public setDateFormat(Ljava/lang/String;)Lcom/google/gson/GsonBuilder; │ .locals 0 │ .param p1, "pattern" # Ljava/lang/String; │ │ .prologue │ - .line 384 │ + .line 408 │ iput-object p1, p0, Lcom/google/gson/GsonBuilder;->datePattern:Ljava/lang/String; │ │ - .line 385 │ + .line 409 │ return-object p0 │ .end method │ │ .method public varargs setExclusionStrategies([Lcom/google/gson/ExclusionStrategy;)Lcom/google/gson/GsonBuilder; │ - .locals 6 │ + .locals 5 │ .param p1, "strategies" # [Lcom/google/gson/ExclusionStrategy; │ │ .prologue │ - const/4 v5, 0x1 │ + const/4 v4, 0x1 │ │ - .line 303 │ - move-object v0, p1 │ + .line 314 │ + array-length v2, p1 │ │ - .local v0, "arr$":[Lcom/google/gson/ExclusionStrategy; │ - array-length v2, v0 │ - │ - .local v2, "len$":I │ const/4 v1, 0x0 │ │ - .local v1, "i$":I │ :goto_0 │ if-ge v1, v2, :cond_0 │ │ - aget-object v3, v0, v1 │ + aget-object v0, p1, v1 │ │ - .line 304 │ - .local v3, "strategy":Lcom/google/gson/ExclusionStrategy; │ - iget-object v4, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder; │ + .line 315 │ + .local v0, "strategy":Lcom/google/gson/ExclusionStrategy; │ + iget-object v3, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder; │ │ - invoke-virtual {v4, v3, v5, v5}, Lcom/google/gson/internal/Excluder;->withExclusionStrategy(Lcom/google/gson/ExclusionStrategy;ZZ)Lcom/google/gson/internal/Excluder; │ + invoke-virtual {v3, v0, v4, v4}, Lcom/google/gson/internal/Excluder;->withExclusionStrategy(Lcom/google/gson/ExclusionStrategy;ZZ)Lcom/google/gson/internal/Excluder; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - iput-object v4, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder; │ + iput-object v3, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder; │ │ - .line 303 │ + .line 314 │ add-int/lit8 v1, v1, 0x1 │ │ goto :goto_0 │ │ - .line 306 │ - .end local v3 # "strategy":Lcom/google/gson/ExclusionStrategy; │ + .line 317 │ + .end local v0 # "strategy":Lcom/google/gson/ExclusionStrategy; │ :cond_0 │ return-object p0 │ .end method │ │ .method public setFieldNamingPolicy(Lcom/google/gson/FieldNamingPolicy;)Lcom/google/gson/GsonBuilder; │ .locals 0 │ .param p1, "namingConvention" # Lcom/google/gson/FieldNamingPolicy; │ │ .prologue │ - .line 275 │ + .line 286 │ iput-object p1, p0, Lcom/google/gson/GsonBuilder;->fieldNamingPolicy:Lcom/google/gson/FieldNamingStrategy; │ │ - .line 276 │ + .line 287 │ return-object p0 │ .end method │ │ .method public setFieldNamingStrategy(Lcom/google/gson/FieldNamingStrategy;)Lcom/google/gson/GsonBuilder; │ .locals 0 │ .param p1, "fieldNamingStrategy" # Lcom/google/gson/FieldNamingStrategy; │ │ .prologue │ - .line 288 │ + .line 299 │ iput-object p1, p0, Lcom/google/gson/GsonBuilder;->fieldNamingPolicy:Lcom/google/gson/FieldNamingStrategy; │ │ - .line 289 │ + .line 300 │ + return-object p0 │ +.end method │ + │ +.method public setLenient()Lcom/google/gson/GsonBuilder; │ + .locals 1 │ + │ + .prologue │ + .line 374 │ + const/4 v0, 0x1 │ + │ + iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->lenient:Z │ + │ + .line 375 │ return-object p0 │ .end method │ │ .method public setLongSerializationPolicy(Lcom/google/gson/LongSerializationPolicy;)Lcom/google/gson/GsonBuilder; │ .locals 0 │ .param p1, "serializationPolicy" # Lcom/google/gson/LongSerializationPolicy; │ │ .prologue │ - .line 262 │ + .line 273 │ iput-object p1, p0, Lcom/google/gson/GsonBuilder;->longSerializationPolicy:Lcom/google/gson/LongSerializationPolicy; │ │ - .line 263 │ + .line 274 │ return-object p0 │ .end method │ │ .method public setPrettyPrinting()Lcom/google/gson/GsonBuilder; │ .locals 1 │ │ .prologue │ - .line 350 │ + .line 361 │ const/4 v0, 0x1 │ │ iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->prettyPrinting:Z │ │ - .line 351 │ + .line 362 │ return-object p0 │ .end method │ │ .method public setVersion(D)Lcom/google/gson/GsonBuilder; │ .locals 1 │ .param p1, "ignoreVersionsAfter" # D │ │ .prologue │ - .line 104 │ + .line 115 │ iget-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder; │ │ invoke-virtual {v0, p1, p2}, Lcom/google/gson/internal/Excluder;->withVersion(D)Lcom/google/gson/internal/Excluder; │ │ move-result-object v0 │ │ iput-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder; │ │ - .line 105 │ + .line 116 │ return-object p0 │ .end method ├── smali/com/google/gson/Gson$4.smali │ @@ -1,166 +1,144 @@ │ -.class Lcom/google/gson/Gson$4; │ +.class final Lcom/google/gson/Gson$4; │ .super Lcom/google/gson/TypeAdapter; │ .source "Gson.java" │ │ │ # annotations │ .annotation system Ldalvik/annotation/EnclosingMethod; │ - value = Lcom/google/gson/Gson;->floatAdapter(Z)Lcom/google/gson/TypeAdapter; │ + value = Lcom/google/gson/Gson;->longAdapter(Lcom/google/gson/LongSerializationPolicy;)Lcom/google/gson/TypeAdapter; │ .end annotation │ │ .annotation system Ldalvik/annotation/InnerClass; │ - accessFlags = 0x0 │ + accessFlags = 0x8 │ name = null │ .end annotation │ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Lcom/google/gson/TypeAdapter", │ "<", │ "Ljava/lang/Number;", │ ">;" │ } │ .end annotation │ │ │ -# instance fields │ -.field final synthetic this$0:Lcom/google/gson/Gson; │ - │ - │ # direct methods │ -.method constructor (Lcom/google/gson/Gson;)V │ +.method constructor ()V │ .locals 0 │ │ .prologue │ - .line 277 │ - iput-object p1, p0, Lcom/google/gson/Gson$4;->this$0:Lcom/google/gson/Gson; │ - │ + .line 334 │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ -.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Float; │ +.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Number; │ .locals 2 │ .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 279 │ + .line 336 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v0 │ │ sget-object v1, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ if-ne v0, v1, :cond_0 │ │ - .line 280 │ + .line 337 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ │ - .line 281 │ + .line 338 │ const/4 v0, 0x0 │ │ - .line 283 │ + .line 340 │ :goto_0 │ return-object v0 │ │ :cond_0 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextDouble()D │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextLong()J │ │ move-result-wide v0 │ │ - double-to-float v0, v0 │ - │ - invoke-static {v0}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float; │ + invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ │ move-result-object v0 │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 277 │ - invoke-virtual {p0, p1}, Lcom/google/gson/Gson$4;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Float; │ + .line 334 │ + invoke-virtual {p0, p1}, Lcom/google/gson/Gson$4;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Number; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Number;)V │ - .locals 4 │ + .locals 1 │ .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ .param p2, "value" # Ljava/lang/Number; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 286 │ + .line 343 │ if-nez p2, :cond_0 │ │ - .line 287 │ + .line 344 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->nullValue()Lcom/google/gson/stream/JsonWriter; │ │ - .line 293 │ + .line 348 │ :goto_0 │ return-void │ │ - .line 290 │ + .line 347 │ :cond_0 │ - invoke-virtual {p2}, Ljava/lang/Number;->floatValue()F │ + invoke-virtual {p2}, Ljava/lang/Object;->toString()Ljava/lang/String; │ │ - move-result v0 │ - │ - .line 291 │ - .local v0, "floatValue":F │ - iget-object v1, p0, Lcom/google/gson/Gson$4;->this$0:Lcom/google/gson/Gson; │ - │ - float-to-double v2, v0 │ - │ - # invokes: Lcom/google/gson/Gson;->checkValidFloatingPoint(D)V │ - invoke-static {v1, v2, v3}, Lcom/google/gson/Gson;->access$000(Lcom/google/gson/Gson;D)V │ + move-result-object v0 │ │ - .line 292 │ - invoke-virtual {p1, p2}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/Number;)Lcom/google/gson/stream/JsonWriter; │ + invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 277 │ + .line 334 │ check-cast p2, Ljava/lang/Number; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ invoke-virtual {p0, p1, p2}, Lcom/google/gson/Gson$4;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Number;)V │ │ return-void │ .end method ├── smali/com/google/gson/JsonArray.smali │ @@ -53,106 +53,213 @@ │ │ # virtual methods │ .method public add(Lcom/google/gson/JsonElement;)V │ .locals 1 │ .param p1, "element" # Lcom/google/gson/JsonElement; │ │ .prologue │ - .line 58 │ + .line 94 │ if-nez p1, :cond_0 │ │ - .line 59 │ + .line 95 │ sget-object p1, Lcom/google/gson/JsonNull;->INSTANCE:Lcom/google/gson/JsonNull; │ │ - .line 61 │ + .line 97 │ :cond_0 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ - .line 62 │ + .line 98 │ + return-void │ +.end method │ + │ +.method public add(Ljava/lang/Boolean;)V │ + .locals 2 │ + .param p1, "bool" # Ljava/lang/Boolean; │ + │ + .prologue │ + .line 58 │ + iget-object v1, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ + │ + if-nez p1, :cond_0 │ + │ + sget-object v0, Lcom/google/gson/JsonNull;->INSTANCE:Lcom/google/gson/JsonNull; │ + │ + :goto_0 │ + invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + │ + .line 59 │ + return-void │ + │ + .line 58 │ + :cond_0 │ + new-instance v0, Lcom/google/gson/JsonPrimitive; │ + │ + invoke-direct {v0, p1}, Lcom/google/gson/JsonPrimitive;->(Ljava/lang/Boolean;)V │ + │ + goto :goto_0 │ +.end method │ + │ +.method public add(Ljava/lang/Character;)V │ + .locals 2 │ + .param p1, "character" # Ljava/lang/Character; │ + │ + .prologue │ + .line 67 │ + iget-object v1, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ + │ + if-nez p1, :cond_0 │ + │ + sget-object v0, Lcom/google/gson/JsonNull;->INSTANCE:Lcom/google/gson/JsonNull; │ + │ + :goto_0 │ + invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + │ + .line 68 │ return-void │ + │ + .line 67 │ + :cond_0 │ + new-instance v0, Lcom/google/gson/JsonPrimitive; │ + │ + invoke-direct {v0, p1}, Lcom/google/gson/JsonPrimitive;->(Ljava/lang/Character;)V │ + │ + goto :goto_0 │ +.end method │ + │ +.method public add(Ljava/lang/Number;)V │ + .locals 2 │ + .param p1, "number" # Ljava/lang/Number; │ + │ + .prologue │ + .line 76 │ + iget-object v1, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ + │ + if-nez p1, :cond_0 │ + │ + sget-object v0, Lcom/google/gson/JsonNull;->INSTANCE:Lcom/google/gson/JsonNull; │ + │ + :goto_0 │ + invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + │ + .line 77 │ + return-void │ + │ + .line 76 │ + :cond_0 │ + new-instance v0, Lcom/google/gson/JsonPrimitive; │ + │ + invoke-direct {v0, p1}, Lcom/google/gson/JsonPrimitive;->(Ljava/lang/Number;)V │ + │ + goto :goto_0 │ +.end method │ + │ +.method public add(Ljava/lang/String;)V │ + .locals 2 │ + .param p1, "string" # Ljava/lang/String; │ + │ + .prologue │ + .line 85 │ + iget-object v1, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ + │ + if-nez p1, :cond_0 │ + │ + sget-object v0, Lcom/google/gson/JsonNull;->INSTANCE:Lcom/google/gson/JsonNull; │ + │ + :goto_0 │ + invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + │ + .line 86 │ + return-void │ + │ + .line 85 │ + :cond_0 │ + new-instance v0, Lcom/google/gson/JsonPrimitive; │ + │ + invoke-direct {v0, p1}, Lcom/google/gson/JsonPrimitive;->(Ljava/lang/String;)V │ + │ + goto :goto_0 │ .end method │ │ .method public addAll(Lcom/google/gson/JsonArray;)V │ .locals 2 │ .param p1, "array" # Lcom/google/gson/JsonArray; │ │ .prologue │ - .line 70 │ + .line 106 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ iget-object v1, p1, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ invoke-interface {v0, v1}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z │ │ - .line 71 │ + .line 107 │ return-void │ .end method │ │ .method public contains(Lcom/google/gson/JsonElement;)Z │ .locals 1 │ .param p1, "element" # Lcom/google/gson/JsonElement; │ │ .prologue │ - .line 116 │ + .line 152 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ invoke-interface {v0, p1}, Ljava/util/List;->contains(Ljava/lang/Object;)Z │ │ move-result v0 │ │ return v0 │ .end method │ │ .method deepCopy()Lcom/google/gson/JsonArray; │ .locals 4 │ │ .prologue │ .line 45 │ - new-instance v2, Lcom/google/gson/JsonArray; │ + new-instance v1, Lcom/google/gson/JsonArray; │ │ - invoke-direct {v2}, Lcom/google/gson/JsonArray;->()V │ + invoke-direct {v1}, Lcom/google/gson/JsonArray;->()V │ │ .line 46 │ - .local v2, "result":Lcom/google/gson/JsonArray; │ - iget-object v3, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ + .local v1, "result":Lcom/google/gson/JsonArray; │ + iget-object v2, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ - invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v1 │ + move-result-object v2 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v3 │ │ if-eqz v3, :cond_0 │ │ - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lcom/google/gson/JsonElement; │ │ .line 47 │ .local v0, "element":Lcom/google/gson/JsonElement; │ invoke-virtual {v0}, Lcom/google/gson/JsonElement;->deepCopy()Lcom/google/gson/JsonElement; │ │ move-result-object v3 │ │ - invoke-virtual {v2, v3}, Lcom/google/gson/JsonArray;->add(Lcom/google/gson/JsonElement;)V │ + invoke-virtual {v1, v3}, Lcom/google/gson/JsonArray;->add(Lcom/google/gson/JsonElement;)V │ │ goto :goto_0 │ │ .line 49 │ .end local v0 # "element":Lcom/google/gson/JsonElement; │ :cond_0 │ - return-object v2 │ + return-object v1 │ .end method │ │ .method bridge synthetic deepCopy()Lcom/google/gson/JsonElement; │ .locals 1 │ │ .prologue │ .line 33 │ @@ -164,29 +271,29 @@ │ .end method │ │ .method public equals(Ljava/lang/Object;)Z │ .locals 2 │ .param p1, "o" # Ljava/lang/Object; │ │ .prologue │ - .line 330 │ + .line 366 │ if-eq p1, p0, :cond_0 │ │ instance-of v0, p1, Lcom/google/gson/JsonArray; │ │ if-eqz v0, :cond_1 │ │ check-cast p1, Lcom/google/gson/JsonArray; │ │ .end local p1 # "o":Ljava/lang/Object; │ iget-object v0, p1, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ iget-object v1, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ - invoke-virtual {v0, v1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z │ + invoke-interface {v0, v1}, Ljava/util/List;->equals(Ljava/lang/Object;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ :cond_0 │ const/4 v0, 0x1 │ @@ -201,15 +308,15 @@ │ .end method │ │ .method public get(I)Lcom/google/gson/JsonElement; │ .locals 1 │ .param p1, "i" # I │ │ .prologue │ - .line 147 │ + .line 183 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ invoke-interface {v0, p1}, Ljava/util/List;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lcom/google/gson/JsonElement; │ @@ -217,26 +324,26 @@ │ return-object v0 │ .end method │ │ .method public getAsBigDecimal()Ljava/math/BigDecimal; │ .locals 2 │ │ .prologue │ - .line 209 │ + .line 245 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ invoke-interface {v0}, Ljava/util/List;->size()I │ │ move-result v0 │ │ const/4 v1, 0x1 │ │ if-ne v0, v1, :cond_0 │ │ - .line 210 │ + .line 246 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ const/4 v1, 0x0 │ │ invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ @@ -245,39 +352,39 @@ │ │ invoke-virtual {v0}, Lcom/google/gson/JsonElement;->getAsBigDecimal()Ljava/math/BigDecimal; │ │ move-result-object v0 │ │ return-object v0 │ │ - .line 212 │ + .line 248 │ :cond_0 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ invoke-direct {v0}, Ljava/lang/IllegalStateException;->()V │ │ throw v0 │ .end method │ │ .method public getAsBigInteger()Ljava/math/BigInteger; │ .locals 2 │ │ .prologue │ - .line 226 │ + .line 262 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ invoke-interface {v0}, Ljava/util/List;->size()I │ │ move-result v0 │ │ const/4 v1, 0x1 │ │ if-ne v0, v1, :cond_0 │ │ - .line 227 │ + .line 263 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ const/4 v1, 0x0 │ │ invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ @@ -286,39 +393,39 @@ │ │ invoke-virtual {v0}, Lcom/google/gson/JsonElement;->getAsBigInteger()Ljava/math/BigInteger; │ │ move-result-object v0 │ │ return-object v0 │ │ - .line 229 │ + .line 265 │ :cond_0 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ invoke-direct {v0}, Ljava/lang/IllegalStateException;->()V │ │ throw v0 │ .end method │ │ .method public getAsBoolean()Z │ .locals 2 │ │ .prologue │ - .line 322 │ + .line 358 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ invoke-interface {v0}, Ljava/util/List;->size()I │ │ move-result v0 │ │ const/4 v1, 0x1 │ │ if-ne v0, v1, :cond_0 │ │ - .line 323 │ + .line 359 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ const/4 v1, 0x0 │ │ invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ @@ -327,39 +434,39 @@ │ │ invoke-virtual {v0}, Lcom/google/gson/JsonElement;->getAsBoolean()Z │ │ move-result v0 │ │ return v0 │ │ - .line 325 │ + .line 361 │ :cond_0 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ invoke-direct {v0}, Ljava/lang/IllegalStateException;->()V │ │ throw v0 │ .end method │ │ .method public getAsByte()B │ .locals 2 │ │ .prologue │ - .line 282 │ + .line 318 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ invoke-interface {v0}, Ljava/util/List;->size()I │ │ move-result v0 │ │ const/4 v1, 0x1 │ │ if-ne v0, v1, :cond_0 │ │ - .line 283 │ + .line 319 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ const/4 v1, 0x0 │ │ invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ @@ -368,39 +475,39 @@ │ │ invoke-virtual {v0}, Lcom/google/gson/JsonElement;->getAsByte()B │ │ move-result v0 │ │ return v0 │ │ - .line 285 │ + .line 321 │ :cond_0 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ invoke-direct {v0}, Ljava/lang/IllegalStateException;->()V │ │ throw v0 │ .end method │ │ .method public getAsCharacter()C │ .locals 2 │ │ .prologue │ - .line 290 │ + .line 326 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ invoke-interface {v0}, Ljava/util/List;->size()I │ │ move-result v0 │ │ const/4 v1, 0x1 │ │ if-ne v0, v1, :cond_0 │ │ - .line 291 │ + .line 327 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ const/4 v1, 0x0 │ │ invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ @@ -409,39 +516,39 @@ │ │ invoke-virtual {v0}, Lcom/google/gson/JsonElement;->getAsCharacter()C │ │ move-result v0 │ │ return v0 │ │ - .line 293 │ + .line 329 │ :cond_0 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ invoke-direct {v0}, Ljava/lang/IllegalStateException;->()V │ │ throw v0 │ .end method │ │ .method public getAsDouble()D │ .locals 2 │ │ .prologue │ - .line 192 │ + .line 228 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ invoke-interface {v0}, Ljava/util/List;->size()I │ │ move-result v0 │ │ const/4 v1, 0x1 │ │ if-ne v0, v1, :cond_0 │ │ - .line 193 │ + .line 229 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ const/4 v1, 0x0 │ │ invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ @@ -450,39 +557,39 @@ │ │ invoke-virtual {v0}, Lcom/google/gson/JsonElement;->getAsDouble()D │ │ move-result-wide v0 │ │ return-wide v0 │ │ - .line 195 │ + .line 231 │ :cond_0 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ invoke-direct {v0}, Ljava/lang/IllegalStateException;->()V │ │ throw v0 │ .end method │ │ .method public getAsFloat()F │ .locals 2 │ │ .prologue │ - .line 242 │ + .line 278 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ invoke-interface {v0}, Ljava/util/List;->size()I │ │ move-result v0 │ │ const/4 v1, 0x1 │ │ if-ne v0, v1, :cond_0 │ │ - .line 243 │ + .line 279 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ const/4 v1, 0x0 │ │ invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ @@ -491,39 +598,39 @@ │ │ invoke-virtual {v0}, Lcom/google/gson/JsonElement;->getAsFloat()F │ │ move-result v0 │ │ return v0 │ │ - .line 245 │ + .line 281 │ :cond_0 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ invoke-direct {v0}, Ljava/lang/IllegalStateException;->()V │ │ throw v0 │ .end method │ │ .method public getAsInt()I │ .locals 2 │ │ .prologue │ - .line 274 │ + .line 310 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ invoke-interface {v0}, Ljava/util/List;->size()I │ │ move-result v0 │ │ const/4 v1, 0x1 │ │ if-ne v0, v1, :cond_0 │ │ - .line 275 │ + .line 311 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ const/4 v1, 0x0 │ │ invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ @@ -532,39 +639,39 @@ │ │ invoke-virtual {v0}, Lcom/google/gson/JsonElement;->getAsInt()I │ │ move-result v0 │ │ return v0 │ │ - .line 277 │ + .line 313 │ :cond_0 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ invoke-direct {v0}, Ljava/lang/IllegalStateException;->()V │ │ throw v0 │ .end method │ │ .method public getAsLong()J │ .locals 2 │ │ .prologue │ - .line 258 │ + .line 294 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ invoke-interface {v0}, Ljava/util/List;->size()I │ │ move-result v0 │ │ const/4 v1, 0x1 │ │ if-ne v0, v1, :cond_0 │ │ - .line 259 │ + .line 295 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ const/4 v1, 0x0 │ │ invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ @@ -573,39 +680,39 @@ │ │ invoke-virtual {v0}, Lcom/google/gson/JsonElement;->getAsLong()J │ │ move-result-wide v0 │ │ return-wide v0 │ │ - .line 261 │ + .line 297 │ :cond_0 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ invoke-direct {v0}, Ljava/lang/IllegalStateException;->()V │ │ throw v0 │ .end method │ │ .method public getAsNumber()Ljava/lang/Number; │ .locals 2 │ │ .prologue │ - .line 160 │ + .line 196 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ invoke-interface {v0}, Ljava/util/List;->size()I │ │ move-result v0 │ │ const/4 v1, 0x1 │ │ if-ne v0, v1, :cond_0 │ │ - .line 161 │ + .line 197 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ const/4 v1, 0x0 │ │ invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ @@ -614,39 +721,39 @@ │ │ invoke-virtual {v0}, Lcom/google/gson/JsonElement;->getAsNumber()Ljava/lang/Number; │ │ move-result-object v0 │ │ return-object v0 │ │ - .line 163 │ + .line 199 │ :cond_0 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ invoke-direct {v0}, Ljava/lang/IllegalStateException;->()V │ │ throw v0 │ .end method │ │ .method public getAsShort()S │ .locals 2 │ │ .prologue │ - .line 306 │ + .line 342 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ invoke-interface {v0}, Ljava/util/List;->size()I │ │ move-result v0 │ │ const/4 v1, 0x1 │ │ if-ne v0, v1, :cond_0 │ │ - .line 307 │ + .line 343 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ const/4 v1, 0x0 │ │ invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ @@ -655,39 +762,39 @@ │ │ invoke-virtual {v0}, Lcom/google/gson/JsonElement;->getAsShort()S │ │ move-result v0 │ │ return v0 │ │ - .line 309 │ + .line 345 │ :cond_0 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ invoke-direct {v0}, Ljava/lang/IllegalStateException;->()V │ │ throw v0 │ .end method │ │ .method public getAsString()Ljava/lang/String; │ .locals 2 │ │ .prologue │ - .line 176 │ + .line 212 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ invoke-interface {v0}, Ljava/util/List;->size()I │ │ move-result v0 │ │ const/4 v1, 0x1 │ │ if-ne v0, v1, :cond_0 │ │ - .line 177 │ + .line 213 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ const/4 v1, 0x0 │ │ invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ @@ -696,31 +803,31 @@ │ │ invoke-virtual {v0}, Lcom/google/gson/JsonElement;->getAsString()Ljava/lang/String; │ │ move-result-object v0 │ │ return-object v0 │ │ - .line 179 │ + .line 215 │ :cond_0 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ invoke-direct {v0}, Ljava/lang/IllegalStateException;->()V │ │ throw v0 │ .end method │ │ .method public hashCode()I │ .locals 1 │ │ .prologue │ - .line 335 │ + .line 371 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ - invoke-virtual {v0}, Ljava/lang/Object;->hashCode()I │ + invoke-interface {v0}, Ljava/util/List;->hashCode()I │ │ move-result v0 │ │ return v0 │ .end method │ │ .method public iterator()Ljava/util/Iterator; │ @@ -732,30 +839,30 @@ │ "<", │ "Lcom/google/gson/JsonElement;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 135 │ + .line 171 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public remove(I)Lcom/google/gson/JsonElement; │ .locals 1 │ .param p1, "index" # I │ │ .prologue │ - .line 106 │ + .line 142 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ invoke-interface {v0, p1}, Ljava/util/List;->remove(I)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lcom/google/gson/JsonElement; │ @@ -764,15 +871,15 @@ │ .end method │ │ .method public remove(Lcom/google/gson/JsonElement;)Z │ .locals 1 │ .param p1, "element" # Lcom/google/gson/JsonElement; │ │ .prologue │ - .line 93 │ + .line 129 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ invoke-interface {v0, p1}, Ljava/util/List;->remove(Ljava/lang/Object;)Z │ │ move-result v0 │ │ return v0 │ @@ -780,15 +887,15 @@ │ │ .method public set(ILcom/google/gson/JsonElement;)Lcom/google/gson/JsonElement; │ .locals 1 │ .param p1, "index" # I │ .param p2, "element" # Lcom/google/gson/JsonElement; │ │ .prologue │ - .line 82 │ + .line 118 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ invoke-interface {v0, p1, p2}, Ljava/util/List;->set(ILjava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lcom/google/gson/JsonElement; │ @@ -796,15 +903,15 @@ │ return-object v0 │ .end method │ │ .method public size()I │ .locals 1 │ │ .prologue │ - .line 125 │ + .line 161 │ iget-object v0, p0, Lcom/google/gson/JsonArray;->elements:Ljava/util/List; │ │ invoke-interface {v0}, Ljava/util/List;->size()I │ │ move-result v0 │ │ return v0 ├── smali/com/google/gson/JsonObject.smali │ @@ -161,70 +161,69 @@ │ .end method │ │ .method deepCopy()Lcom/google/gson/JsonObject; │ .locals 5 │ │ .prologue │ .line 38 │ - new-instance v2, Lcom/google/gson/JsonObject; │ + new-instance v1, Lcom/google/gson/JsonObject; │ │ - invoke-direct {v2}, Lcom/google/gson/JsonObject;->()V │ + invoke-direct {v1}, Lcom/google/gson/JsonObject;->()V │ │ .line 39 │ - .local v2, "result":Lcom/google/gson/JsonObject; │ - iget-object v3, p0, Lcom/google/gson/JsonObject;->members:Lcom/google/gson/internal/LinkedTreeMap; │ + .local v1, "result":Lcom/google/gson/JsonObject; │ + iget-object v2, p0, Lcom/google/gson/JsonObject;->members:Lcom/google/gson/internal/LinkedTreeMap; │ │ - invoke-virtual {v3}, Lcom/google/gson/internal/LinkedTreeMap;->entrySet()Ljava/util/Set; │ + invoke-virtual {v2}, Lcom/google/gson/internal/LinkedTreeMap;->entrySet()Ljava/util/Set; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - invoke-interface {v3}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ + invoke-interface {v2}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ │ - move-result-object v1 │ + move-result-object v4 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v3 │ + move-result v2 │ │ - if-eqz v3, :cond_0 │ + if-eqz v2, :cond_0 │ │ - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/util/Map$Entry; │ │ .line 40 │ .local v0, "entry":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry;" │ invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - check-cast v3, Ljava/lang/String; │ + check-cast v2, Ljava/lang/String; │ │ invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - check-cast v4, Lcom/google/gson/JsonElement; │ + check-cast v3, Lcom/google/gson/JsonElement; │ │ - invoke-virtual {v4}, Lcom/google/gson/JsonElement;->deepCopy()Lcom/google/gson/JsonElement; │ + invoke-virtual {v3}, Lcom/google/gson/JsonElement;->deepCopy()Lcom/google/gson/JsonElement; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - invoke-virtual {v2, v3, v4}, Lcom/google/gson/JsonObject;->add(Ljava/lang/String;Lcom/google/gson/JsonElement;)V │ + invoke-virtual {v1, v2, v3}, Lcom/google/gson/JsonObject;->add(Ljava/lang/String;Lcom/google/gson/JsonElement;)V │ │ goto :goto_0 │ │ .line 42 │ .end local v0 # "entry":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry;" │ :cond_0 │ - return-object v2 │ + return-object v1 │ .end method │ │ .method public entrySet()Ljava/util/Set; │ .locals 1 │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "()", │ @@ -250,28 +249,29 @@ │ .end method │ │ .method public equals(Ljava/lang/Object;)Z │ .locals 2 │ .param p1, "o" # Ljava/lang/Object; │ │ .prologue │ - .line 187 │ + .line 196 │ if-eq p1, p0, :cond_0 │ │ instance-of v0, p1, Lcom/google/gson/JsonObject; │ │ if-eqz v0, :cond_1 │ │ check-cast p1, Lcom/google/gson/JsonObject; │ │ .end local p1 # "o":Ljava/lang/Object; │ iget-object v0, p1, Lcom/google/gson/JsonObject;->members:Lcom/google/gson/internal/LinkedTreeMap; │ │ iget-object v1, p0, Lcom/google/gson/JsonObject;->members:Lcom/google/gson/internal/LinkedTreeMap; │ │ + .line 197 │ invoke-virtual {v0, v1}, Lcom/google/gson/internal/LinkedTreeMap;->equals(Ljava/lang/Object;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ :cond_0 │ @@ -287,15 +287,15 @@ │ .end method │ │ .method public get(Ljava/lang/String;)Lcom/google/gson/JsonElement; │ .locals 1 │ .param p1, "memberName" # Ljava/lang/String; │ │ .prologue │ - .line 152 │ + .line 161 │ iget-object v0, p0, Lcom/google/gson/JsonObject;->members:Lcom/google/gson/internal/LinkedTreeMap; │ │ invoke-virtual {v0, p1}, Lcom/google/gson/internal/LinkedTreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lcom/google/gson/JsonElement; │ @@ -304,15 +304,15 @@ │ .end method │ │ .method public getAsJsonArray(Ljava/lang/String;)Lcom/google/gson/JsonArray; │ .locals 1 │ .param p1, "memberName" # Ljava/lang/String; │ │ .prologue │ - .line 172 │ + .line 181 │ iget-object v0, p0, Lcom/google/gson/JsonObject;->members:Lcom/google/gson/internal/LinkedTreeMap; │ │ invoke-virtual {v0, p1}, Lcom/google/gson/internal/LinkedTreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lcom/google/gson/JsonArray; │ @@ -321,15 +321,15 @@ │ .end method │ │ .method public getAsJsonObject(Ljava/lang/String;)Lcom/google/gson/JsonObject; │ .locals 1 │ .param p1, "memberName" # Ljava/lang/String; │ │ .prologue │ - .line 182 │ + .line 191 │ iget-object v0, p0, Lcom/google/gson/JsonObject;->members:Lcom/google/gson/internal/LinkedTreeMap; │ │ invoke-virtual {v0, p1}, Lcom/google/gson/internal/LinkedTreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lcom/google/gson/JsonObject; │ @@ -338,15 +338,15 @@ │ .end method │ │ .method public getAsJsonPrimitive(Ljava/lang/String;)Lcom/google/gson/JsonPrimitive; │ .locals 1 │ .param p1, "memberName" # Ljava/lang/String; │ │ .prologue │ - .line 162 │ + .line 171 │ iget-object v0, p0, Lcom/google/gson/JsonObject;->members:Lcom/google/gson/internal/LinkedTreeMap; │ │ invoke-virtual {v0, p1}, Lcom/google/gson/internal/LinkedTreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lcom/google/gson/JsonPrimitive; │ @@ -355,29 +355,29 @@ │ .end method │ │ .method public has(Ljava/lang/String;)Z │ .locals 1 │ .param p1, "memberName" # Ljava/lang/String; │ │ .prologue │ - .line 142 │ + .line 151 │ iget-object v0, p0, Lcom/google/gson/JsonObject;->members:Lcom/google/gson/internal/LinkedTreeMap; │ │ invoke-virtual {v0, p1}, Lcom/google/gson/internal/LinkedTreeMap;->containsKey(Ljava/lang/Object;)Z │ │ move-result v0 │ │ return v0 │ .end method │ │ .method public hashCode()I │ .locals 1 │ │ .prologue │ - .line 193 │ + .line 202 │ iget-object v0, p0, Lcom/google/gson/JsonObject;->members:Lcom/google/gson/internal/LinkedTreeMap; │ │ invoke-virtual {v0}, Lcom/google/gson/internal/LinkedTreeMap;->hashCode()I │ │ move-result v0 │ │ return v0 │ @@ -395,7 +395,21 @@ │ │ move-result-object v0 │ │ check-cast v0, Lcom/google/gson/JsonElement; │ │ return-object v0 │ .end method │ + │ +.method public size()I │ + .locals 1 │ + │ + .prologue │ + .line 141 │ + iget-object v0, p0, Lcom/google/gson/JsonObject;->members:Lcom/google/gson/internal/LinkedTreeMap; │ + │ + invoke-virtual {v0}, Lcom/google/gson/internal/LinkedTreeMap;->size()I │ + │ + move-result v0 │ + │ + return v0 │ +.end method ├── smali/com/google/gson/JsonPrimitive.smali │ @@ -252,70 +252,69 @@ │ .line 339 │ .end local v0 # "number":Ljava/lang/Number; │ :cond_1 │ return v1 │ .end method │ │ .method private static isPrimitiveOrString(Ljava/lang/Object;)Z │ - .locals 7 │ + .locals 8 │ .param p0, "target" # Ljava/lang/Object; │ │ .prologue │ - const/4 v5, 0x1 │ + const/4 v2, 0x1 │ + │ + const/4 v3, 0x0 │ │ .line 274 │ - instance-of v6, p0, Ljava/lang/String; │ + instance-of v4, p0, Ljava/lang/String; │ │ - if-eqz v6, :cond_1 │ + if-eqz v4, :cond_1 │ │ .line 284 │ :cond_0 │ :goto_0 │ - return v5 │ + return v2 │ │ .line 278 │ :cond_1 │ invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ - move-result-object v1 │ + move-result-object v0 │ │ .line 279 │ - .local v1, "classOfPrimitive":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ - sget-object v0, Lcom/google/gson/JsonPrimitive;->PRIMITIVE_TYPES:[Ljava/lang/Class; │ + .local v0, "classOfPrimitive":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ + sget-object v5, Lcom/google/gson/JsonPrimitive;->PRIMITIVE_TYPES:[Ljava/lang/Class; │ │ - .local v0, "arr$":[Ljava/lang/Class; │ - array-length v3, v0 │ + array-length v6, v5 │ │ - .local v3, "len$":I │ - const/4 v2, 0x0 │ + move v4, v3 │ │ - .local v2, "i$":I │ :goto_1 │ - if-ge v2, v3, :cond_2 │ + if-ge v4, v6, :cond_2 │ │ - aget-object v4, v0, v2 │ + aget-object v1, v5, v4 │ │ .line 280 │ - .local v4, "standardPrimitive":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ - invoke-virtual {v4, v1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z │ + .local v1, "standardPrimitive":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ + invoke-virtual {v1, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z │ │ - move-result v6 │ + move-result v7 │ │ - if-nez v6, :cond_0 │ + if-nez v7, :cond_0 │ │ .line 279 │ - add-int/lit8 v2, v2, 0x1 │ + add-int/lit8 v4, v4, 0x1 │ │ goto :goto_1 │ │ - .line 284 │ - .end local v4 # "standardPrimitive":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ + .end local v1 # "standardPrimitive":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ :cond_2 │ - const/4 v5, 0x0 │ + move v2, v3 │ │ + .line 284 │ goto :goto_0 │ .end method │ │ │ # virtual methods │ .method bridge synthetic deepCopy()Lcom/google/gson/JsonElement; │ .locals 1 │ @@ -551,22 +550,25 @@ │ │ if-eqz v0, :cond_0 │ │ iget-object v0, p0, Lcom/google/gson/JsonPrimitive;->value:Ljava/lang/Object; │ │ check-cast v0, Ljava/math/BigInteger; │ │ + .line 216 │ :goto_0 │ return-object v0 │ │ + .line 215 │ :cond_0 │ new-instance v0, Ljava/math/BigInteger; │ │ iget-object v1, p0, Lcom/google/gson/JsonPrimitive;->value:Ljava/lang/Object; │ │ + .line 216 │ invoke-virtual {v1}, Ljava/lang/Object;->toString()Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-direct {v0, v1}, Ljava/math/BigInteger;->(Ljava/lang/String;)V │ │ goto :goto_0 │ @@ -1085,30 +1087,32 @@ │ .line 100 │ .restart local p1 # "primitive":Ljava/lang/Object; │ :cond_0 │ instance-of v1, p1, Ljava/lang/Number; │ │ if-nez v1, :cond_1 │ │ + .line 101 │ invoke-static {p1}, Lcom/google/gson/JsonPrimitive;->isPrimitiveOrString(Ljava/lang/Object;)Z │ │ move-result v1 │ │ if-eqz v1, :cond_2 │ │ :cond_1 │ const/4 v1, 0x1 │ │ + .line 100 │ :goto_1 │ invoke-static {v1}, Lcom/google/gson/internal/$Gson$Preconditions;->checkArgument(Z)V │ │ .line 102 │ iput-object p1, p0, Lcom/google/gson/JsonPrimitive;->value:Ljava/lang/Object; │ │ goto :goto_0 │ │ - .line 100 │ + .line 101 │ :cond_2 │ const/4 v1, 0x0 │ │ goto :goto_1 │ .end method ├── smali/com/google/gson/TypeAdapter$1.smali │ @@ -24,18 +24,19 @@ │ # instance fields │ .field final synthetic this$0:Lcom/google/gson/TypeAdapter; │ │ │ # direct methods │ .method constructor (Lcom/google/gson/TypeAdapter;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/google/gson/TypeAdapter; │ │ .prologue │ .line 186 │ - .local p0, "this":Lcom/google/gson/TypeAdapter$1;, "Lcom/google/gson/TypeAdapter.1;" │ + .local p0, "this":Lcom/google/gson/TypeAdapter$1;, "Lcom/google/gson/TypeAdapter$1;" │ iput-object p1, p0, Lcom/google/gson/TypeAdapter$1;->this$0:Lcom/google/gson/TypeAdapter; │ │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ @@ -56,15 +57,15 @@ │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ .line 195 │ - .local p0, "this":Lcom/google/gson/TypeAdapter$1;, "Lcom/google/gson/TypeAdapter.1;" │ + .local p0, "this":Lcom/google/gson/TypeAdapter$1;, "Lcom/google/gson/TypeAdapter$1;" │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v0 │ │ sget-object v1, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ if-ne v0, v1, :cond_0 │ @@ -104,15 +105,15 @@ │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ .line 188 │ - .local p0, "this":Lcom/google/gson/TypeAdapter$1;, "Lcom/google/gson/TypeAdapter.1;" │ + .local p0, "this":Lcom/google/gson/TypeAdapter$1;, "Lcom/google/gson/TypeAdapter$1;" │ .local p2, "value":Ljava/lang/Object;, "TT;" │ if-nez p2, :cond_0 │ │ .line 189 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->nullValue()Lcom/google/gson/stream/JsonWriter; │ │ .line 193 ├── smali/com/google/gson/TypeAdapter.smali │ @@ -42,21 +42,21 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 255 │ + .line 259 │ .local p0, "this":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ new-instance v0, Lcom/google/gson/stream/JsonReader; │ │ invoke-direct {v0, p1}, Lcom/google/gson/stream/JsonReader;->(Ljava/io/Reader;)V │ │ - .line 256 │ + .line 260 │ .local v0, "reader":Lcom/google/gson/stream/JsonReader; │ invoke-virtual {p0, v0}, Lcom/google/gson/TypeAdapter;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ │ move-result-object v1 │ │ return-object v1 │ .end method │ @@ -75,15 +75,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 269 │ + .line 273 │ .local p0, "this":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ new-instance v0, Ljava/io/StringReader; │ │ invoke-direct {v0, p1}, Ljava/io/StringReader;->(Ljava/lang/String;)V │ │ invoke-virtual {p0, v0}, Lcom/google/gson/TypeAdapter;->fromJson(Ljava/io/Reader;)Ljava/lang/Object; │ │ @@ -100,37 +100,37 @@ │ "(", │ "Lcom/google/gson/JsonElement;", │ ")TT;" │ } │ .end annotation │ │ .prologue │ - .line 280 │ + .line 284 │ .local p0, "this":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ :try_start_0 │ new-instance v1, Lcom/google/gson/internal/bind/JsonTreeReader; │ │ invoke-direct {v1, p1}, Lcom/google/gson/internal/bind/JsonTreeReader;->(Lcom/google/gson/JsonElement;)V │ │ - .line 281 │ + .line 285 │ .local v1, "jsonReader":Lcom/google/gson/stream/JsonReader; │ invoke-virtual {p0, v1}, Lcom/google/gson/TypeAdapter;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ :try_end_0 │ .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 │ │ move-result-object v2 │ │ return-object v2 │ │ - .line 282 │ + .line 286 │ .end local v1 # "jsonReader":Lcom/google/gson/stream/JsonReader; │ :catch_0 │ move-exception v0 │ │ - .line 283 │ + .line 287 │ .local v0, "e":Ljava/io/IOException; │ new-instance v2, Lcom/google/gson/JsonIOException; │ │ invoke-direct {v2, v0}, Lcom/google/gson/JsonIOException;->(Ljava/lang/Throwable;)V │ │ throw v2 │ .end method │ @@ -168,46 +168,55 @@ │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ .end method │ │ .method public final toJson(Ljava/lang/Object;)Ljava/lang/String; │ - .locals 2 │ + .locals 3 │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(TT;)", │ "Ljava/lang/String;" │ } │ .end annotation │ │ - .annotation system Ldalvik/annotation/Throws; │ - value = { │ - Ljava/io/IOException; │ - } │ - .end annotation │ - │ .prologue │ .line 215 │ .local p0, "this":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ .local p1, "value":Ljava/lang/Object;, "TT;" │ - new-instance v0, Ljava/io/StringWriter; │ + new-instance v1, Ljava/io/StringWriter; │ │ - invoke-direct {v0}, Ljava/io/StringWriter;->()V │ - │ - .line 216 │ - .local v0, "stringWriter":Ljava/io/StringWriter; │ - invoke-virtual {p0, v0, p1}, Lcom/google/gson/TypeAdapter;->toJson(Ljava/io/Writer;Ljava/lang/Object;)V │ + invoke-direct {v1}, Ljava/io/StringWriter;->()V │ │ .line 217 │ - invoke-virtual {v0}, Ljava/io/StringWriter;->toString()Ljava/lang/String; │ + .local v1, "stringWriter":Ljava/io/StringWriter; │ + :try_start_0 │ + invoke-virtual {p0, v1, p1}, Lcom/google/gson/TypeAdapter;->toJson(Ljava/io/Writer;Ljava/lang/Object;)V │ + :try_end_0 │ + .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - move-result-object v1 │ + .line 221 │ + invoke-virtual {v1}, Ljava/io/StringWriter;->toString()Ljava/lang/String; │ │ - return-object v1 │ + move-result-object v2 │ + │ + return-object v2 │ + │ + .line 218 │ + :catch_0 │ + move-exception v0 │ + │ + .line 219 │ + .local v0, "e":Ljava/io/IOException; │ + new-instance v2, Ljava/lang/AssertionError; │ + │ + invoke-direct {v2, v0}, Ljava/lang/AssertionError;->(Ljava/lang/Object;)V │ + │ + throw v2 │ .end method │ │ .method public final toJson(Ljava/io/Writer;Ljava/lang/Object;)V │ .locals 1 │ .param p1, "out" # Ljava/io/Writer; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ @@ -245,41 +254,41 @@ │ value = { │ "(TT;)", │ "Lcom/google/gson/JsonElement;" │ } │ .end annotation │ │ .prologue │ - .line 229 │ + .line 233 │ .local p0, "this":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ .local p1, "value":Ljava/lang/Object;, "TT;" │ :try_start_0 │ new-instance v1, Lcom/google/gson/internal/bind/JsonTreeWriter; │ │ invoke-direct {v1}, Lcom/google/gson/internal/bind/JsonTreeWriter;->()V │ │ - .line 230 │ + .line 234 │ .local v1, "jsonWriter":Lcom/google/gson/internal/bind/JsonTreeWriter; │ invoke-virtual {p0, v1, p1}, Lcom/google/gson/TypeAdapter;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ │ - .line 231 │ + .line 235 │ invoke-virtual {v1}, Lcom/google/gson/internal/bind/JsonTreeWriter;->get()Lcom/google/gson/JsonElement; │ :try_end_0 │ .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 │ │ move-result-object v2 │ │ return-object v2 │ │ - .line 232 │ + .line 236 │ .end local v1 # "jsonWriter":Lcom/google/gson/internal/bind/JsonTreeWriter; │ :catch_0 │ move-exception v0 │ │ - .line 233 │ + .line 237 │ .local v0, "e":Ljava/io/IOException; │ new-instance v2, Lcom/google/gson/JsonIOException; │ │ invoke-direct {v2, v0}, Lcom/google/gson/JsonIOException;->(Ljava/lang/Throwable;)V │ │ throw v2 │ .end method ├── smali/com/google/gson/annotations/SerializedName.smali │ @@ -3,21 +3,31 @@ │ .source "SerializedName.java" │ │ # interfaces │ .implements Ljava/lang/annotation/Annotation; │ │ │ # annotations │ +.annotation system Ldalvik/annotation/AnnotationDefault; │ + value = .subannotation Lcom/google/gson/annotations/SerializedName; │ + alternate = {} │ + .end subannotation │ +.end annotation │ + │ .annotation runtime Ljava/lang/annotation/Retention; │ value = .enum Ljava/lang/annotation/RetentionPolicy;->RUNTIME:Ljava/lang/annotation/RetentionPolicy; │ .end annotation │ │ .annotation runtime Ljava/lang/annotation/Target; │ value = { │ - .enum Ljava/lang/annotation/ElementType;->FIELD:Ljava/lang/annotation/ElementType; │ + .enum Ljava/lang/annotation/ElementType;->FIELD:Ljava/lang/annotation/ElementType;, │ + .enum Ljava/lang/annotation/ElementType;->METHOD:Ljava/lang/annotation/ElementType; │ } │ .end annotation │ │ │ # virtual methods │ +.method public abstract alternate()[Ljava/lang/String; │ +.end method │ + │ .method public abstract value()Ljava/lang/String; │ .end method ├── smali/com/google/gson/internal/$Gson$Preconditions.smali │ @@ -1,39 +1,44 @@ │ .class public final Lcom/google/gson/internal/$Gson$Preconditions; │ .super Ljava/lang/Object; │ .source "$Gson$Preconditions.java" │ │ │ # direct methods │ -.method public constructor ()V │ - .locals 0 │ +.method private constructor ()V │ + .locals 1 │ │ .prologue │ - .line 32 │ + .line 33 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - return-void │ + .line 34 │ + new-instance v0, Ljava/lang/UnsupportedOperationException; │ + │ + invoke-direct {v0}, Ljava/lang/UnsupportedOperationException;->()V │ + │ + throw v0 │ .end method │ │ .method public static checkArgument(Z)V │ .locals 1 │ .param p0, "condition" # Z │ │ .prologue │ - .line 41 │ + .line 45 │ if-nez p0, :cond_0 │ │ - .line 42 │ + .line 46 │ new-instance v0, Ljava/lang/IllegalArgumentException; │ │ invoke-direct {v0}, Ljava/lang/IllegalArgumentException;->()V │ │ throw v0 │ │ - .line 44 │ + .line 48 │ :cond_0 │ return-void │ .end method │ │ .method public static checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; │ .locals 1 │ .annotation system Ldalvik/annotation/Signature; │ @@ -41,22 +46,22 @@ │ "(TT;)TT;" │ } │ .end annotation │ │ .prologue │ - .line 34 │ + .line 38 │ .local p0, "obj":Ljava/lang/Object;, "TT;" │ if-nez p0, :cond_0 │ │ - .line 35 │ + .line 39 │ new-instance v0, Ljava/lang/NullPointerException; │ │ invoke-direct {v0}, Ljava/lang/NullPointerException;->()V │ │ throw v0 │ │ - .line 37 │ + .line 41 │ :cond_0 │ return-object p0 │ .end method ├── smali/com/google/gson/internal/$Gson$Types$GenericArrayTypeImpl.smali │ @@ -28,42 +28,43 @@ │ │ # direct methods │ .method public constructor (Ljava/lang/reflect/Type;)V │ .locals 1 │ .param p1, "componentType" # Ljava/lang/reflect/Type; │ │ .prologue │ - .line 503 │ + .line 505 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 504 │ + .line 506 │ invoke-static {p1}, Lcom/google/gson/internal/$Gson$Types;->canonicalize(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type; │ │ move-result-object v0 │ │ iput-object v0, p0, Lcom/google/gson/internal/$Gson$Types$GenericArrayTypeImpl;->componentType:Ljava/lang/reflect/Type; │ │ - .line 505 │ + .line 507 │ return-void │ .end method │ │ │ # virtual methods │ .method public equals(Ljava/lang/Object;)Z │ .locals 1 │ .param p1, "o" # Ljava/lang/Object; │ │ .prologue │ - .line 512 │ + .line 514 │ instance-of v0, p1, Ljava/lang/reflect/GenericArrayType; │ │ if-eqz v0, :cond_0 │ │ check-cast p1, Ljava/lang/reflect/GenericArrayType; │ │ + .line 515 │ .end local p1 # "o":Ljava/lang/Object; │ invoke-static {p0, p1}, Lcom/google/gson/internal/$Gson$Types;->equals(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ @@ -78,39 +79,39 @@ │ goto :goto_0 │ .end method │ │ .method public getGenericComponentType()Ljava/lang/reflect/Type; │ .locals 1 │ │ .prologue │ - .line 508 │ + .line 510 │ iget-object v0, p0, Lcom/google/gson/internal/$Gson$Types$GenericArrayTypeImpl;->componentType:Ljava/lang/reflect/Type; │ │ return-object v0 │ .end method │ │ .method public hashCode()I │ .locals 1 │ │ .prologue │ - .line 517 │ + .line 519 │ iget-object v0, p0, Lcom/google/gson/internal/$Gson$Types$GenericArrayTypeImpl;->componentType:Ljava/lang/reflect/Type; │ │ invoke-virtual {v0}, Ljava/lang/Object;->hashCode()I │ │ move-result v0 │ │ return v0 │ .end method │ │ .method public toString()Ljava/lang/String; │ .locals 2 │ │ .prologue │ - .line 521 │ + .line 523 │ new-instance v0, Ljava/lang/StringBuilder; │ │ invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ │ iget-object v1, p0, Lcom/google/gson/internal/$Gson$Types$GenericArrayTypeImpl;->componentType:Ljava/lang/reflect/Type; │ │ invoke-static {v1}, Lcom/google/gson/internal/$Gson$Types;->typeToString(Ljava/lang/reflect/Type;)Ljava/lang/String; ├── smali/com/google/gson/internal/$Gson$Types$ParameterizedTypeImpl.smali │ @@ -38,169 +38,170 @@ │ .param p3, "typeArguments" # [Ljava/lang/reflect/Type; │ │ .prologue │ const/4 v4, 0x1 │ │ const/4 v3, 0x0 │ │ - .line 440 │ + .line 442 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 442 │ + .line 444 │ instance-of v5, p2, Ljava/lang/Class; │ │ if-eqz v5, :cond_3 │ │ move-object v1, p2 │ │ - .line 443 │ + .line 445 │ check-cast v1, Ljava/lang/Class; │ │ - .line 444 │ + .line 446 │ .local v1, "rawTypeAsClass":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ invoke-virtual {v1}, Ljava/lang/Class;->getModifiers()I │ │ move-result v5 │ │ invoke-static {v5}, Ljava/lang/reflect/Modifier;->isStatic(I)Z │ │ move-result v5 │ │ if-nez v5, :cond_0 │ │ + .line 447 │ invoke-virtual {v1}, Ljava/lang/Class;->getEnclosingClass()Ljava/lang/Class; │ │ move-result-object v5 │ │ if-nez v5, :cond_4 │ │ :cond_0 │ move v0, v4 │ │ - .line 446 │ + .line 448 │ .local v0, "isStaticOrTopLevelClass":Z │ :goto_0 │ if-nez p1, :cond_1 │ │ if-eqz v0, :cond_2 │ │ :cond_1 │ move v3, v4 │ │ :cond_2 │ invoke-static {v3}, Lcom/google/gson/internal/$Gson$Preconditions;->checkArgument(Z)V │ │ - .line 449 │ + .line 451 │ .end local v0 # "isStaticOrTopLevelClass":Z │ .end local v1 # "rawTypeAsClass":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ :cond_3 │ if-nez p1, :cond_5 │ │ const/4 v3, 0x0 │ │ :goto_1 │ iput-object v3, p0, Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl;->ownerType:Ljava/lang/reflect/Type; │ │ - .line 450 │ + .line 452 │ invoke-static {p2}, Lcom/google/gson/internal/$Gson$Types;->canonicalize(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type; │ │ move-result-object v3 │ │ iput-object v3, p0, Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl;->rawType:Ljava/lang/reflect/Type; │ │ - .line 451 │ + .line 453 │ invoke-virtual {p3}, [Ljava/lang/reflect/Type;->clone()Ljava/lang/Object; │ │ move-result-object v3 │ │ check-cast v3, [Ljava/lang/reflect/Type; │ │ iput-object v3, p0, Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl;->typeArguments:[Ljava/lang/reflect/Type; │ │ - .line 452 │ + .line 454 │ const/4 v2, 0x0 │ │ .local v2, "t":I │ :goto_2 │ iget-object v3, p0, Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl;->typeArguments:[Ljava/lang/reflect/Type; │ │ array-length v3, v3 │ │ if-ge v2, v3, :cond_6 │ │ - .line 453 │ + .line 455 │ iget-object v3, p0, Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl;->typeArguments:[Ljava/lang/reflect/Type; │ │ aget-object v3, v3, v2 │ │ invoke-static {v3}, Lcom/google/gson/internal/$Gson$Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; │ │ - .line 454 │ + .line 456 │ iget-object v3, p0, Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl;->typeArguments:[Ljava/lang/reflect/Type; │ │ aget-object v3, v3, v2 │ │ - # invokes: Lcom/google/gson/internal/$Gson$Types;->checkNotPrimitive(Ljava/lang/reflect/Type;)V │ - invoke-static {v3}, Lcom/google/gson/internal/$Gson$Types;->access$000(Ljava/lang/reflect/Type;)V │ + invoke-static {v3}, Lcom/google/gson/internal/$Gson$Types;->checkNotPrimitive(Ljava/lang/reflect/Type;)V │ │ - .line 455 │ + .line 457 │ iget-object v3, p0, Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl;->typeArguments:[Ljava/lang/reflect/Type; │ │ iget-object v4, p0, Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl;->typeArguments:[Ljava/lang/reflect/Type; │ │ aget-object v4, v4, v2 │ │ invoke-static {v4}, Lcom/google/gson/internal/$Gson$Types;->canonicalize(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type; │ │ move-result-object v4 │ │ aput-object v4, v3, v2 │ │ - .line 452 │ + .line 454 │ add-int/lit8 v2, v2, 0x1 │ │ goto :goto_2 │ │ .end local v2 # "t":I │ .restart local v1 # "rawTypeAsClass":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ :cond_4 │ move v0, v3 │ │ - .line 444 │ + .line 447 │ goto :goto_0 │ │ - .line 449 │ + .line 451 │ .end local v1 # "rawTypeAsClass":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ :cond_5 │ invoke-static {p1}, Lcom/google/gson/internal/$Gson$Types;->canonicalize(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type; │ │ move-result-object v3 │ │ goto :goto_1 │ │ - .line 457 │ + .line 459 │ .restart local v2 # "t":I │ :cond_6 │ return-void │ .end method │ │ │ # virtual methods │ .method public equals(Ljava/lang/Object;)Z │ .locals 1 │ .param p1, "other" # Ljava/lang/Object; │ │ .prologue │ - .line 472 │ + .line 474 │ instance-of v0, p1, Ljava/lang/reflect/ParameterizedType; │ │ if-eqz v0, :cond_0 │ │ check-cast p1, Ljava/lang/reflect/ParameterizedType; │ │ + .line 475 │ .end local p1 # "other":Ljava/lang/Object; │ invoke-static {p0, p1}, Lcom/google/gson/internal/$Gson$Types;->equals(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ @@ -215,15 +216,15 @@ │ goto :goto_0 │ .end method │ │ .method public getActualTypeArguments()[Ljava/lang/reflect/Type; │ .locals 1 │ │ .prologue │ - .line 460 │ + .line 462 │ iget-object v0, p0, Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl;->typeArguments:[Ljava/lang/reflect/Type; │ │ invoke-virtual {v0}, [Ljava/lang/reflect/Type;->clone()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, [Ljava/lang/reflect/Type; │ @@ -231,105 +232,106 @@ │ return-object v0 │ .end method │ │ .method public getOwnerType()Ljava/lang/reflect/Type; │ .locals 1 │ │ .prologue │ - .line 468 │ + .line 470 │ iget-object v0, p0, Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl;->ownerType:Ljava/lang/reflect/Type; │ │ return-object v0 │ .end method │ │ .method public getRawType()Ljava/lang/reflect/Type; │ .locals 1 │ │ .prologue │ - .line 464 │ + .line 466 │ iget-object v0, p0, Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl;->rawType:Ljava/lang/reflect/Type; │ │ return-object v0 │ .end method │ │ .method public hashCode()I │ .locals 2 │ │ .prologue │ - .line 477 │ + .line 479 │ iget-object v0, p0, Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl;->typeArguments:[Ljava/lang/reflect/Type; │ │ invoke-static {v0}, Ljava/util/Arrays;->hashCode([Ljava/lang/Object;)I │ │ move-result v0 │ │ iget-object v1, p0, Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl;->rawType:Ljava/lang/reflect/Type; │ │ + .line 480 │ invoke-virtual {v1}, Ljava/lang/Object;->hashCode()I │ │ move-result v1 │ │ xor-int/2addr v0, v1 │ │ iget-object v1, p0, Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl;->ownerType:Ljava/lang/reflect/Type; │ │ - # invokes: Lcom/google/gson/internal/$Gson$Types;->hashCodeOrZero(Ljava/lang/Object;)I │ - invoke-static {v1}, Lcom/google/gson/internal/$Gson$Types;->access$100(Ljava/lang/Object;)I │ + .line 481 │ + invoke-static {v1}, Lcom/google/gson/internal/$Gson$Types;->hashCodeOrZero(Ljava/lang/Object;)I │ │ move-result v1 │ │ xor-int/2addr v0, v1 │ │ return v0 │ .end method │ │ .method public toString()Ljava/lang/String; │ .locals 5 │ │ .prologue │ - .line 483 │ + .line 485 │ new-instance v1, Ljava/lang/StringBuilder; │ │ iget-object v2, p0, Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl;->typeArguments:[Ljava/lang/reflect/Type; │ │ array-length v2, v2 │ │ add-int/lit8 v2, v2, 0x1 │ │ mul-int/lit8 v2, v2, 0x1e │ │ invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(I)V │ │ - .line 484 │ + .line 486 │ .local v1, "stringBuilder":Ljava/lang/StringBuilder; │ iget-object v2, p0, Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl;->rawType:Ljava/lang/reflect/Type; │ │ invoke-static {v2}, Lcom/google/gson/internal/$Gson$Types;->typeToString(Ljava/lang/reflect/Type;)Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - .line 486 │ + .line 488 │ iget-object v2, p0, Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl;->typeArguments:[Ljava/lang/reflect/Type; │ │ array-length v2, v2 │ │ if-nez v2, :cond_0 │ │ - .line 487 │ + .line 489 │ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v2 │ │ - .line 494 │ + .line 496 │ :goto_0 │ return-object v2 │ │ - .line 490 │ + .line 492 │ :cond_0 │ const-string v2, "<" │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ @@ -341,26 +343,26 @@ │ │ invoke-static {v3}, Lcom/google/gson/internal/$Gson$Types;->typeToString(Ljava/lang/reflect/Type;)Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - .line 491 │ + .line 493 │ const/4 v0, 0x1 │ │ .local v0, "i":I │ :goto_1 │ iget-object v2, p0, Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl;->typeArguments:[Ljava/lang/reflect/Type; │ │ array-length v2, v2 │ │ if-ge v0, v2, :cond_1 │ │ - .line 492 │ + .line 494 │ const-string v2, ", " │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ iget-object v3, p0, Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl;->typeArguments:[Ljava/lang/reflect/Type; │ @@ -369,20 +371,20 @@ │ │ invoke-static {v3}, Lcom/google/gson/internal/$Gson$Types;->typeToString(Ljava/lang/reflect/Type;)Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - .line 491 │ + .line 493 │ add-int/lit8 v0, v0, 0x1 │ │ goto :goto_1 │ │ - .line 494 │ + .line 496 │ :cond_1 │ const-string v2, ">" │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 ├── smali/com/google/gson/internal/$Gson$Types$WildcardTypeImpl.smali │ @@ -35,117 +35,115 @@ │ .param p2, "lowerBounds" # [Ljava/lang/reflect/Type; │ │ .prologue │ const/4 v1, 0x1 │ │ const/4 v2, 0x0 │ │ - .line 536 │ + .line 538 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 537 │ + .line 539 │ array-length v0, p2 │ │ if-gt v0, v1, :cond_0 │ │ move v0, v1 │ │ :goto_0 │ invoke-static {v0}, Lcom/google/gson/internal/$Gson$Preconditions;->checkArgument(Z)V │ │ - .line 538 │ + .line 540 │ array-length v0, p1 │ │ if-ne v0, v1, :cond_1 │ │ move v0, v1 │ │ :goto_1 │ invoke-static {v0}, Lcom/google/gson/internal/$Gson$Preconditions;->checkArgument(Z)V │ │ - .line 540 │ + .line 542 │ array-length v0, p2 │ │ if-ne v0, v1, :cond_3 │ │ - .line 541 │ + .line 543 │ aget-object v0, p2, v2 │ │ invoke-static {v0}, Lcom/google/gson/internal/$Gson$Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; │ │ - .line 542 │ + .line 544 │ aget-object v0, p2, v2 │ │ - # invokes: Lcom/google/gson/internal/$Gson$Types;->checkNotPrimitive(Ljava/lang/reflect/Type;)V │ - invoke-static {v0}, Lcom/google/gson/internal/$Gson$Types;->access$000(Ljava/lang/reflect/Type;)V │ + invoke-static {v0}, Lcom/google/gson/internal/$Gson$Types;->checkNotPrimitive(Ljava/lang/reflect/Type;)V │ │ - .line 543 │ + .line 545 │ aget-object v0, p1, v2 │ │ const-class v3, Ljava/lang/Object; │ │ if-ne v0, v3, :cond_2 │ │ :goto_2 │ invoke-static {v1}, Lcom/google/gson/internal/$Gson$Preconditions;->checkArgument(Z)V │ │ - .line 544 │ + .line 546 │ aget-object v0, p2, v2 │ │ invoke-static {v0}, Lcom/google/gson/internal/$Gson$Types;->canonicalize(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type; │ │ move-result-object v0 │ │ iput-object v0, p0, Lcom/google/gson/internal/$Gson$Types$WildcardTypeImpl;->lowerBound:Ljava/lang/reflect/Type; │ │ - .line 545 │ + .line 547 │ const-class v0, Ljava/lang/Object; │ │ iput-object v0, p0, Lcom/google/gson/internal/$Gson$Types$WildcardTypeImpl;->upperBound:Ljava/lang/reflect/Type; │ │ - .line 553 │ + .line 555 │ :goto_3 │ return-void │ │ :cond_0 │ move v0, v2 │ │ - .line 537 │ + .line 539 │ goto :goto_0 │ │ :cond_1 │ move v0, v2 │ │ - .line 538 │ + .line 540 │ goto :goto_1 │ │ :cond_2 │ move v1, v2 │ │ - .line 543 │ + .line 545 │ goto :goto_2 │ │ - .line 548 │ + .line 550 │ :cond_3 │ aget-object v0, p1, v2 │ │ invoke-static {v0}, Lcom/google/gson/internal/$Gson$Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; │ │ - .line 549 │ + .line 551 │ aget-object v0, p1, v2 │ │ - # invokes: Lcom/google/gson/internal/$Gson$Types;->checkNotPrimitive(Ljava/lang/reflect/Type;)V │ - invoke-static {v0}, Lcom/google/gson/internal/$Gson$Types;->access$000(Ljava/lang/reflect/Type;)V │ + invoke-static {v0}, Lcom/google/gson/internal/$Gson$Types;->checkNotPrimitive(Ljava/lang/reflect/Type;)V │ │ - .line 550 │ + .line 552 │ const/4 v0, 0x0 │ │ iput-object v0, p0, Lcom/google/gson/internal/$Gson$Types$WildcardTypeImpl;->lowerBound:Ljava/lang/reflect/Type; │ │ - .line 551 │ + .line 553 │ aget-object v0, p1, v2 │ │ invoke-static {v0}, Lcom/google/gson/internal/$Gson$Types;->canonicalize(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type; │ │ move-result-object v0 │ │ iput-object v0, p0, Lcom/google/gson/internal/$Gson$Types$WildcardTypeImpl;->upperBound:Ljava/lang/reflect/Type; │ @@ -156,21 +154,22 @@ │ │ # virtual methods │ .method public equals(Ljava/lang/Object;)Z │ .locals 1 │ .param p1, "other" # Ljava/lang/Object; │ │ .prologue │ - .line 564 │ + .line 566 │ instance-of v0, p1, Ljava/lang/reflect/WildcardType; │ │ if-eqz v0, :cond_0 │ │ check-cast p1, Ljava/lang/reflect/WildcardType; │ │ + .line 567 │ .end local p1 # "other":Ljava/lang/Object; │ invoke-static {p0, p1}, Lcom/google/gson/internal/$Gson$Types;->equals(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ @@ -185,15 +184,15 @@ │ goto :goto_0 │ .end method │ │ .method public getLowerBounds()[Ljava/lang/reflect/Type; │ .locals 3 │ │ .prologue │ - .line 560 │ + .line 562 │ iget-object v0, p0, Lcom/google/gson/internal/$Gson$Types$WildcardTypeImpl;->lowerBound:Ljava/lang/reflect/Type; │ │ if-eqz v0, :cond_0 │ │ const/4 v0, 0x1 │ │ new-array v0, v0, [Ljava/lang/reflect/Type; │ @@ -213,15 +212,15 @@ │ goto :goto_0 │ .end method │ │ .method public getUpperBounds()[Ljava/lang/reflect/Type; │ .locals 3 │ │ .prologue │ - .line 556 │ + .line 558 │ const/4 v0, 0x1 │ │ new-array v0, v0, [Ljava/lang/reflect/Type; │ │ const/4 v1, 0x0 │ │ iget-object v2, p0, Lcom/google/gson/internal/$Gson$Types$WildcardTypeImpl;->upperBound:Ljava/lang/reflect/Type; │ @@ -231,15 +230,15 @@ │ return-object v0 │ .end method │ │ .method public hashCode()I │ .locals 2 │ │ .prologue │ - .line 570 │ + .line 572 │ iget-object v0, p0, Lcom/google/gson/internal/$Gson$Types$WildcardTypeImpl;->lowerBound:Ljava/lang/reflect/Type; │ │ if-eqz v0, :cond_0 │ │ iget-object v0, p0, Lcom/google/gson/internal/$Gson$Types$WildcardTypeImpl;->lowerBound:Ljava/lang/reflect/Type; │ │ invoke-virtual {v0}, Ljava/lang/Object;->hashCode()I │ @@ -247,40 +246,42 @@ │ move-result v0 │ │ add-int/lit8 v0, v0, 0x1f │ │ :goto_0 │ iget-object v1, p0, Lcom/google/gson/internal/$Gson$Types$WildcardTypeImpl;->upperBound:Ljava/lang/reflect/Type; │ │ + .line 573 │ invoke-virtual {v1}, Ljava/lang/Object;->hashCode()I │ │ move-result v1 │ │ add-int/lit8 v1, v1, 0x1f │ │ xor-int/2addr v0, v1 │ │ return v0 │ │ + .line 572 │ :cond_0 │ const/4 v0, 0x1 │ │ goto :goto_0 │ .end method │ │ .method public toString()Ljava/lang/String; │ .locals 2 │ │ .prologue │ - .line 575 │ + .line 577 │ iget-object v0, p0, Lcom/google/gson/internal/$Gson$Types$WildcardTypeImpl;->lowerBound:Ljava/lang/reflect/Type; │ │ if-eqz v0, :cond_0 │ │ - .line 576 │ + .line 578 │ new-instance v0, Ljava/lang/StringBuilder; │ │ invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ │ const-string v1, "? super " │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ @@ -297,32 +298,32 @@ │ │ move-result-object v0 │ │ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 580 │ + .line 582 │ :goto_0 │ return-object v0 │ │ - .line 577 │ + .line 579 │ :cond_0 │ iget-object v0, p0, Lcom/google/gson/internal/$Gson$Types$WildcardTypeImpl;->upperBound:Ljava/lang/reflect/Type; │ │ const-class v1, Ljava/lang/Object; │ │ if-ne v0, v1, :cond_1 │ │ - .line 578 │ + .line 580 │ const-string v0, "?" │ │ goto :goto_0 │ │ - .line 580 │ + .line 582 │ :cond_1 │ new-instance v0, Ljava/lang/StringBuilder; │ │ invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ │ const-string v1, "? extends " ├── smali/com/google/gson/internal/ConstructorConstructor$10.smali │ @@ -28,17 +28,18 @@ │ # instance fields │ .field final synthetic this$0:Lcom/google/gson/internal/ConstructorConstructor; │ │ │ # direct methods │ .method constructor (Lcom/google/gson/internal/ConstructorConstructor;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/google/gson/internal/ConstructorConstructor; │ │ .prologue │ - .line 183 │ + .line 186 │ iput-object p1, p0, Lcom/google/gson/internal/ConstructorConstructor$10;->this$0:Lcom/google/gson/internal/ConstructorConstructor; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ @@ -49,14 +50,14 @@ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "()TT;" │ } │ .end annotation │ │ .prologue │ - .line 185 │ - new-instance v0, Ljava/util/LinkedHashMap; │ + .line 188 │ + new-instance v0, Ljava/util/concurrent/ConcurrentHashMap; │ │ - invoke-direct {v0}, Ljava/util/LinkedHashMap;->()V │ + invoke-direct {v0}, Ljava/util/concurrent/ConcurrentHashMap;->()V │ │ return-object v0 │ .end method ├── smali/com/google/gson/internal/$Gson$Types.smali │ @@ -29,76 +29,57 @@ │ │ sput-object v0, Lcom/google/gson/internal/$Gson$Types;->EMPTY_TYPE_ARRAY:[Ljava/lang/reflect/Type; │ │ return-void │ .end method │ │ .method private constructor ()V │ - .locals 0 │ + .locals 1 │ │ .prologue │ .line 46 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - return-void │ -.end method │ - │ -.method static synthetic access$000(Ljava/lang/reflect/Type;)V │ - .locals 0 │ - .param p0, "x0" # Ljava/lang/reflect/Type; │ + .line 47 │ + new-instance v0, Ljava/lang/UnsupportedOperationException; │ │ - .prologue │ - .line 43 │ - invoke-static {p0}, Lcom/google/gson/internal/$Gson$Types;->checkNotPrimitive(Ljava/lang/reflect/Type;)V │ + invoke-direct {v0}, Ljava/lang/UnsupportedOperationException;->()V │ │ - return-void │ -.end method │ - │ -.method static synthetic access$100(Ljava/lang/Object;)I │ - .locals 1 │ - .param p0, "x0" # Ljava/lang/Object; │ - │ - .prologue │ - .line 43 │ - invoke-static {p0}, Lcom/google/gson/internal/$Gson$Types;->hashCodeOrZero(Ljava/lang/Object;)I │ - │ - move-result v0 │ - │ - return v0 │ + throw v0 │ .end method │ │ .method public static arrayOf(Ljava/lang/reflect/Type;)Ljava/lang/reflect/GenericArrayType; │ .locals 1 │ .param p0, "componentType" # Ljava/lang/reflect/Type; │ │ .prologue │ - .line 66 │ + .line 68 │ new-instance v0, Lcom/google/gson/internal/$Gson$Types$GenericArrayTypeImpl; │ │ invoke-direct {v0, p0}, Lcom/google/gson/internal/$Gson$Types$GenericArrayTypeImpl;->(Ljava/lang/reflect/Type;)V │ │ return-object v0 │ .end method │ │ .method public static canonicalize(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type; │ .locals 8 │ .param p0, "type" # Ljava/lang/reflect/Type; │ │ .prologue │ - .line 94 │ + .line 96 │ instance-of v4, p0, Ljava/lang/Class; │ │ if-eqz v4, :cond_1 │ │ move-object v0, p0 │ │ - .line 95 │ + .line 97 │ check-cast v0, Ljava/lang/Class; │ │ - .line 96 │ + .line 98 │ .local v0, "c":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ invoke-virtual {v0}, Ljava/lang/Class;->isArray()Z │ │ move-result v4 │ │ if-eqz v4, :cond_0 │ │ @@ -113,95 +94,96 @@ │ move-result-object v5 │ │ invoke-direct {v4, v5}, Lcom/google/gson/internal/$Gson$Types$GenericArrayTypeImpl;->(Ljava/lang/reflect/Type;)V │ │ :goto_0 │ check-cast v4, Ljava/lang/reflect/Type; │ │ - .line 113 │ + .line 115 │ .end local v0 # "c":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ :goto_1 │ return-object v4 │ │ .restart local v0 # "c":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ :cond_0 │ move-object v4, v0 │ │ - .line 96 │ + .line 98 │ goto :goto_0 │ │ - .line 98 │ + .line 100 │ .end local v0 # "c":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ :cond_1 │ instance-of v4, p0, Ljava/lang/reflect/ParameterizedType; │ │ if-eqz v4, :cond_2 │ │ move-object v2, p0 │ │ - .line 99 │ + .line 101 │ check-cast v2, Ljava/lang/reflect/ParameterizedType; │ │ - .line 100 │ + .line 102 │ .local v2, "p":Ljava/lang/reflect/ParameterizedType; │ new-instance v4, Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl; │ │ invoke-interface {v2}, Ljava/lang/reflect/ParameterizedType;->getOwnerType()Ljava/lang/reflect/Type; │ │ move-result-object v5 │ │ + .line 103 │ invoke-interface {v2}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type; │ │ move-result-object v6 │ │ invoke-interface {v2}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type; │ │ move-result-object v7 │ │ invoke-direct {v4, v5, v6, v7}, Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl;->(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;[Ljava/lang/reflect/Type;)V │ │ goto :goto_1 │ │ - .line 103 │ + .line 105 │ .end local v2 # "p":Ljava/lang/reflect/ParameterizedType; │ :cond_2 │ instance-of v4, p0, Ljava/lang/reflect/GenericArrayType; │ │ if-eqz v4, :cond_3 │ │ move-object v1, p0 │ │ - .line 104 │ + .line 106 │ check-cast v1, Ljava/lang/reflect/GenericArrayType; │ │ - .line 105 │ + .line 107 │ .local v1, "g":Ljava/lang/reflect/GenericArrayType; │ new-instance v4, Lcom/google/gson/internal/$Gson$Types$GenericArrayTypeImpl; │ │ invoke-interface {v1}, Ljava/lang/reflect/GenericArrayType;->getGenericComponentType()Ljava/lang/reflect/Type; │ │ move-result-object v5 │ │ invoke-direct {v4, v5}, Lcom/google/gson/internal/$Gson$Types$GenericArrayTypeImpl;->(Ljava/lang/reflect/Type;)V │ │ goto :goto_1 │ │ - .line 107 │ + .line 109 │ .end local v1 # "g":Ljava/lang/reflect/GenericArrayType; │ :cond_3 │ instance-of v4, p0, Ljava/lang/reflect/WildcardType; │ │ if-eqz v4, :cond_4 │ │ move-object v3, p0 │ │ - .line 108 │ + .line 110 │ check-cast v3, Ljava/lang/reflect/WildcardType; │ │ - .line 109 │ + .line 111 │ .local v3, "w":Ljava/lang/reflect/WildcardType; │ new-instance v4, Lcom/google/gson/internal/$Gson$Types$WildcardTypeImpl; │ │ invoke-interface {v3}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type; │ │ move-result-object v5 │ │ @@ -213,24 +195,24 @@ │ │ goto :goto_1 │ │ .end local v3 # "w":Ljava/lang/reflect/WildcardType; │ :cond_4 │ move-object v4, p0 │ │ - .line 113 │ + .line 115 │ goto :goto_1 │ .end method │ │ -.method private static checkNotPrimitive(Ljava/lang/reflect/Type;)V │ +.method static checkNotPrimitive(Ljava/lang/reflect/Type;)V │ .locals 1 │ .param p0, "type" # Ljava/lang/reflect/Type; │ │ .prologue │ - .line 432 │ + .line 434 │ instance-of v0, p0, Ljava/lang/Class; │ │ if-eqz v0, :cond_0 │ │ check-cast p0, Ljava/lang/Class; │ │ .end local p0 # "type":Ljava/lang/reflect/Type; │ @@ -242,18 +224,18 @@ │ │ :cond_0 │ const/4 v0, 0x1 │ │ :goto_0 │ invoke-static {v0}, Lcom/google/gson/internal/$Gson$Preconditions;->checkArgument(Z)V │ │ - .line 433 │ + .line 435 │ return-void │ │ - .line 432 │ + .line 434 │ :cond_1 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method private static declaringClassOf(Ljava/lang/reflect/TypeVariable;)Ljava/lang/Class; │ @@ -265,21 +247,21 @@ │ "<*>;)", │ "Ljava/lang/Class", │ "<*>;" │ } │ .end annotation │ │ .prologue │ - .line 425 │ + .line 427 │ .local p0, "typeVariable":Ljava/lang/reflect/TypeVariable;, "Ljava/lang/reflect/TypeVariable<*>;" │ invoke-interface {p0}, Ljava/lang/reflect/TypeVariable;->getGenericDeclaration()Ljava/lang/reflect/GenericDeclaration; │ │ move-result-object v0 │ │ - .line 426 │ + .line 428 │ .local v0, "genericDeclaration":Ljava/lang/reflect/GenericDeclaration; │ instance-of v1, v0, Ljava/lang/Class; │ │ if-eqz v1, :cond_0 │ │ check-cast v0, Ljava/lang/Class; │ │ @@ -296,15 +278,15 @@ │ │ .method static equal(Ljava/lang/Object;Ljava/lang/Object;)Z │ .locals 1 │ .param p0, "a" # Ljava/lang/Object; │ .param p1, "b" # Ljava/lang/Object; │ │ .prologue │ - .line 152 │ + .line 154 │ if-eq p0, p1, :cond_0 │ │ if-eqz p0, :cond_1 │ │ invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z │ │ move-result v0 │ @@ -329,60 +311,60 @@ │ .param p1, "b" # Ljava/lang/reflect/Type; │ │ .prologue │ const/4 v8, 0x1 │ │ const/4 v9, 0x0 │ │ - .line 159 │ + .line 161 │ if-ne p0, p1, :cond_1 │ │ move v9, v8 │ │ - .line 209 │ + .line 211 │ :cond_0 │ :goto_0 │ return v9 │ │ - .line 163 │ + .line 165 │ :cond_1 │ instance-of v10, p0, Ljava/lang/Class; │ │ if-eqz v10, :cond_2 │ │ - .line 165 │ + .line 167 │ invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z │ │ move-result v9 │ │ goto :goto_0 │ │ - .line 167 │ + .line 169 │ :cond_2 │ instance-of v10, p0, Ljava/lang/reflect/ParameterizedType; │ │ if-eqz v10, :cond_4 │ │ - .line 168 │ + .line 170 │ instance-of v10, p1, Ljava/lang/reflect/ParameterizedType; │ │ if-eqz v10, :cond_0 │ │ move-object v2, p0 │ │ - .line 173 │ + .line 175 │ check-cast v2, Ljava/lang/reflect/ParameterizedType; │ │ .local v2, "pa":Ljava/lang/reflect/ParameterizedType; │ move-object v3, p1 │ │ - .line 174 │ + .line 176 │ check-cast v3, Ljava/lang/reflect/ParameterizedType; │ │ - .line 175 │ + .line 177 │ .local v3, "pb":Ljava/lang/reflect/ParameterizedType; │ invoke-interface {v2}, Ljava/lang/reflect/ParameterizedType;->getOwnerType()Ljava/lang/reflect/Type; │ │ move-result-object v10 │ │ invoke-interface {v3}, Ljava/lang/reflect/ParameterizedType;->getOwnerType()Ljava/lang/reflect/Type; │ │ @@ -390,28 +372,30 @@ │ │ invoke-static {v10, v11}, Lcom/google/gson/internal/$Gson$Types;->equal(Ljava/lang/Object;Ljava/lang/Object;)Z │ │ move-result v10 │ │ if-eqz v10, :cond_3 │ │ + .line 178 │ invoke-interface {v2}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type; │ │ move-result-object v10 │ │ invoke-interface {v3}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type; │ │ move-result-object v11 │ │ invoke-virtual {v10, v11}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z │ │ move-result v10 │ │ if-eqz v10, :cond_3 │ │ + .line 179 │ invoke-interface {v2}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type; │ │ move-result-object v10 │ │ invoke-interface {v3}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type; │ │ move-result-object v11 │ @@ -428,39 +412,39 @@ │ goto :goto_0 │ │ :cond_3 │ move v8, v9 │ │ goto :goto_1 │ │ - .line 179 │ + .line 181 │ .end local v2 # "pa":Ljava/lang/reflect/ParameterizedType; │ .end local v3 # "pb":Ljava/lang/reflect/ParameterizedType; │ :cond_4 │ instance-of v10, p0, Ljava/lang/reflect/GenericArrayType; │ │ if-eqz v10, :cond_5 │ │ - .line 180 │ + .line 182 │ instance-of v8, p1, Ljava/lang/reflect/GenericArrayType; │ │ if-eqz v8, :cond_0 │ │ move-object v0, p0 │ │ - .line 184 │ + .line 186 │ check-cast v0, Ljava/lang/reflect/GenericArrayType; │ │ .local v0, "ga":Ljava/lang/reflect/GenericArrayType; │ move-object v1, p1 │ │ - .line 185 │ + .line 187 │ check-cast v1, Ljava/lang/reflect/GenericArrayType; │ │ - .line 186 │ + .line 188 │ .local v1, "gb":Ljava/lang/reflect/GenericArrayType; │ invoke-interface {v0}, Ljava/lang/reflect/GenericArrayType;->getGenericComponentType()Ljava/lang/reflect/Type; │ │ move-result-object v8 │ │ invoke-interface {v1}, Ljava/lang/reflect/GenericArrayType;->getGenericComponentType()Ljava/lang/reflect/Type; │ │ @@ -468,39 +452,39 @@ │ │ invoke-static {v8, v9}, Lcom/google/gson/internal/$Gson$Types;->equals(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)Z │ │ move-result v9 │ │ goto :goto_0 │ │ - .line 188 │ + .line 190 │ .end local v0 # "ga":Ljava/lang/reflect/GenericArrayType; │ .end local v1 # "gb":Ljava/lang/reflect/GenericArrayType; │ :cond_5 │ instance-of v10, p0, Ljava/lang/reflect/WildcardType; │ │ if-eqz v10, :cond_7 │ │ - .line 189 │ + .line 191 │ instance-of v10, p1, Ljava/lang/reflect/WildcardType; │ │ if-eqz v10, :cond_0 │ │ move-object v6, p0 │ │ - .line 193 │ + .line 195 │ check-cast v6, Ljava/lang/reflect/WildcardType; │ │ .local v6, "wa":Ljava/lang/reflect/WildcardType; │ move-object v7, p1 │ │ - .line 194 │ + .line 196 │ check-cast v7, Ljava/lang/reflect/WildcardType; │ │ - .line 195 │ + .line 197 │ .local v7, "wb":Ljava/lang/reflect/WildcardType; │ invoke-interface {v6}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type; │ │ move-result-object v10 │ │ invoke-interface {v7}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type; │ │ @@ -508,14 +492,15 @@ │ │ invoke-static {v10, v11}, Ljava/util/Arrays;->equals([Ljava/lang/Object;[Ljava/lang/Object;)Z │ │ move-result v10 │ │ if-eqz v10, :cond_6 │ │ + .line 198 │ invoke-interface {v6}, Ljava/lang/reflect/WildcardType;->getLowerBounds()[Ljava/lang/reflect/Type; │ │ move-result-object v10 │ │ invoke-interface {v7}, Ljava/lang/reflect/WildcardType;->getLowerBounds()[Ljava/lang/reflect/Type; │ │ move-result-object v11 │ @@ -532,50 +517,51 @@ │ goto/16 :goto_0 │ │ :cond_6 │ move v8, v9 │ │ goto :goto_2 │ │ - .line 198 │ + .line 200 │ .end local v6 # "wa":Ljava/lang/reflect/WildcardType; │ .end local v7 # "wb":Ljava/lang/reflect/WildcardType; │ :cond_7 │ instance-of v10, p0, Ljava/lang/reflect/TypeVariable; │ │ if-eqz v10, :cond_0 │ │ - .line 199 │ + .line 201 │ instance-of v10, p1, Ljava/lang/reflect/TypeVariable; │ │ if-eqz v10, :cond_0 │ │ move-object v4, p0 │ │ - .line 202 │ + .line 204 │ check-cast v4, Ljava/lang/reflect/TypeVariable; │ │ .local v4, "va":Ljava/lang/reflect/TypeVariable;, "Ljava/lang/reflect/TypeVariable<*>;" │ move-object v5, p1 │ │ - .line 203 │ + .line 205 │ check-cast v5, Ljava/lang/reflect/TypeVariable; │ │ - .line 204 │ + .line 206 │ .local v5, "vb":Ljava/lang/reflect/TypeVariable;, "Ljava/lang/reflect/TypeVariable<*>;" │ invoke-interface {v4}, Ljava/lang/reflect/TypeVariable;->getGenericDeclaration()Ljava/lang/reflect/GenericDeclaration; │ │ move-result-object v10 │ │ invoke-interface {v5}, Ljava/lang/reflect/TypeVariable;->getGenericDeclaration()Ljava/lang/reflect/GenericDeclaration; │ │ move-result-object v11 │ │ if-ne v10, v11, :cond_8 │ │ + .line 207 │ invoke-interface {v4}, Ljava/lang/reflect/TypeVariable;->getName()Ljava/lang/String; │ │ move-result-object v10 │ │ invoke-interface {v5}, Ljava/lang/reflect/TypeVariable;->getName()Ljava/lang/String; │ │ move-result-object v11 │ @@ -598,33 +584,37 @@ │ .end method │ │ .method public static getArrayComponentType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type; │ .locals 1 │ .param p0, "array" # Ljava/lang/reflect/Type; │ │ .prologue │ - .line 278 │ + .line 280 │ instance-of v0, p0, Ljava/lang/reflect/GenericArrayType; │ │ if-eqz v0, :cond_0 │ │ check-cast p0, Ljava/lang/reflect/GenericArrayType; │ │ + .line 281 │ .end local p0 # "array":Ljava/lang/reflect/Type; │ invoke-interface {p0}, Ljava/lang/reflect/GenericArrayType;->getGenericComponentType()Ljava/lang/reflect/Type; │ │ move-result-object v0 │ │ + .line 282 │ :goto_0 │ return-object v0 │ │ + .line 281 │ .restart local p0 # "array":Ljava/lang/reflect/Type; │ :cond_0 │ check-cast p0, Ljava/lang/Class; │ │ + .line 282 │ .end local p0 # "array":Ljava/lang/reflect/Type; │ invoke-virtual {p0}, Ljava/lang/Class;->getComponentType()Ljava/lang/Class; │ │ move-result-object v0 │ │ goto :goto_0 │ .end method │ @@ -642,55 +632,55 @@ │ } │ .end annotation │ │ .prologue │ .local p1, "contextRawType":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ const/4 v2, 0x0 │ │ - .line 288 │ + .line 290 │ const-class v1, Ljava/util/Collection; │ │ invoke-static {p0, p1, v1}, Lcom/google/gson/internal/$Gson$Types;->getSupertype(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Type; │ │ move-result-object v0 │ │ - .line 290 │ + .line 292 │ .local v0, "collectionType":Ljava/lang/reflect/Type; │ instance-of v1, v0, Ljava/lang/reflect/WildcardType; │ │ if-eqz v1, :cond_0 │ │ - .line 291 │ + .line 293 │ check-cast v0, Ljava/lang/reflect/WildcardType; │ │ .end local v0 # "collectionType":Ljava/lang/reflect/Type; │ invoke-interface {v0}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type; │ │ move-result-object v1 │ │ aget-object v0, v1, v2 │ │ - .line 293 │ + .line 295 │ .restart local v0 # "collectionType":Ljava/lang/reflect/Type; │ :cond_0 │ instance-of v1, v0, Ljava/lang/reflect/ParameterizedType; │ │ if-eqz v1, :cond_1 │ │ - .line 294 │ + .line 296 │ check-cast v0, Ljava/lang/reflect/ParameterizedType; │ │ .end local v0 # "collectionType":Ljava/lang/reflect/Type; │ invoke-interface {v0}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type; │ │ move-result-object v1 │ │ aget-object v1, v1, v2 │ │ - .line 296 │ + .line 298 │ :goto_0 │ return-object v1 │ │ .restart local v0 # "collectionType":Ljava/lang/reflect/Type; │ :cond_1 │ const-class v1, Ljava/lang/Object; │ │ @@ -709,158 +699,158 @@ │ "Ljava/lang/Class", │ "<*>;)", │ "Ljava/lang/reflect/Type;" │ } │ .end annotation │ │ .prologue │ - .line 227 │ + .line 229 │ .local p1, "rawType":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ .local p2, "toResolve":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ if-ne p2, p1, :cond_0 │ │ - .line 257 │ + .line 259 │ .end local p0 # "context":Ljava/lang/reflect/Type; │ :goto_0 │ return-object p0 │ │ - .line 232 │ + .line 234 │ .restart local p0 # "context":Ljava/lang/reflect/Type; │ :cond_0 │ invoke-virtual {p2}, Ljava/lang/Class;->isInterface()Z │ │ move-result v4 │ │ if-eqz v4, :cond_3 │ │ - .line 233 │ + .line 235 │ invoke-virtual {p1}, Ljava/lang/Class;->getInterfaces()[Ljava/lang/Class; │ │ move-result-object v1 │ │ - .line 234 │ + .line 236 │ .local v1, "interfaces":[Ljava/lang/Class;, "[Ljava/lang/Class<*>;" │ const/4 v0, 0x0 │ │ .local v0, "i":I │ array-length v2, v1 │ │ .local v2, "length":I │ :goto_1 │ if-ge v0, v2, :cond_3 │ │ - .line 235 │ + .line 237 │ aget-object v4, v1, v0 │ │ if-ne v4, p2, :cond_1 │ │ - .line 236 │ + .line 238 │ invoke-virtual {p1}, Ljava/lang/Class;->getGenericInterfaces()[Ljava/lang/reflect/Type; │ │ move-result-object v4 │ │ aget-object p0, v4, v0 │ │ goto :goto_0 │ │ - .line 237 │ + .line 239 │ :cond_1 │ aget-object v4, v1, v0 │ │ invoke-virtual {p2, v4}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_2 │ │ - .line 238 │ + .line 240 │ invoke-virtual {p1}, Ljava/lang/Class;->getGenericInterfaces()[Ljava/lang/reflect/Type; │ │ move-result-object v4 │ │ aget-object v4, v4, v0 │ │ aget-object v5, v1, v0 │ │ invoke-static {v4, v5, p2}, Lcom/google/gson/internal/$Gson$Types;->getGenericSupertype(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Type; │ │ move-result-object p0 │ │ goto :goto_0 │ │ - .line 234 │ + .line 236 │ :cond_2 │ add-int/lit8 v0, v0, 0x1 │ │ goto :goto_1 │ │ - .line 244 │ + .line 246 │ .end local v0 # "i":I │ .end local v1 # "interfaces":[Ljava/lang/Class;, "[Ljava/lang/Class<*>;" │ .end local v2 # "length":I │ :cond_3 │ invoke-virtual {p1}, Ljava/lang/Class;->isInterface()Z │ │ move-result v4 │ │ if-nez v4, :cond_6 │ │ - .line 245 │ + .line 247 │ :goto_2 │ const-class v4, Ljava/lang/Object; │ │ if-eq p1, v4, :cond_6 │ │ - .line 246 │ + .line 248 │ invoke-virtual {p1}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class; │ │ move-result-object v3 │ │ - .line 247 │ + .line 249 │ .local v3, "rawSupertype":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ if-ne v3, p2, :cond_4 │ │ - .line 248 │ + .line 250 │ invoke-virtual {p1}, Ljava/lang/Class;->getGenericSuperclass()Ljava/lang/reflect/Type; │ │ move-result-object p0 │ │ goto :goto_0 │ │ - .line 249 │ + .line 251 │ :cond_4 │ invoke-virtual {p2, v3}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_5 │ │ - .line 250 │ + .line 252 │ invoke-virtual {p1}, Ljava/lang/Class;->getGenericSuperclass()Ljava/lang/reflect/Type; │ │ move-result-object v4 │ │ invoke-static {v4, v3, p2}, Lcom/google/gson/internal/$Gson$Types;->getGenericSupertype(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Type; │ │ move-result-object p0 │ │ goto :goto_0 │ │ - .line 252 │ + .line 254 │ :cond_5 │ move-object p1, v3 │ │ - .line 253 │ + .line 255 │ goto :goto_2 │ │ .end local v3 # "rawSupertype":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ :cond_6 │ move-object p0, p2 │ │ - .line 257 │ + .line 259 │ goto :goto_0 │ .end method │ │ .method public static getMapKeyAndValueTypes(Ljava/lang/reflect/Type;Ljava/lang/Class;)[Ljava/lang/reflect/Type; │ .locals 6 │ .param p0, "context" # Ljava/lang/reflect/Type; │ .annotation system Ldalvik/annotation/Signature; │ @@ -877,62 +867,62 @@ │ .local p1, "contextRawType":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ const/4 v3, 0x2 │ │ const/4 v5, 0x1 │ │ const/4 v4, 0x0 │ │ - .line 309 │ + .line 311 │ const-class v2, Ljava/util/Properties; │ │ if-ne p0, v2, :cond_0 │ │ - .line 310 │ + .line 312 │ new-array v2, v3, [Ljava/lang/reflect/Type; │ │ const-class v3, Ljava/lang/String; │ │ aput-object v3, v2, v4 │ │ const-class v3, Ljava/lang/String; │ │ aput-object v3, v2, v5 │ │ - .line 319 │ + .line 321 │ :goto_0 │ return-object v2 │ │ - .line 313 │ + .line 315 │ :cond_0 │ const-class v2, Ljava/util/Map; │ │ invoke-static {p0, p1, v2}, Lcom/google/gson/internal/$Gson$Types;->getSupertype(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Type; │ │ move-result-object v1 │ │ - .line 315 │ + .line 317 │ .local v1, "mapType":Ljava/lang/reflect/Type; │ instance-of v2, v1, Ljava/lang/reflect/ParameterizedType; │ │ if-eqz v2, :cond_1 │ │ move-object v0, v1 │ │ - .line 316 │ + .line 318 │ check-cast v0, Ljava/lang/reflect/ParameterizedType; │ │ - .line 317 │ + .line 319 │ .local v0, "mapParameterizedType":Ljava/lang/reflect/ParameterizedType; │ invoke-interface {v0}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type; │ │ move-result-object v2 │ │ goto :goto_0 │ │ - .line 319 │ + .line 321 │ .end local v0 # "mapParameterizedType":Ljava/lang/reflect/ParameterizedType; │ :cond_1 │ new-array v2, v3, [Ljava/lang/reflect/Type; │ │ const-class v3, Ljava/lang/Object; │ │ aput-object v3, v2, v4 │ @@ -956,75 +946,75 @@ │ "<*>;" │ } │ .end annotation │ │ .prologue │ const/4 v5, 0x0 │ │ - .line 118 │ + .line 120 │ instance-of v4, p0, Ljava/lang/Class; │ │ if-eqz v4, :cond_0 │ │ - .line 120 │ + .line 122 │ check-cast p0, Ljava/lang/Class; │ │ - .line 142 │ + .line 144 │ .end local p0 # "type":Ljava/lang/reflect/Type; │ :goto_0 │ return-object p0 │ │ - .line 122 │ + .line 124 │ .restart local p0 # "type":Ljava/lang/reflect/Type; │ :cond_0 │ instance-of v4, p0, Ljava/lang/reflect/ParameterizedType; │ │ if-eqz v4, :cond_1 │ │ move-object v2, p0 │ │ - .line 123 │ + .line 125 │ check-cast v2, Ljava/lang/reflect/ParameterizedType; │ │ - .line 128 │ + .line 130 │ .local v2, "parameterizedType":Ljava/lang/reflect/ParameterizedType; │ invoke-interface {v2}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type; │ │ move-result-object v3 │ │ - .line 129 │ + .line 131 │ .local v3, "rawType":Ljava/lang/reflect/Type; │ instance-of v4, v3, Ljava/lang/Class; │ │ invoke-static {v4}, Lcom/google/gson/internal/$Gson$Preconditions;->checkArgument(Z)V │ │ - .line 130 │ + .line 132 │ check-cast v3, Ljava/lang/Class; │ │ .end local v3 # "rawType":Ljava/lang/reflect/Type; │ move-object p0, v3 │ │ goto :goto_0 │ │ - .line 132 │ + .line 134 │ .end local v2 # "parameterizedType":Ljava/lang/reflect/ParameterizedType; │ :cond_1 │ instance-of v4, p0, Ljava/lang/reflect/GenericArrayType; │ │ if-eqz v4, :cond_2 │ │ - .line 133 │ + .line 135 │ check-cast p0, Ljava/lang/reflect/GenericArrayType; │ │ .end local p0 # "type":Ljava/lang/reflect/Type; │ invoke-interface {p0}, Ljava/lang/reflect/GenericArrayType;->getGenericComponentType()Ljava/lang/reflect/Type; │ │ move-result-object v1 │ │ - .line 134 │ + .line 136 │ .local v1, "componentType":Ljava/lang/reflect/Type; │ invoke-static {v1}, Lcom/google/gson/internal/$Gson$Types;->getRawType(Ljava/lang/reflect/Type;)Ljava/lang/Class; │ │ move-result-object v4 │ │ invoke-static {v4, v5}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;I)Ljava/lang/Object; │ │ @@ -1032,34 +1022,34 @@ │ │ invoke-virtual {v4}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ move-result-object p0 │ │ goto :goto_0 │ │ - .line 136 │ + .line 138 │ .end local v1 # "componentType":Ljava/lang/reflect/Type; │ .restart local p0 # "type":Ljava/lang/reflect/Type; │ :cond_2 │ instance-of v4, p0, Ljava/lang/reflect/TypeVariable; │ │ if-eqz v4, :cond_3 │ │ - .line 139 │ + .line 141 │ const-class p0, Ljava/lang/Object; │ │ goto :goto_0 │ │ - .line 141 │ + .line 143 │ :cond_3 │ instance-of v4, p0, Ljava/lang/reflect/WildcardType; │ │ if-eqz v4, :cond_4 │ │ - .line 142 │ + .line 144 │ check-cast p0, Ljava/lang/reflect/WildcardType; │ │ .end local p0 # "type":Ljava/lang/reflect/Type; │ invoke-interface {p0}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type; │ │ move-result-object v4 │ │ @@ -1067,22 +1057,22 @@ │ │ invoke-static {v4}, Lcom/google/gson/internal/$Gson$Types;->getRawType(Ljava/lang/reflect/Type;)Ljava/lang/Class; │ │ move-result-object p0 │ │ goto :goto_0 │ │ - .line 145 │ + .line 147 │ .restart local p0 # "type":Ljava/lang/reflect/Type; │ :cond_4 │ if-nez p0, :cond_5 │ │ const-string v0, "null" │ │ - .line 146 │ + .line 148 │ .local v0, "className":Ljava/lang/String; │ :goto_1 │ new-instance v4, Ljava/lang/IllegalArgumentException; │ │ new-instance v5, Ljava/lang/StringBuilder; │ │ invoke-direct {v5}, Ljava/lang/StringBuilder;->()V │ @@ -1111,15 +1101,15 @@ │ │ move-result-object v5 │ │ invoke-direct {v4, v5}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ throw v4 │ │ - .line 145 │ + .line 147 │ .end local v0 # "className":Ljava/lang/String; │ :cond_5 │ invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ move-result-object v4 │ │ invoke-virtual {v4}, Ljava/lang/Class;->getName()Ljava/lang/String; │ @@ -1141,41 +1131,42 @@ │ "Ljava/lang/Class", │ "<*>;)", │ "Ljava/lang/reflect/Type;" │ } │ .end annotation │ │ .prologue │ - .line 268 │ + .line 270 │ .local p1, "contextRawType":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ .local p2, "supertype":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ invoke-virtual {p2, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z │ │ move-result v0 │ │ invoke-static {v0}, Lcom/google/gson/internal/$Gson$Preconditions;->checkArgument(Z)V │ │ - .line 269 │ + .line 272 │ invoke-static {p0, p1, p2}, Lcom/google/gson/internal/$Gson$Types;->getGenericSupertype(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Type; │ │ move-result-object v0 │ │ + .line 271 │ invoke-static {p0, p1, v0}, Lcom/google/gson/internal/$Gson$Types;->resolve(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ -.method private static hashCodeOrZero(Ljava/lang/Object;)I │ +.method static hashCodeOrZero(Ljava/lang/Object;)I │ .locals 1 │ .param p0, "o" # Ljava/lang/Object; │ │ .prologue │ - .line 214 │ + .line 216 │ if-eqz p0, :cond_0 │ │ invoke-virtual {p0}, Ljava/lang/Object;->hashCode()I │ │ move-result v0 │ │ :goto_0 │ @@ -1189,42 +1180,42 @@ │ │ .method private static indexOf([Ljava/lang/Object;Ljava/lang/Object;)I │ .locals 2 │ .param p0, "array" # [Ljava/lang/Object; │ .param p1, "toFind" # Ljava/lang/Object; │ │ .prologue │ - .line 412 │ + .line 414 │ const/4 v0, 0x0 │ │ .local v0, "i":I │ :goto_0 │ array-length v1, p0 │ │ if-ge v0, v1, :cond_1 │ │ - .line 413 │ + .line 415 │ aget-object v1, p0, v0 │ │ invoke-virtual {p1, v1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z │ │ move-result v1 │ │ if-eqz v1, :cond_0 │ │ - .line 414 │ + .line 416 │ return v0 │ │ - .line 412 │ + .line 414 │ :cond_0 │ add-int/lit8 v0, v0, 0x1 │ │ goto :goto_0 │ │ - .line 417 │ + .line 419 │ :cond_1 │ new-instance v1, Ljava/util/NoSuchElementException; │ │ invoke-direct {v1}, Ljava/util/NoSuchElementException;->()V │ │ throw v1 │ .end method │ @@ -1232,15 +1223,15 @@ │ .method public static varargs newParameterizedTypeWithOwner(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;[Ljava/lang/reflect/Type;)Ljava/lang/reflect/ParameterizedType; │ .locals 1 │ .param p0, "ownerType" # Ljava/lang/reflect/Type; │ .param p1, "rawType" # Ljava/lang/reflect/Type; │ .param p2, "typeArguments" # [Ljava/lang/reflect/Type; │ │ .prologue │ - .line 56 │ + .line 58 │ new-instance v0, Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl; │ │ invoke-direct {v0, p0, p1, p2}, Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl;->(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;[Ljava/lang/reflect/Type;)V │ │ return-object v0 │ .end method │ │ @@ -1257,58 +1248,58 @@ │ "Ljava/lang/reflect/Type;", │ ")", │ "Ljava/lang/reflect/Type;" │ } │ .end annotation │ │ .prologue │ - .line 325 │ + .line 327 │ .local p1, "contextRawType":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ :cond_0 │ move-object/from16 v0, p2 │ │ instance-of v0, v0, Ljava/lang/reflect/TypeVariable; │ │ move/from16 v19, v0 │ │ if-eqz v19, :cond_2 │ │ move-object/from16 v17, p2 │ │ - .line 326 │ + .line 328 │ check-cast v17, Ljava/lang/reflect/TypeVariable; │ │ - .line 327 │ + .line 329 │ .local v17, "typeVariable":Ljava/lang/reflect/TypeVariable;, "Ljava/lang/reflect/TypeVariable<*>;" │ move-object/from16 v0, p0 │ │ move-object/from16 v1, p1 │ │ move-object/from16 v2, v17 │ │ invoke-static {v0, v1, v2}, Lcom/google/gson/internal/$Gson$Types;->resolveTypeVariable(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/reflect/TypeVariable;)Ljava/lang/reflect/Type; │ │ move-result-object p2 │ │ - .line 328 │ + .line 330 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v17 │ │ if-ne v0, v1, :cond_0 │ │ move-object/from16 v10, p2 │ │ - .line 389 │ + .line 391 │ .end local v17 # "typeVariable":Ljava/lang/reflect/TypeVariable;, "Ljava/lang/reflect/TypeVariable<*>;" │ :cond_1 │ :goto_0 │ return-object v10 │ │ - .line 332 │ + .line 334 │ :cond_2 │ move-object/from16 v0, p2 │ │ instance-of v0, v0, Ljava/lang/Class; │ │ move/from16 v19, v0 │ │ @@ -1322,233 +1313,236 @@ │ │ move-result v19 │ │ if-eqz v19, :cond_4 │ │ move-object/from16 v11, p2 │ │ - .line 333 │ + .line 335 │ check-cast v11, Ljava/lang/Class; │ │ - .line 334 │ + .line 336 │ .local v11, "original":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ invoke-virtual {v11}, Ljava/lang/Class;->getComponentType()Ljava/lang/Class; │ │ move-result-object v5 │ │ - .line 335 │ + .line 337 │ .local v5, "componentType":Ljava/lang/reflect/Type; │ move-object/from16 v0, p0 │ │ move-object/from16 v1, p1 │ │ invoke-static {v0, v1, v5}, Lcom/google/gson/internal/$Gson$Types;->resolve(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type; │ │ move-result-object v8 │ │ - .line 336 │ + .line 338 │ .local v8, "newComponentType":Ljava/lang/reflect/Type; │ if-ne v5, v8, :cond_3 │ │ .end local v11 # "original":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ :goto_1 │ move-object v10, v11 │ │ + .line 340 │ goto :goto_0 │ │ .restart local v11 # "original":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ :cond_3 │ invoke-static {v8}, Lcom/google/gson/internal/$Gson$Types;->arrayOf(Ljava/lang/reflect/Type;)Ljava/lang/reflect/GenericArrayType; │ │ move-result-object v11 │ │ goto :goto_1 │ │ - .line 340 │ + .line 342 │ .end local v5 # "componentType":Ljava/lang/reflect/Type; │ .end local v8 # "newComponentType":Ljava/lang/reflect/Type; │ .end local v11 # "original":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ :cond_4 │ move-object/from16 v0, p2 │ │ instance-of v0, v0, Ljava/lang/reflect/GenericArrayType; │ │ move/from16 v19, v0 │ │ if-eqz v19, :cond_5 │ │ move-object/from16 v10, p2 │ │ - .line 341 │ + .line 343 │ check-cast v10, Ljava/lang/reflect/GenericArrayType; │ │ - .line 342 │ + .line 344 │ .local v10, "original":Ljava/lang/reflect/GenericArrayType; │ invoke-interface {v10}, Ljava/lang/reflect/GenericArrayType;->getGenericComponentType()Ljava/lang/reflect/Type; │ │ move-result-object v5 │ │ - .line 343 │ + .line 345 │ .restart local v5 # "componentType":Ljava/lang/reflect/Type; │ move-object/from16 v0, p0 │ │ move-object/from16 v1, p1 │ │ invoke-static {v0, v1, v5}, Lcom/google/gson/internal/$Gson$Types;->resolve(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type; │ │ move-result-object v8 │ │ - .line 344 │ + .line 346 │ .restart local v8 # "newComponentType":Ljava/lang/reflect/Type; │ if-eq v5, v8, :cond_1 │ │ + .line 348 │ invoke-static {v8}, Lcom/google/gson/internal/$Gson$Types;->arrayOf(Ljava/lang/reflect/Type;)Ljava/lang/reflect/GenericArrayType; │ │ move-result-object v10 │ │ goto :goto_0 │ │ - .line 348 │ + .line 350 │ .end local v5 # "componentType":Ljava/lang/reflect/Type; │ .end local v8 # "newComponentType":Ljava/lang/reflect/Type; │ .end local v10 # "original":Ljava/lang/reflect/GenericArrayType; │ :cond_5 │ move-object/from16 v0, p2 │ │ instance-of v0, v0, Ljava/lang/reflect/ParameterizedType; │ │ move/from16 v19, v0 │ │ if-eqz v19, :cond_a │ │ move-object/from16 v10, p2 │ │ - .line 349 │ + .line 351 │ check-cast v10, Ljava/lang/reflect/ParameterizedType; │ │ - .line 350 │ + .line 352 │ .local v10, "original":Ljava/lang/reflect/ParameterizedType; │ invoke-interface {v10}, Ljava/lang/reflect/ParameterizedType;->getOwnerType()Ljava/lang/reflect/Type; │ │ move-result-object v14 │ │ - .line 351 │ + .line 353 │ .local v14, "ownerType":Ljava/lang/reflect/Type; │ move-object/from16 v0, p0 │ │ move-object/from16 v1, p1 │ │ invoke-static {v0, v1, v14}, Lcom/google/gson/internal/$Gson$Types;->resolve(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type; │ │ move-result-object v9 │ │ - .line 352 │ + .line 354 │ .local v9, "newOwnerType":Ljava/lang/reflect/Type; │ if-eq v9, v14, :cond_8 │ │ const/4 v4, 0x1 │ │ - .line 354 │ + .line 356 │ .local v4, "changed":Z │ :goto_2 │ invoke-interface {v10}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type; │ │ move-result-object v3 │ │ - .line 355 │ + .line 357 │ .local v3, "args":[Ljava/lang/reflect/Type; │ const/16 v16, 0x0 │ │ .local v16, "t":I │ array-length v6, v3 │ │ .local v6, "length":I │ :goto_3 │ move/from16 v0, v16 │ │ if-ge v0, v6, :cond_9 │ │ - .line 356 │ + .line 358 │ aget-object v19, v3, v16 │ │ move-object/from16 v0, p0 │ │ move-object/from16 v1, p1 │ │ move-object/from16 v2, v19 │ │ invoke-static {v0, v1, v2}, Lcom/google/gson/internal/$Gson$Types;->resolve(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type; │ │ move-result-object v15 │ │ - .line 357 │ + .line 359 │ .local v15, "resolvedTypeArgument":Ljava/lang/reflect/Type; │ aget-object v19, v3, v16 │ │ move-object/from16 v0, v19 │ │ if-eq v15, v0, :cond_7 │ │ - .line 358 │ + .line 360 │ if-nez v4, :cond_6 │ │ - .line 359 │ + .line 361 │ invoke-virtual {v3}, [Ljava/lang/reflect/Type;->clone()Ljava/lang/Object; │ │ move-result-object v3 │ │ .end local v3 # "args":[Ljava/lang/reflect/Type; │ check-cast v3, [Ljava/lang/reflect/Type; │ │ - .line 360 │ + .line 362 │ .restart local v3 # "args":[Ljava/lang/reflect/Type; │ const/4 v4, 0x1 │ │ - .line 362 │ + .line 364 │ :cond_6 │ aput-object v15, v3, v16 │ │ - .line 355 │ + .line 357 │ :cond_7 │ add-int/lit8 v16, v16, 0x1 │ │ goto :goto_3 │ │ - .line 352 │ + .line 354 │ .end local v3 # "args":[Ljava/lang/reflect/Type; │ .end local v4 # "changed":Z │ .end local v6 # "length":I │ .end local v15 # "resolvedTypeArgument":Ljava/lang/reflect/Type; │ .end local v16 # "t":I │ :cond_8 │ const/4 v4, 0x0 │ │ goto :goto_2 │ │ - .line 366 │ + .line 368 │ .restart local v3 # "args":[Ljava/lang/reflect/Type; │ .restart local v4 # "changed":Z │ .restart local v6 # "length":I │ .restart local v16 # "t":I │ :cond_9 │ if-eqz v4, :cond_1 │ │ + .line 369 │ invoke-interface {v10}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type; │ │ move-result-object v19 │ │ move-object/from16 v0, v19 │ │ invoke-static {v9, v0, v3}, Lcom/google/gson/internal/$Gson$Types;->newParameterizedTypeWithOwner(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;[Ljava/lang/reflect/Type;)Ljava/lang/reflect/ParameterizedType; │ │ move-result-object v10 │ │ goto/16 :goto_0 │ │ - .line 370 │ + .line 372 │ .end local v3 # "args":[Ljava/lang/reflect/Type; │ .end local v4 # "changed":Z │ .end local v6 # "length":I │ .end local v9 # "newOwnerType":Ljava/lang/reflect/Type; │ .end local v10 # "original":Ljava/lang/reflect/ParameterizedType; │ .end local v14 # "ownerType":Ljava/lang/reflect/Type; │ .end local v16 # "t":I │ @@ -1559,132 +1553,132 @@ │ │ move/from16 v19, v0 │ │ if-eqz v19, :cond_c │ │ move-object/from16 v10, p2 │ │ - .line 371 │ + .line 373 │ check-cast v10, Ljava/lang/reflect/WildcardType; │ │ - .line 372 │ + .line 374 │ .local v10, "original":Ljava/lang/reflect/WildcardType; │ invoke-interface {v10}, Ljava/lang/reflect/WildcardType;->getLowerBounds()[Ljava/lang/reflect/Type; │ │ move-result-object v12 │ │ - .line 373 │ + .line 375 │ .local v12, "originalLowerBound":[Ljava/lang/reflect/Type; │ invoke-interface {v10}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type; │ │ move-result-object v13 │ │ - .line 375 │ + .line 377 │ .local v13, "originalUpperBound":[Ljava/lang/reflect/Type; │ array-length v0, v12 │ │ move/from16 v19, v0 │ │ const/16 v20, 0x1 │ │ move/from16 v0, v19 │ │ move/from16 v1, v20 │ │ if-ne v0, v1, :cond_b │ │ - .line 376 │ + .line 378 │ const/16 v19, 0x0 │ │ aget-object v19, v12, v19 │ │ move-object/from16 v0, p0 │ │ move-object/from16 v1, p1 │ │ move-object/from16 v2, v19 │ │ invoke-static {v0, v1, v2}, Lcom/google/gson/internal/$Gson$Types;->resolve(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type; │ │ move-result-object v7 │ │ - .line 377 │ + .line 379 │ .local v7, "lowerBound":Ljava/lang/reflect/Type; │ const/16 v19, 0x0 │ │ aget-object v19, v12, v19 │ │ move-object/from16 v0, v19 │ │ if-eq v7, v0, :cond_1 │ │ - .line 378 │ + .line 380 │ invoke-static {v7}, Lcom/google/gson/internal/$Gson$Types;->supertypeOf(Ljava/lang/reflect/Type;)Ljava/lang/reflect/WildcardType; │ │ move-result-object v10 │ │ goto/16 :goto_0 │ │ - .line 380 │ + .line 382 │ .end local v7 # "lowerBound":Ljava/lang/reflect/Type; │ :cond_b │ array-length v0, v13 │ │ move/from16 v19, v0 │ │ const/16 v20, 0x1 │ │ move/from16 v0, v19 │ │ move/from16 v1, v20 │ │ if-ne v0, v1, :cond_1 │ │ - .line 381 │ + .line 383 │ const/16 v19, 0x0 │ │ aget-object v19, v13, v19 │ │ move-object/from16 v0, p0 │ │ move-object/from16 v1, p1 │ │ move-object/from16 v2, v19 │ │ invoke-static {v0, v1, v2}, Lcom/google/gson/internal/$Gson$Types;->resolve(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type; │ │ move-result-object v18 │ │ - .line 382 │ + .line 384 │ .local v18, "upperBound":Ljava/lang/reflect/Type; │ const/16 v19, 0x0 │ │ aget-object v19, v13, v19 │ │ move-object/from16 v0, v18 │ │ move-object/from16 v1, v19 │ │ if-eq v0, v1, :cond_1 │ │ - .line 383 │ + .line 385 │ invoke-static/range {v18 .. v18}, Lcom/google/gson/internal/$Gson$Types;->subtypeOf(Ljava/lang/reflect/Type;)Ljava/lang/reflect/WildcardType; │ │ move-result-object v10 │ │ goto/16 :goto_0 │ │ .end local v10 # "original":Ljava/lang/reflect/WildcardType; │ .end local v12 # "originalLowerBound":[Ljava/lang/reflect/Type; │ .end local v13 # "originalUpperBound":[Ljava/lang/reflect/Type; │ .end local v18 # "upperBound":Ljava/lang/reflect/Type; │ :cond_c │ move-object/from16 v10, p2 │ │ - .line 389 │ + .line 391 │ goto/16 :goto_0 │ .end method │ │ .method static resolveTypeVariable(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/reflect/TypeVariable;)Ljava/lang/reflect/Type; │ .locals 4 │ .param p0, "context" # Ljava/lang/reflect/Type; │ .annotation system Ldalvik/annotation/Signature; │ @@ -1696,54 +1690,54 @@ │ "Ljava/lang/reflect/TypeVariable", │ "<*>;)", │ "Ljava/lang/reflect/Type;" │ } │ .end annotation │ │ .prologue │ - .line 395 │ + .line 397 │ .local p1, "contextRawType":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ .local p2, "unknown":Ljava/lang/reflect/TypeVariable;, "Ljava/lang/reflect/TypeVariable<*>;" │ invoke-static {p2}, Lcom/google/gson/internal/$Gson$Types;->declaringClassOf(Ljava/lang/reflect/TypeVariable;)Ljava/lang/Class; │ │ move-result-object v1 │ │ - .line 398 │ + .line 400 │ .local v1, "declaredByRaw":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ if-nez v1, :cond_1 │ │ - .line 408 │ + .line 410 │ .end local p2 # "unknown":Ljava/lang/reflect/TypeVariable;, "Ljava/lang/reflect/TypeVariable<*>;" │ :cond_0 │ :goto_0 │ return-object p2 │ │ - .line 402 │ + .line 404 │ .restart local p2 # "unknown":Ljava/lang/reflect/TypeVariable;, "Ljava/lang/reflect/TypeVariable<*>;" │ :cond_1 │ invoke-static {p0, p1, v1}, Lcom/google/gson/internal/$Gson$Types;->getGenericSupertype(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Type; │ │ move-result-object v0 │ │ - .line 403 │ + .line 405 │ .local v0, "declaredBy":Ljava/lang/reflect/Type; │ instance-of v3, v0, Ljava/lang/reflect/ParameterizedType; │ │ if-eqz v3, :cond_0 │ │ - .line 404 │ + .line 406 │ invoke-virtual {v1}, Ljava/lang/Class;->getTypeParameters()[Ljava/lang/reflect/TypeVariable; │ │ move-result-object v3 │ │ invoke-static {v3, p2}, Lcom/google/gson/internal/$Gson$Types;->indexOf([Ljava/lang/Object;Ljava/lang/Object;)I │ │ move-result v2 │ │ - .line 405 │ + .line 407 │ .local v2, "index":I │ check-cast v0, Ljava/lang/reflect/ParameterizedType; │ │ .end local v0 # "declaredBy":Ljava/lang/reflect/Type; │ invoke-interface {v0}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type; │ │ move-result-object v3 │ @@ -1754,15 +1748,15 @@ │ .end method │ │ .method public static subtypeOf(Ljava/lang/reflect/Type;)Ljava/lang/reflect/WildcardType; │ .locals 3 │ .param p0, "bound" # Ljava/lang/reflect/Type; │ │ .prologue │ - .line 76 │ + .line 78 │ new-instance v0, Lcom/google/gson/internal/$Gson$Types$WildcardTypeImpl; │ │ const/4 v1, 0x1 │ │ new-array v1, v1, [Ljava/lang/reflect/Type; │ │ const/4 v2, 0x0 │ @@ -1781,15 +1775,15 @@ │ .param p0, "bound" # Ljava/lang/reflect/Type; │ │ .prologue │ const/4 v4, 0x1 │ │ const/4 v3, 0x0 │ │ - .line 85 │ + .line 87 │ new-instance v0, Lcom/google/gson/internal/$Gson$Types$WildcardTypeImpl; │ │ new-array v1, v4, [Ljava/lang/reflect/Type; │ │ const-class v2, Ljava/lang/Object; │ │ aput-object v2, v1, v3 │ @@ -1804,15 +1798,15 @@ │ .end method │ │ .method public static typeToString(Ljava/lang/reflect/Type;)Ljava/lang/String; │ .locals 1 │ .param p0, "type" # Ljava/lang/reflect/Type; │ │ .prologue │ - .line 218 │ + .line 220 │ instance-of v0, p0, Ljava/lang/Class; │ │ if-eqz v0, :cond_0 │ │ check-cast p0, Ljava/lang/Class; │ │ .end local p0 # "type":Ljava/lang/reflect/Type; ├── smali/com/google/gson/internal/ConstructorConstructor$11.smali │ @@ -28,17 +28,18 @@ │ # instance fields │ .field final synthetic this$0:Lcom/google/gson/internal/ConstructorConstructor; │ │ │ # direct methods │ .method constructor (Lcom/google/gson/internal/ConstructorConstructor;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/google/gson/internal/ConstructorConstructor; │ │ .prologue │ - .line 189 │ + .line 192 │ iput-object p1, p0, Lcom/google/gson/internal/ConstructorConstructor$11;->this$0:Lcom/google/gson/internal/ConstructorConstructor; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ @@ -49,14 +50,14 @@ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "()TT;" │ } │ .end annotation │ │ .prologue │ - .line 191 │ - new-instance v0, Lcom/google/gson/internal/LinkedTreeMap; │ + .line 194 │ + new-instance v0, Ljava/util/TreeMap; │ │ - invoke-direct {v0}, Lcom/google/gson/internal/LinkedTreeMap;->()V │ + invoke-direct {v0}, Ljava/util/TreeMap;->()V │ │ return-object v0 │ .end method ├── smali/com/google/gson/internal/ConstructorConstructor$12.smali │ @@ -4,15 +4,15 @@ │ │ # interfaces │ .implements Lcom/google/gson/internal/ObjectConstructor; │ │ │ # annotations │ .annotation system Ldalvik/annotation/EnclosingMethod; │ - value = Lcom/google/gson/internal/ConstructorConstructor;->newUnsafeAllocator(Ljava/lang/reflect/Type;Ljava/lang/Class;)Lcom/google/gson/internal/ObjectConstructor; │ + value = Lcom/google/gson/internal/ConstructorConstructor;->newDefaultImplementationConstructor(Ljava/lang/reflect/Type;Ljava/lang/Class;)Lcom/google/gson/internal/ObjectConstructor; │ .end annotation │ │ .annotation system Ldalvik/annotation/InnerClass; │ accessFlags = 0x0 │ name = null │ .end annotation │ │ @@ -24,110 +24,40 @@ │ } │ .end annotation │ │ │ # instance fields │ .field final synthetic this$0:Lcom/google/gson/internal/ConstructorConstructor; │ │ -.field private final unsafeAllocator:Lcom/google/gson/internal/UnsafeAllocator; │ - │ -.field final synthetic val$rawType:Ljava/lang/Class; │ - │ -.field final synthetic val$type:Ljava/lang/reflect/Type; │ - │ │ # direct methods │ -.method constructor (Lcom/google/gson/internal/ConstructorConstructor;Ljava/lang/Class;Ljava/lang/reflect/Type;)V │ - .locals 1 │ +.method constructor (Lcom/google/gson/internal/ConstructorConstructor;)V │ + .locals 0 │ + .param p1, "this$0" # Lcom/google/gson/internal/ConstructorConstructor; │ │ .prologue │ - .line 202 │ + .line 199 │ iput-object p1, p0, Lcom/google/gson/internal/ConstructorConstructor$12;->this$0:Lcom/google/gson/internal/ConstructorConstructor; │ │ - iput-object p2, p0, Lcom/google/gson/internal/ConstructorConstructor$12;->val$rawType:Ljava/lang/Class; │ - │ - iput-object p3, p0, Lcom/google/gson/internal/ConstructorConstructor$12;->val$type:Ljava/lang/reflect/Type; │ - │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 203 │ - invoke-static {}, Lcom/google/gson/internal/UnsafeAllocator;->create()Lcom/google/gson/internal/UnsafeAllocator; │ - │ - move-result-object v0 │ - │ - iput-object v0, p0, Lcom/google/gson/internal/ConstructorConstructor$12;->unsafeAllocator:Lcom/google/gson/internal/UnsafeAllocator; │ - │ return-void │ .end method │ │ │ # virtual methods │ .method public construct()Ljava/lang/Object; │ - .locals 5 │ + .locals 1 │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "()TT;" │ } │ .end annotation │ │ .prologue │ - .line 207 │ - :try_start_0 │ - iget-object v2, p0, Lcom/google/gson/internal/ConstructorConstructor$12;->unsafeAllocator:Lcom/google/gson/internal/UnsafeAllocator; │ - │ - iget-object v3, p0, Lcom/google/gson/internal/ConstructorConstructor$12;->val$rawType:Ljava/lang/Class; │ - │ - invoke-virtual {v2, v3}, Lcom/google/gson/internal/UnsafeAllocator;->newInstance(Ljava/lang/Class;)Ljava/lang/Object; │ - :try_end_0 │ - .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 │ - │ - move-result-object v1 │ - │ - .line 208 │ - .local v1, "newInstance":Ljava/lang/Object; │ - return-object v1 │ - │ - .line 209 │ - .end local v1 # "newInstance":Ljava/lang/Object; │ - :catch_0 │ - move-exception v0 │ - │ - .line 210 │ - .local v0, "e":Ljava/lang/Exception; │ - new-instance v2, Ljava/lang/RuntimeException; │ - │ - new-instance v3, Ljava/lang/StringBuilder; │ - │ - invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ - │ - const-string v4, "Unable to invoke no-args constructor for " │ - │ - invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v3 │ - │ - iget-object v4, p0, Lcom/google/gson/internal/ConstructorConstructor$12;->val$type:Ljava/lang/reflect/Type; │ - │ - invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ - │ - move-result-object v3 │ - │ - const-string v4, ". " │ - │ - invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v3 │ - │ - const-string v4, "Register an InstanceCreator with Gson for this type may fix this problem." │ - │ - invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v3 │ - │ - invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ - │ - move-result-object v3 │ + .line 201 │ + new-instance v0, Ljava/util/LinkedHashMap; │ │ - invoke-direct {v2, v3, v0}, Ljava/lang/RuntimeException;->(Ljava/lang/String;Ljava/lang/Throwable;)V │ + invoke-direct {v0}, Ljava/util/LinkedHashMap;->()V │ │ - throw v2 │ + return-object v0 │ .end method ├── smali/com/google/gson/internal/ConstructorConstructor$1.smali │ @@ -32,17 +32,18 @@ │ │ .field final synthetic val$typeCreator:Lcom/google/gson/InstanceCreator; │ │ │ # direct methods │ .method constructor (Lcom/google/gson/internal/ConstructorConstructor;Lcom/google/gson/InstanceCreator;Ljava/lang/reflect/Type;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/google/gson/internal/ConstructorConstructor; │ │ .prologue │ - .line 60 │ + .line 64 │ iput-object p1, p0, Lcom/google/gson/internal/ConstructorConstructor$1;->this$0:Lcom/google/gson/internal/ConstructorConstructor; │ │ iput-object p2, p0, Lcom/google/gson/internal/ConstructorConstructor$1;->val$typeCreator:Lcom/google/gson/InstanceCreator; │ │ iput-object p3, p0, Lcom/google/gson/internal/ConstructorConstructor$1;->val$type:Ljava/lang/reflect/Type; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ @@ -57,15 +58,15 @@ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "()TT;" │ } │ .end annotation │ │ .prologue │ - .line 62 │ + .line 66 │ iget-object v0, p0, Lcom/google/gson/internal/ConstructorConstructor$1;->val$typeCreator:Lcom/google/gson/InstanceCreator; │ │ iget-object v1, p0, Lcom/google/gson/internal/ConstructorConstructor$1;->val$type:Ljava/lang/reflect/Type; │ │ invoke-interface {v0, v1}, Lcom/google/gson/InstanceCreator;->createInstance(Ljava/lang/reflect/Type;)Ljava/lang/Object; │ │ move-result-object v0 ├── smali/com/google/gson/internal/ConstructorConstructor$2.smali │ @@ -32,17 +32,18 @@ │ │ .field final synthetic val$type:Ljava/lang/reflect/Type; │ │ │ # direct methods │ .method constructor (Lcom/google/gson/internal/ConstructorConstructor;Lcom/google/gson/InstanceCreator;Ljava/lang/reflect/Type;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/google/gson/internal/ConstructorConstructor; │ │ .prologue │ - .line 72 │ + .line 76 │ iput-object p1, p0, Lcom/google/gson/internal/ConstructorConstructor$2;->this$0:Lcom/google/gson/internal/ConstructorConstructor; │ │ iput-object p2, p0, Lcom/google/gson/internal/ConstructorConstructor$2;->val$rawTypeCreator:Lcom/google/gson/InstanceCreator; │ │ iput-object p3, p0, Lcom/google/gson/internal/ConstructorConstructor$2;->val$type:Ljava/lang/reflect/Type; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ @@ -57,15 +58,15 @@ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "()TT;" │ } │ .end annotation │ │ .prologue │ - .line 74 │ + .line 78 │ iget-object v0, p0, Lcom/google/gson/internal/ConstructorConstructor$2;->val$rawTypeCreator:Lcom/google/gson/InstanceCreator; │ │ iget-object v1, p0, Lcom/google/gson/internal/ConstructorConstructor$2;->val$type:Ljava/lang/reflect/Type; │ │ invoke-interface {v0, v1}, Lcom/google/gson/InstanceCreator;->createInstance(Ljava/lang/reflect/Type;)Ljava/lang/Object; │ │ move-result-object v0 ├── smali/com/google/gson/internal/ConstructorConstructor$3.smali │ @@ -30,17 +30,18 @@ │ │ .field final synthetic val$constructor:Ljava/lang/reflect/Constructor; │ │ │ # direct methods │ .method constructor (Lcom/google/gson/internal/ConstructorConstructor;Ljava/lang/reflect/Constructor;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/google/gson/internal/ConstructorConstructor; │ │ .prologue │ - .line 99 │ + .line 103 │ iput-object p1, p0, Lcom/google/gson/internal/ConstructorConstructor$3;->this$0:Lcom/google/gson/internal/ConstructorConstructor; │ │ iput-object p2, p0, Lcom/google/gson/internal/ConstructorConstructor$3;->val$constructor:Ljava/lang/reflect/Constructor; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ @@ -53,37 +54,37 @@ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "()TT;" │ } │ .end annotation │ │ .prologue │ - .line 103 │ + .line 107 │ const/4 v0, 0x0 │ │ - .line 104 │ + .line 108 │ .local v0, "args":[Ljava/lang/Object; │ :try_start_0 │ iget-object v2, p0, Lcom/google/gson/internal/ConstructorConstructor$3;->val$constructor:Ljava/lang/reflect/Constructor; │ │ invoke-virtual {v2, v0}, Ljava/lang/reflect/Constructor;->newInstance([Ljava/lang/Object;)Ljava/lang/Object; │ :try_end_0 │ .catch Ljava/lang/InstantiationException; {:try_start_0 .. :try_end_0} :catch_0 │ .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_0 .. :try_end_0} :catch_1 │ .catch Ljava/lang/IllegalAccessException; {:try_start_0 .. :try_end_0} :catch_2 │ │ move-result-object v2 │ │ return-object v2 │ │ - .line 105 │ + .line 109 │ :catch_0 │ move-exception v1 │ │ - .line 107 │ + .line 111 │ .local v1, "e":Ljava/lang/InstantiationException; │ new-instance v2, Ljava/lang/RuntimeException; │ │ new-instance v3, Ljava/lang/StringBuilder; │ │ invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ @@ -109,20 +110,20 @@ │ │ move-result-object v3 │ │ invoke-direct {v2, v3, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;Ljava/lang/Throwable;)V │ │ throw v2 │ │ - .line 108 │ + .line 112 │ .end local v1 # "e":Ljava/lang/InstantiationException; │ :catch_1 │ move-exception v1 │ │ - .line 111 │ + .line 115 │ .local v1, "e":Ljava/lang/reflect/InvocationTargetException; │ new-instance v2, Ljava/lang/RuntimeException; │ │ new-instance v3, Ljava/lang/StringBuilder; │ │ invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ @@ -144,28 +145,29 @@ │ │ move-result-object v3 │ │ invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v3 │ │ + .line 116 │ invoke-virtual {v1}, Ljava/lang/reflect/InvocationTargetException;->getTargetException()Ljava/lang/Throwable; │ │ move-result-object v4 │ │ invoke-direct {v2, v3, v4}, Ljava/lang/RuntimeException;->(Ljava/lang/String;Ljava/lang/Throwable;)V │ │ throw v2 │ │ - .line 113 │ + .line 117 │ .end local v1 # "e":Ljava/lang/reflect/InvocationTargetException; │ :catch_2 │ move-exception v1 │ │ - .line 114 │ + .line 118 │ .local v1, "e":Ljava/lang/IllegalAccessException; │ new-instance v2, Ljava/lang/AssertionError; │ │ invoke-direct {v2, v1}, Ljava/lang/AssertionError;->(Ljava/lang/Object;)V │ │ throw v2 │ .end method ├── smali/com/google/gson/internal/ConstructorConstructor$4.smali │ @@ -28,17 +28,18 @@ │ # instance fields │ .field final synthetic this$0:Lcom/google/gson/internal/ConstructorConstructor; │ │ │ # direct methods │ .method constructor (Lcom/google/gson/internal/ConstructorConstructor;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/google/gson/internal/ConstructorConstructor; │ │ .prologue │ - .line 132 │ + .line 136 │ iput-object p1, p0, Lcom/google/gson/internal/ConstructorConstructor$4;->this$0:Lcom/google/gson/internal/ConstructorConstructor; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ @@ -49,14 +50,14 @@ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "()TT;" │ } │ .end annotation │ │ .prologue │ - .line 134 │ + .line 138 │ new-instance v0, Ljava/util/TreeSet; │ │ invoke-direct {v0}, Ljava/util/TreeSet;->()V │ │ return-object v0 │ .end method ├── smali/com/google/gson/internal/ConstructorConstructor$5.smali │ @@ -30,17 +30,18 @@ │ │ .field final synthetic val$type:Ljava/lang/reflect/Type; │ │ │ # direct methods │ .method constructor (Lcom/google/gson/internal/ConstructorConstructor;Ljava/lang/reflect/Type;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/google/gson/internal/ConstructorConstructor; │ │ .prologue │ - .line 138 │ + .line 142 │ iput-object p1, p0, Lcom/google/gson/internal/ConstructorConstructor$5;->this$0:Lcom/google/gson/internal/ConstructorConstructor; │ │ iput-object p2, p0, Lcom/google/gson/internal/ConstructorConstructor$5;->val$type:Ljava/lang/reflect/Type; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ @@ -53,51 +54,51 @@ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "()TT;" │ } │ .end annotation │ │ .prologue │ - .line 141 │ + .line 145 │ iget-object v1, p0, Lcom/google/gson/internal/ConstructorConstructor$5;->val$type:Ljava/lang/reflect/Type; │ │ instance-of v1, v1, Ljava/lang/reflect/ParameterizedType; │ │ if-eqz v1, :cond_1 │ │ - .line 142 │ + .line 146 │ iget-object v1, p0, Lcom/google/gson/internal/ConstructorConstructor$5;->val$type:Ljava/lang/reflect/Type; │ │ check-cast v1, Ljava/lang/reflect/ParameterizedType; │ │ invoke-interface {v1}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type; │ │ move-result-object v1 │ │ const/4 v2, 0x0 │ │ aget-object v0, v1, v2 │ │ - .line 143 │ + .line 147 │ .local v0, "elementType":Ljava/lang/reflect/Type; │ instance-of v1, v0, Ljava/lang/Class; │ │ if-eqz v1, :cond_0 │ │ - .line 144 │ + .line 148 │ check-cast v0, Ljava/lang/Class; │ │ .end local v0 # "elementType":Ljava/lang/reflect/Type; │ invoke-static {v0}, Ljava/util/EnumSet;->noneOf(Ljava/lang/Class;)Ljava/util/EnumSet; │ │ move-result-object v1 │ │ return-object v1 │ │ - .line 146 │ + .line 150 │ .restart local v0 # "elementType":Ljava/lang/reflect/Type; │ :cond_0 │ new-instance v1, Lcom/google/gson/JsonIOException; │ │ new-instance v2, Ljava/lang/StringBuilder; │ │ invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ @@ -122,15 +123,15 @@ │ │ move-result-object v2 │ │ invoke-direct {v1, v2}, Lcom/google/gson/JsonIOException;->(Ljava/lang/String;)V │ │ throw v1 │ │ - .line 149 │ + .line 153 │ .end local v0 # "elementType":Ljava/lang/reflect/Type; │ :cond_1 │ new-instance v1, Lcom/google/gson/JsonIOException; │ │ new-instance v2, Ljava/lang/StringBuilder; │ │ invoke-direct {v2}, Ljava/lang/StringBuilder;->()V ├── smali/com/google/gson/internal/ConstructorConstructor$6.smali │ @@ -28,17 +28,18 @@ │ # instance fields │ .field final synthetic this$0:Lcom/google/gson/internal/ConstructorConstructor; │ │ │ # direct methods │ .method constructor (Lcom/google/gson/internal/ConstructorConstructor;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/google/gson/internal/ConstructorConstructor; │ │ .prologue │ - .line 154 │ + .line 158 │ iput-object p1, p0, Lcom/google/gson/internal/ConstructorConstructor$6;->this$0:Lcom/google/gson/internal/ConstructorConstructor; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ @@ -49,14 +50,14 @@ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "()TT;" │ } │ .end annotation │ │ .prologue │ - .line 156 │ + .line 160 │ new-instance v0, Ljava/util/LinkedHashSet; │ │ invoke-direct {v0}, Ljava/util/LinkedHashSet;->()V │ │ return-object v0 │ .end method ├── smali/com/google/gson/internal/ConstructorConstructor$7.smali │ @@ -28,17 +28,18 @@ │ # instance fields │ .field final synthetic this$0:Lcom/google/gson/internal/ConstructorConstructor; │ │ │ # direct methods │ .method constructor (Lcom/google/gson/internal/ConstructorConstructor;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/google/gson/internal/ConstructorConstructor; │ │ .prologue │ - .line 160 │ + .line 164 │ iput-object p1, p0, Lcom/google/gson/internal/ConstructorConstructor$7;->this$0:Lcom/google/gson/internal/ConstructorConstructor; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ @@ -49,14 +50,14 @@ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "()TT;" │ } │ .end annotation │ │ .prologue │ - .line 162 │ - new-instance v0, Ljava/util/LinkedList; │ + .line 166 │ + new-instance v0, Ljava/util/ArrayDeque; │ │ - invoke-direct {v0}, Ljava/util/LinkedList;->()V │ + invoke-direct {v0}, Ljava/util/ArrayDeque;->()V │ │ return-object v0 │ .end method ├── smali/com/google/gson/internal/ConstructorConstructor$8.smali │ @@ -28,17 +28,18 @@ │ # instance fields │ .field final synthetic this$0:Lcom/google/gson/internal/ConstructorConstructor; │ │ │ # direct methods │ .method constructor (Lcom/google/gson/internal/ConstructorConstructor;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/google/gson/internal/ConstructorConstructor; │ │ .prologue │ - .line 166 │ + .line 170 │ iput-object p1, p0, Lcom/google/gson/internal/ConstructorConstructor$8;->this$0:Lcom/google/gson/internal/ConstructorConstructor; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ @@ -49,14 +50,14 @@ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "()TT;" │ } │ .end annotation │ │ .prologue │ - .line 168 │ + .line 172 │ new-instance v0, Ljava/util/ArrayList; │ │ invoke-direct {v0}, Ljava/util/ArrayList;->()V │ │ return-object v0 │ .end method ├── smali/com/google/gson/internal/ConstructorConstructor$9.smali │ @@ -28,17 +28,18 @@ │ # instance fields │ .field final synthetic this$0:Lcom/google/gson/internal/ConstructorConstructor; │ │ │ # direct methods │ .method constructor (Lcom/google/gson/internal/ConstructorConstructor;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/google/gson/internal/ConstructorConstructor; │ │ .prologue │ - .line 176 │ + .line 180 │ iput-object p1, p0, Lcom/google/gson/internal/ConstructorConstructor$9;->this$0:Lcom/google/gson/internal/ConstructorConstructor; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ @@ -49,14 +50,14 @@ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "()TT;" │ } │ .end annotation │ │ .prologue │ - .line 178 │ - new-instance v0, Ljava/util/TreeMap; │ + .line 182 │ + new-instance v0, Ljava/util/concurrent/ConcurrentSkipListMap; │ │ - invoke-direct {v0}, Ljava/util/TreeMap;->()V │ + invoke-direct {v0}, Ljava/util/concurrent/ConcurrentSkipListMap;->()V │ │ return-object v0 │ .end method ├── smali/com/google/gson/internal/Excluder$1.smali │ @@ -41,14 +41,15 @@ │ │ .field final synthetic val$type:Lcom/google/gson/reflect/TypeToken; │ │ │ # direct methods │ .method constructor (Lcom/google/gson/internal/Excluder;ZZLcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/google/gson/internal/Excluder; │ │ .prologue │ .line 120 │ iput-object p1, p0, Lcom/google/gson/internal/Excluder$1;->this$0:Lcom/google/gson/internal/Excluder; │ │ iput-boolean p2, p0, Lcom/google/gson/internal/Excluder$1;->val$skipDeserialize:Z │ │ @@ -77,26 +78,29 @@ │ .line 141 │ iget-object v0, p0, Lcom/google/gson/internal/Excluder$1;->delegate:Lcom/google/gson/TypeAdapter; │ │ .line 142 │ .local v0, "d":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ if-eqz v0, :cond_0 │ │ + .line 144 │ .end local v0 # "d":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ :goto_0 │ return-object v0 │ │ + .line 142 │ .restart local v0 # "d":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ :cond_0 │ iget-object v1, p0, Lcom/google/gson/internal/Excluder$1;->val$gson:Lcom/google/gson/Gson; │ │ iget-object v2, p0, Lcom/google/gson/internal/Excluder$1;->this$0:Lcom/google/gson/internal/Excluder; │ │ iget-object v3, p0, Lcom/google/gson/internal/Excluder$1;->val$type:Lcom/google/gson/reflect/TypeToken; │ │ + .line 144 │ invoke-virtual {v1, v2, v3}, Lcom/google/gson/Gson;->getDelegateAdapter(Lcom/google/gson/TypeAdapterFactory;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ │ move-result-object v0 │ │ .end local v0 # "d":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ iput-object v0, p0, Lcom/google/gson/internal/Excluder$1;->delegate:Lcom/google/gson/TypeAdapter; ├── smali/com/google/gson/internal/Excluder.smali │ @@ -116,14 +116,15 @@ │ │ invoke-virtual {v0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z │ │ move-result v0 │ │ if-nez v0, :cond_1 │ │ + .line 217 │ invoke-virtual {p1}, Ljava/lang/Class;->isAnonymousClass()Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ invoke-virtual {p1}, Ljava/lang/Class;->isLocalClass()Z │ @@ -334,15 +335,15 @@ │ :catch_0 │ move-exception v0 │ │ .line 65 │ .local v0, "e":Ljava/lang/CloneNotSupportedException; │ new-instance v1, Ljava/lang/AssertionError; │ │ - invoke-direct {v1}, Ljava/lang/AssertionError;->()V │ + invoke-direct {v1, v0}, Ljava/lang/AssertionError;->(Ljava/lang/Object;)V │ │ throw v1 │ .end method │ │ .method protected bridge synthetic clone()Ljava/lang/Object; │ .locals 1 │ .annotation system Ldalvik/annotation/Throws; │ @@ -442,375 +443,372 @@ │ iput-boolean v1, v0, Lcom/google/gson/internal/Excluder;->serializeInnerClasses:Z │ │ .line 87 │ return-object v0 │ .end method │ │ .method public excludeClass(Ljava/lang/Class;Z)Z │ - .locals 10 │ + .locals 8 │ .param p2, "serialize" # Z │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Ljava/lang/Class", │ "<*>;Z)Z" │ } │ .end annotation │ │ .prologue │ .local p1, "clazz":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ - const/4 v5, 0x1 │ + const/4 v4, 0x1 │ │ .line 192 │ - iget-wide v6, p0, Lcom/google/gson/internal/Excluder;->version:D │ + iget-wide v2, p0, Lcom/google/gson/internal/Excluder;->version:D │ │ - const-wide/high16 v8, -0x4010000000000000L # -1.0 │ + const-wide/high16 v6, -0x4010000000000000L # -1.0 │ │ - cmpl-double v3, v6, v8 │ + cmpl-double v2, v2, v6 │ │ - if-eqz v3, :cond_0 │ + if-eqz v2, :cond_0 │ │ - const-class v3, Lcom/google/gson/annotations/Since; │ + const-class v2, Lcom/google/gson/annotations/Since; │ │ - invoke-virtual {p1, v3}, Ljava/lang/Class;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; │ + .line 193 │ + invoke-virtual {p1, v2}, Ljava/lang/Class;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - check-cast v3, Lcom/google/gson/annotations/Since; │ + check-cast v2, Lcom/google/gson/annotations/Since; │ │ - const-class v4, Lcom/google/gson/annotations/Until; │ + const-class v3, Lcom/google/gson/annotations/Until; │ │ - invoke-virtual {p1, v4}, Ljava/lang/Class;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; │ + invoke-virtual {p1, v3}, Ljava/lang/Class;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - check-cast v4, Lcom/google/gson/annotations/Until; │ + check-cast v3, Lcom/google/gson/annotations/Until; │ │ - invoke-direct {p0, v3, v4}, Lcom/google/gson/internal/Excluder;->isValidVersion(Lcom/google/gson/annotations/Since;Lcom/google/gson/annotations/Until;)Z │ + invoke-direct {p0, v2, v3}, Lcom/google/gson/internal/Excluder;->isValidVersion(Lcom/google/gson/annotations/Since;Lcom/google/gson/annotations/Until;)Z │ │ - move-result v3 │ + move-result v2 │ │ - if-nez v3, :cond_0 │ + if-nez v2, :cond_0 │ │ - move v3, v5 │ + move v2, v4 │ │ .line 212 │ :goto_0 │ - return v3 │ + return v2 │ │ .line 197 │ :cond_0 │ - iget-boolean v3, p0, Lcom/google/gson/internal/Excluder;->serializeInnerClasses:Z │ + iget-boolean v2, p0, Lcom/google/gson/internal/Excluder;->serializeInnerClasses:Z │ │ - if-nez v3, :cond_1 │ + if-nez v2, :cond_1 │ │ invoke-direct {p0, p1}, Lcom/google/gson/internal/Excluder;->isInnerClass(Ljava/lang/Class;)Z │ │ - move-result v3 │ + move-result v2 │ │ - if-eqz v3, :cond_1 │ + if-eqz v2, :cond_1 │ │ - move v3, v5 │ + move v2, v4 │ │ .line 198 │ goto :goto_0 │ │ .line 201 │ :cond_1 │ invoke-direct {p0, p1}, Lcom/google/gson/internal/Excluder;->isAnonymousOrLocal(Ljava/lang/Class;)Z │ │ - move-result v3 │ + move-result v2 │ │ - if-eqz v3, :cond_2 │ + if-eqz v2, :cond_2 │ │ - move v3, v5 │ + move v2, v4 │ │ .line 202 │ goto :goto_0 │ │ .line 205 │ :cond_2 │ if-eqz p2, :cond_4 │ │ - iget-object v2, p0, Lcom/google/gson/internal/Excluder;->serializationStrategies:Ljava/util/List; │ + iget-object v1, p0, Lcom/google/gson/internal/Excluder;->serializationStrategies:Ljava/util/List; │ │ .line 206 │ - .local v2, "list":Ljava/util/List;, "Ljava/util/List;" │ + .local v1, "list":Ljava/util/List;, "Ljava/util/List;" │ :goto_1 │ - invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v1 │ + move-result-object v2 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :cond_3 │ - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v3 │ │ if-eqz v3, :cond_5 │ │ - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lcom/google/gson/ExclusionStrategy; │ │ .line 207 │ .local v0, "exclusionStrategy":Lcom/google/gson/ExclusionStrategy; │ invoke-interface {v0, p1}, Lcom/google/gson/ExclusionStrategy;->shouldSkipClass(Ljava/lang/Class;)Z │ │ move-result v3 │ │ if-eqz v3, :cond_3 │ │ - move v3, v5 │ + move v2, v4 │ │ .line 208 │ goto :goto_0 │ │ .line 205 │ .end local v0 # "exclusionStrategy":Lcom/google/gson/ExclusionStrategy; │ - .end local v1 # "i$":Ljava/util/Iterator; │ - .end local v2 # "list":Ljava/util/List;, "Ljava/util/List;" │ + .end local v1 # "list":Ljava/util/List;, "Ljava/util/List;" │ :cond_4 │ - iget-object v2, p0, Lcom/google/gson/internal/Excluder;->deserializationStrategies:Ljava/util/List; │ + iget-object v1, p0, Lcom/google/gson/internal/Excluder;->deserializationStrategies:Ljava/util/List; │ │ goto :goto_1 │ │ .line 212 │ - .restart local v1 # "i$":Ljava/util/Iterator; │ - .restart local v2 # "list":Ljava/util/List;, "Ljava/util/List;" │ + .restart local v1 # "list":Ljava/util/List;, "Ljava/util/List;" │ :cond_5 │ - const/4 v3, 0x0 │ + const/4 v2, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public excludeField(Ljava/lang/reflect/Field;Z)Z │ - .locals 12 │ + .locals 10 │ .param p1, "field" # Ljava/lang/reflect/Field; │ .param p2, "serialize" # Z │ │ .prologue │ - const/4 v7, 0x1 │ + const/4 v6, 0x1 │ │ .line 150 │ - iget v5, p0, Lcom/google/gson/internal/Excluder;->modifiers:I │ + iget v4, p0, Lcom/google/gson/internal/Excluder;->modifiers:I │ │ invoke-virtual {p1}, Ljava/lang/reflect/Field;->getModifiers()I │ │ - move-result v6 │ + move-result v5 │ │ - and-int/2addr v5, v6 │ + and-int/2addr v4, v5 │ │ - if-eqz v5, :cond_0 │ + if-eqz v4, :cond_0 │ │ - move v5, v7 │ + move v4, v6 │ │ .line 188 │ :goto_0 │ - return v5 │ + return v4 │ │ .line 154 │ :cond_0 │ - iget-wide v8, p0, Lcom/google/gson/internal/Excluder;->version:D │ + iget-wide v4, p0, Lcom/google/gson/internal/Excluder;->version:D │ │ - const-wide/high16 v10, -0x4010000000000000L # -1.0 │ + const-wide/high16 v8, -0x4010000000000000L # -1.0 │ │ - cmpl-double v5, v8, v10 │ + cmpl-double v4, v4, v8 │ │ - if-eqz v5, :cond_1 │ + if-eqz v4, :cond_1 │ │ - const-class v5, Lcom/google/gson/annotations/Since; │ + const-class v4, Lcom/google/gson/annotations/Since; │ │ - invoke-virtual {p1, v5}, Ljava/lang/reflect/Field;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; │ + .line 155 │ + invoke-virtual {p1, v4}, Ljava/lang/reflect/Field;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - check-cast v5, Lcom/google/gson/annotations/Since; │ + check-cast v4, Lcom/google/gson/annotations/Since; │ │ - const-class v6, Lcom/google/gson/annotations/Until; │ + const-class v5, Lcom/google/gson/annotations/Until; │ │ - invoke-virtual {p1, v6}, Ljava/lang/reflect/Field;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; │ + invoke-virtual {p1, v5}, Ljava/lang/reflect/Field;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; │ │ - move-result-object v6 │ + move-result-object v5 │ │ - check-cast v6, Lcom/google/gson/annotations/Until; │ + check-cast v5, Lcom/google/gson/annotations/Until; │ │ - invoke-direct {p0, v5, v6}, Lcom/google/gson/internal/Excluder;->isValidVersion(Lcom/google/gson/annotations/Since;Lcom/google/gson/annotations/Until;)Z │ + invoke-direct {p0, v4, v5}, Lcom/google/gson/internal/Excluder;->isValidVersion(Lcom/google/gson/annotations/Since;Lcom/google/gson/annotations/Until;)Z │ │ - move-result v5 │ + move-result v4 │ │ - if-nez v5, :cond_1 │ + if-nez v4, :cond_1 │ │ - move v5, v7 │ + move v4, v6 │ │ .line 156 │ goto :goto_0 │ │ .line 159 │ :cond_1 │ invoke-virtual {p1}, Ljava/lang/reflect/Field;->isSynthetic()Z │ │ - move-result v5 │ + move-result v4 │ │ - if-eqz v5, :cond_2 │ + if-eqz v4, :cond_2 │ │ - move v5, v7 │ + move v4, v6 │ │ .line 160 │ goto :goto_0 │ │ .line 163 │ :cond_2 │ - iget-boolean v5, p0, Lcom/google/gson/internal/Excluder;->requireExpose:Z │ + iget-boolean v4, p0, Lcom/google/gson/internal/Excluder;->requireExpose:Z │ │ - if-eqz v5, :cond_5 │ + if-eqz v4, :cond_5 │ │ .line 164 │ - const-class v5, Lcom/google/gson/annotations/Expose; │ + const-class v4, Lcom/google/gson/annotations/Expose; │ │ - invoke-virtual {p1, v5}, Ljava/lang/reflect/Field;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; │ + invoke-virtual {p1, v4}, Ljava/lang/reflect/Field;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; │ │ move-result-object v0 │ │ check-cast v0, Lcom/google/gson/annotations/Expose; │ │ .line 165 │ .local v0, "annotation":Lcom/google/gson/annotations/Expose; │ if-eqz v0, :cond_3 │ │ if-eqz p2, :cond_4 │ │ invoke-interface {v0}, Lcom/google/gson/annotations/Expose;->serialize()Z │ │ - move-result v5 │ + move-result v4 │ │ - if-nez v5, :cond_5 │ + if-nez v4, :cond_5 │ │ :cond_3 │ - move v5, v7 │ + move v4, v6 │ │ .line 166 │ goto :goto_0 │ │ .line 165 │ :cond_4 │ invoke-interface {v0}, Lcom/google/gson/annotations/Expose;->deserialize()Z │ │ - move-result v5 │ + move-result v4 │ │ - if-eqz v5, :cond_3 │ + if-eqz v4, :cond_3 │ │ .line 170 │ .end local v0 # "annotation":Lcom/google/gson/annotations/Expose; │ :cond_5 │ - iget-boolean v5, p0, Lcom/google/gson/internal/Excluder;->serializeInnerClasses:Z │ + iget-boolean v4, p0, Lcom/google/gson/internal/Excluder;->serializeInnerClasses:Z │ │ - if-nez v5, :cond_6 │ + if-nez v4, :cond_6 │ │ invoke-virtual {p1}, Ljava/lang/reflect/Field;->getType()Ljava/lang/Class; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - invoke-direct {p0, v5}, Lcom/google/gson/internal/Excluder;->isInnerClass(Ljava/lang/Class;)Z │ + invoke-direct {p0, v4}, Lcom/google/gson/internal/Excluder;->isInnerClass(Ljava/lang/Class;)Z │ │ - move-result v5 │ + move-result v4 │ │ - if-eqz v5, :cond_6 │ + if-eqz v4, :cond_6 │ │ - move v5, v7 │ + move v4, v6 │ │ .line 171 │ goto :goto_0 │ │ .line 174 │ :cond_6 │ invoke-virtual {p1}, Ljava/lang/reflect/Field;->getType()Ljava/lang/Class; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - invoke-direct {p0, v5}, Lcom/google/gson/internal/Excluder;->isAnonymousOrLocal(Ljava/lang/Class;)Z │ + invoke-direct {p0, v4}, Lcom/google/gson/internal/Excluder;->isAnonymousOrLocal(Ljava/lang/Class;)Z │ │ - move-result v5 │ + move-result v4 │ │ - if-eqz v5, :cond_7 │ + if-eqz v4, :cond_7 │ │ - move v5, v7 │ + move v4, v6 │ │ .line 175 │ goto :goto_0 │ │ .line 178 │ :cond_7 │ if-eqz p2, :cond_9 │ │ - iget-object v4, p0, Lcom/google/gson/internal/Excluder;->serializationStrategies:Ljava/util/List; │ + iget-object v3, p0, Lcom/google/gson/internal/Excluder;->serializationStrategies:Ljava/util/List; │ │ .line 179 │ - .local v4, "list":Ljava/util/List;, "Ljava/util/List;" │ + .local v3, "list":Ljava/util/List;, "Ljava/util/List;" │ :goto_1 │ - invoke-interface {v4}, Ljava/util/List;->isEmpty()Z │ + invoke-interface {v3}, Ljava/util/List;->isEmpty()Z │ │ - move-result v5 │ + move-result v4 │ │ - if-nez v5, :cond_a │ + if-nez v4, :cond_a │ │ .line 180 │ new-instance v2, Lcom/google/gson/FieldAttributes; │ │ invoke-direct {v2, p1}, Lcom/google/gson/FieldAttributes;->(Ljava/lang/reflect/Field;)V │ │ .line 181 │ .local v2, "fieldAttributes":Lcom/google/gson/FieldAttributes; │ - invoke-interface {v4}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v3 │ + move-result-object v4 │ │ - .local v3, "i$":Ljava/util/Iterator; │ :cond_8 │ - invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v5 │ │ if-eqz v5, :cond_a │ │ - invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Lcom/google/gson/ExclusionStrategy; │ │ .line 182 │ .local v1, "exclusionStrategy":Lcom/google/gson/ExclusionStrategy; │ invoke-interface {v1, v2}, Lcom/google/gson/ExclusionStrategy;->shouldSkipField(Lcom/google/gson/FieldAttributes;)Z │ │ move-result v5 │ │ if-eqz v5, :cond_8 │ │ - move v5, v7 │ + move v4, v6 │ │ .line 183 │ goto/16 :goto_0 │ │ .line 178 │ .end local v1 # "exclusionStrategy":Lcom/google/gson/ExclusionStrategy; │ .end local v2 # "fieldAttributes":Lcom/google/gson/FieldAttributes; │ - .end local v3 # "i$":Ljava/util/Iterator; │ - .end local v4 # "list":Ljava/util/List;, "Ljava/util/List;" │ + .end local v3 # "list":Ljava/util/List;, "Ljava/util/List;" │ :cond_9 │ - iget-object v4, p0, Lcom/google/gson/internal/Excluder;->deserializationStrategies:Ljava/util/List; │ + iget-object v3, p0, Lcom/google/gson/internal/Excluder;->deserializationStrategies:Ljava/util/List; │ │ goto :goto_1 │ │ .line 188 │ - .restart local v4 # "list":Ljava/util/List;, "Ljava/util/List;" │ + .restart local v3 # "list":Ljava/util/List;, "Ljava/util/List;" │ :cond_a │ - const/4 v5, 0x0 │ + const/4 v4, 0x0 │ │ goto/16 :goto_0 │ .end method │ │ .method public excludeFieldsWithoutExposeAnnotation()Lcom/google/gson/internal/Excluder; │ .locals 2 │ │ @@ -880,61 +878,54 @@ │ │ .line 108 │ :cond_1 │ return-object v0 │ .end method │ │ .method public varargs withModifiers([I)Lcom/google/gson/internal/Excluder; │ - .locals 6 │ + .locals 5 │ .param p1, "modifiers" # [I │ │ .prologue │ + const/4 v2, 0x0 │ + │ .line 76 │ invoke-virtual {p0}, Lcom/google/gson/internal/Excluder;->clone()Lcom/google/gson/internal/Excluder; │ │ - move-result-object v4 │ + move-result-object v1 │ │ .line 77 │ - .local v4, "result":Lcom/google/gson/internal/Excluder; │ - const/4 v5, 0x0 │ - │ - iput v5, v4, Lcom/google/gson/internal/Excluder;->modifiers:I │ + .local v1, "result":Lcom/google/gson/internal/Excluder; │ + iput v2, v1, Lcom/google/gson/internal/Excluder;->modifiers:I │ │ .line 78 │ - move-object v0, p1 │ - │ - .local v0, "arr$":[I │ - array-length v2, v0 │ + array-length v3, p1 │ │ - .local v2, "len$":I │ - const/4 v1, 0x0 │ - │ - .local v1, "i$":I │ :goto_0 │ - if-ge v1, v2, :cond_0 │ + if-ge v2, v3, :cond_0 │ │ - aget v3, v0, v1 │ + aget v0, p1, v2 │ │ .line 79 │ - .local v3, "modifier":I │ - iget v5, v4, Lcom/google/gson/internal/Excluder;->modifiers:I │ + .local v0, "modifier":I │ + iget v4, v1, Lcom/google/gson/internal/Excluder;->modifiers:I │ │ - or-int/2addr v5, v3 │ + or-int/2addr v4, v0 │ │ - iput v5, v4, Lcom/google/gson/internal/Excluder;->modifiers:I │ + iput v4, v1, Lcom/google/gson/internal/Excluder;->modifiers:I │ │ .line 78 │ - add-int/lit8 v1, v1, 0x1 │ + add-int/lit8 v2, v2, 0x1 │ │ goto :goto_0 │ │ .line 81 │ - .end local v3 # "modifier":I │ + .end local v0 # "modifier":I │ :cond_0 │ - return-object v4 │ + return-object v1 │ .end method │ │ .method public withVersion(D)Lcom/google/gson/internal/Excluder; │ .locals 1 │ .param p1, "ignoreVersionsAfter" # D │ │ .prologue ├── smali/com/google/gson/internal/ConstructorConstructor.smali │ @@ -28,22 +28,22 @@ │ "Ljava/lang/reflect/Type;", │ "Lcom/google/gson/InstanceCreator", │ "<*>;>;)V" │ } │ .end annotation │ │ .prologue │ - .line 47 │ + .line 51 │ .local p1, "instanceCreators":Ljava/util/Map;, "Ljava/util/Map;>;" │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 48 │ + .line 52 │ iput-object p1, p0, Lcom/google/gson/internal/ConstructorConstructor;->instanceCreators:Ljava/util/Map; │ │ - .line 49 │ + .line 53 │ return-void │ .end method │ │ .method private newDefaultConstructor(Ljava/lang/Class;)Lcom/google/gson/internal/ObjectConstructor; │ .locals 3 │ .annotation system Ldalvik/annotation/Signature; │ value = { │ @@ -54,56 +54,56 @@ │ "<-TT;>;)", │ "Lcom/google/gson/internal/ObjectConstructor", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 95 │ + .line 99 │ .local p1, "rawType":Ljava/lang/Class;, "Ljava/lang/Class<-TT;>;" │ const/4 v2, 0x0 │ │ :try_start_0 │ new-array v2, v2, [Ljava/lang/Class; │ │ invoke-virtual {p1, v2}, Ljava/lang/Class;->getDeclaredConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor; │ │ move-result-object v0 │ │ - .line 96 │ + .line 100 │ .local v0, "constructor":Ljava/lang/reflect/Constructor;, "Ljava/lang/reflect/Constructor<-TT;>;" │ invoke-virtual {v0}, Ljava/lang/reflect/Constructor;->isAccessible()Z │ │ move-result v2 │ │ if-nez v2, :cond_0 │ │ - .line 97 │ + .line 101 │ const/4 v2, 0x1 │ │ invoke-virtual {v0, v2}, Ljava/lang/reflect/Constructor;->setAccessible(Z)V │ │ - .line 99 │ + .line 103 │ :cond_0 │ new-instance v2, Lcom/google/gson/internal/ConstructorConstructor$3; │ │ invoke-direct {v2, p0, v0}, Lcom/google/gson/internal/ConstructorConstructor$3;->(Lcom/google/gson/internal/ConstructorConstructor;Ljava/lang/reflect/Constructor;)V │ :try_end_0 │ .catch Ljava/lang/NoSuchMethodException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 119 │ + .line 123 │ .end local v0 # "constructor":Ljava/lang/reflect/Constructor;, "Ljava/lang/reflect/Constructor<-TT;>;" │ :goto_0 │ return-object v2 │ │ - .line 118 │ + .line 122 │ :catch_0 │ move-exception v1 │ │ - .line 119 │ + .line 123 │ .local v1, "e":Ljava/lang/NoSuchMethodException; │ const/4 v2, 0x0 │ │ goto :goto_0 │ .end method │ │ .method private newDefaultImplementationConstructor(Ljava/lang/reflect/Type;Ljava/lang/Class;)Lcom/google/gson/internal/ObjectConstructor; │ @@ -119,139 +119,174 @@ │ "<-TT;>;)", │ "Lcom/google/gson/internal/ObjectConstructor", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 130 │ + .line 134 │ .local p2, "rawType":Ljava/lang/Class;, "Ljava/lang/Class<-TT;>;" │ const-class v0, Ljava/util/Collection; │ │ invoke-virtual {v0, p2}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_4 │ │ - .line 131 │ + .line 135 │ const-class v0, Ljava/util/SortedSet; │ │ invoke-virtual {v0, p2}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 132 │ + .line 136 │ new-instance v0, Lcom/google/gson/internal/ConstructorConstructor$4; │ │ invoke-direct {v0, p0}, Lcom/google/gson/internal/ConstructorConstructor$4;->(Lcom/google/gson/internal/ConstructorConstructor;)V │ │ - .line 197 │ + .line 213 │ .end local p1 # "type":Ljava/lang/reflect/Type; │ :goto_0 │ return-object v0 │ │ - .line 137 │ + .line 141 │ .restart local p1 # "type":Ljava/lang/reflect/Type; │ :cond_0 │ const-class v0, Ljava/util/EnumSet; │ │ invoke-virtual {v0, p2}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ - .line 138 │ + .line 142 │ new-instance v0, Lcom/google/gson/internal/ConstructorConstructor$5; │ │ invoke-direct {v0, p0, p1}, Lcom/google/gson/internal/ConstructorConstructor$5;->(Lcom/google/gson/internal/ConstructorConstructor;Ljava/lang/reflect/Type;)V │ │ goto :goto_0 │ │ - .line 153 │ + .line 157 │ :cond_1 │ const-class v0, Ljava/util/Set; │ │ invoke-virtual {v0, p2}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_2 │ │ - .line 154 │ + .line 158 │ new-instance v0, Lcom/google/gson/internal/ConstructorConstructor$6; │ │ invoke-direct {v0, p0}, Lcom/google/gson/internal/ConstructorConstructor$6;->(Lcom/google/gson/internal/ConstructorConstructor;)V │ │ goto :goto_0 │ │ - .line 159 │ + .line 163 │ :cond_2 │ const-class v0, Ljava/util/Queue; │ │ invoke-virtual {v0, p2}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_3 │ │ - .line 160 │ + .line 164 │ new-instance v0, Lcom/google/gson/internal/ConstructorConstructor$7; │ │ invoke-direct {v0, p0}, Lcom/google/gson/internal/ConstructorConstructor$7;->(Lcom/google/gson/internal/ConstructorConstructor;)V │ │ goto :goto_0 │ │ - .line 166 │ + .line 170 │ :cond_3 │ new-instance v0, Lcom/google/gson/internal/ConstructorConstructor$8; │ │ invoke-direct {v0, p0}, Lcom/google/gson/internal/ConstructorConstructor$8;->(Lcom/google/gson/internal/ConstructorConstructor;)V │ │ goto :goto_0 │ │ - .line 174 │ + .line 178 │ :cond_4 │ const-class v0, Ljava/util/Map; │ │ invoke-virtual {v0, p2}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z │ │ move-result v0 │ │ - if-eqz v0, :cond_7 │ + if-eqz v0, :cond_9 │ │ - .line 175 │ - const-class v0, Ljava/util/SortedMap; │ + .line 179 │ + const-class v0, Ljava/util/concurrent/ConcurrentNavigableMap; │ │ invoke-virtual {v0, p2}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_5 │ │ - .line 176 │ + .line 180 │ new-instance v0, Lcom/google/gson/internal/ConstructorConstructor$9; │ │ invoke-direct {v0, p0}, Lcom/google/gson/internal/ConstructorConstructor$9;->(Lcom/google/gson/internal/ConstructorConstructor;)V │ │ goto :goto_0 │ │ - .line 181 │ + .line 185 │ :cond_5 │ - instance-of v0, p1, Ljava/lang/reflect/ParameterizedType; │ + const-class v0, Ljava/util/concurrent/ConcurrentMap; │ + │ + invoke-virtual {v0, p2}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z │ + │ + move-result v0 │ │ if-eqz v0, :cond_6 │ │ + .line 186 │ + new-instance v0, Lcom/google/gson/internal/ConstructorConstructor$10; │ + │ + invoke-direct {v0, p0}, Lcom/google/gson/internal/ConstructorConstructor$10;->(Lcom/google/gson/internal/ConstructorConstructor;)V │ + │ + goto :goto_0 │ + │ + .line 191 │ + :cond_6 │ + const-class v0, Ljava/util/SortedMap; │ + │ + invoke-virtual {v0, p2}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z │ + │ + move-result v0 │ + │ + if-eqz v0, :cond_7 │ + │ + .line 192 │ + new-instance v0, Lcom/google/gson/internal/ConstructorConstructor$11; │ + │ + invoke-direct {v0, p0}, Lcom/google/gson/internal/ConstructorConstructor$11;->(Lcom/google/gson/internal/ConstructorConstructor;)V │ + │ + goto :goto_0 │ + │ + .line 197 │ + :cond_7 │ + instance-of v0, p1, Ljava/lang/reflect/ParameterizedType; │ + │ + if-eqz v0, :cond_8 │ + │ const-class v0, Ljava/lang/String; │ │ check-cast p1, Ljava/lang/reflect/ParameterizedType; │ │ + .line 198 │ .end local p1 # "type":Ljava/lang/reflect/Type; │ invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type; │ │ move-result-object v1 │ │ const/4 v2, 0x0 │ │ @@ -261,41 +296,42 @@ │ │ move-result-object v1 │ │ invoke-virtual {v1}, Lcom/google/gson/reflect/TypeToken;->getRawType()Ljava/lang/Class; │ │ move-result-object v1 │ │ + .line 197 │ invoke-virtual {v0, v1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z │ │ move-result v0 │ │ - if-nez v0, :cond_6 │ + if-nez v0, :cond_8 │ │ - .line 183 │ - new-instance v0, Lcom/google/gson/internal/ConstructorConstructor$10; │ + .line 199 │ + new-instance v0, Lcom/google/gson/internal/ConstructorConstructor$12; │ │ - invoke-direct {v0, p0}, Lcom/google/gson/internal/ConstructorConstructor$10;->(Lcom/google/gson/internal/ConstructorConstructor;)V │ + invoke-direct {v0, p0}, Lcom/google/gson/internal/ConstructorConstructor$12;->(Lcom/google/gson/internal/ConstructorConstructor;)V │ │ - goto :goto_0 │ + goto/16 :goto_0 │ │ - .line 189 │ - :cond_6 │ - new-instance v0, Lcom/google/gson/internal/ConstructorConstructor$11; │ + .line 205 │ + :cond_8 │ + new-instance v0, Lcom/google/gson/internal/ConstructorConstructor$13; │ │ - invoke-direct {v0, p0}, Lcom/google/gson/internal/ConstructorConstructor$11;->(Lcom/google/gson/internal/ConstructorConstructor;)V │ + invoke-direct {v0, p0}, Lcom/google/gson/internal/ConstructorConstructor$13;->(Lcom/google/gson/internal/ConstructorConstructor;)V │ │ - goto :goto_0 │ + goto/16 :goto_0 │ │ - .line 197 │ + .line 213 │ .restart local p1 # "type":Ljava/lang/reflect/Type; │ - :cond_7 │ + :cond_9 │ const/4 v0, 0x0 │ │ - goto :goto_0 │ + goto/16 :goto_0 │ .end method │ │ .method private newUnsafeAllocator(Ljava/lang/reflect/Type;Ljava/lang/Class;)Lcom/google/gson/internal/ObjectConstructor; │ .locals 1 │ .param p1, "type" # Ljava/lang/reflect/Type; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ @@ -307,19 +343,19 @@ │ "<-TT;>;)", │ "Lcom/google/gson/internal/ObjectConstructor", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 202 │ + .line 218 │ .local p2, "rawType":Ljava/lang/Class;, "Ljava/lang/Class<-TT;>;" │ - new-instance v0, Lcom/google/gson/internal/ConstructorConstructor$12; │ + new-instance v0, Lcom/google/gson/internal/ConstructorConstructor$14; │ │ - invoke-direct {v0, p0, p2, p1}, Lcom/google/gson/internal/ConstructorConstructor$12;->(Lcom/google/gson/internal/ConstructorConstructor;Ljava/lang/Class;Ljava/lang/reflect/Type;)V │ + invoke-direct {v0, p0, p2, p1}, Lcom/google/gson/internal/ConstructorConstructor$14;->(Lcom/google/gson/internal/ConstructorConstructor;Ljava/lang/Class;Ljava/lang/reflect/Type;)V │ │ return-object v0 │ .end method │ │ │ # virtual methods │ .method public get(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/internal/ObjectConstructor; │ @@ -333,109 +369,110 @@ │ ";)", │ "Lcom/google/gson/internal/ObjectConstructor", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 52 │ + .line 56 │ .local p1, "typeToken":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken;" │ invoke-virtual {p1}, Lcom/google/gson/reflect/TypeToken;->getType()Ljava/lang/reflect/Type; │ │ move-result-object v4 │ │ - .line 53 │ + .line 57 │ .local v4, "type":Ljava/lang/reflect/Type; │ invoke-virtual {p1}, Lcom/google/gson/reflect/TypeToken;->getRawType()Ljava/lang/Class; │ │ move-result-object v2 │ │ - .line 58 │ + .line 62 │ .local v2, "rawType":Ljava/lang/Class;, "Ljava/lang/Class<-TT;>;" │ iget-object v6, p0, Lcom/google/gson/internal/ConstructorConstructor;->instanceCreators:Ljava/util/Map; │ │ invoke-interface {v6, v4}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v5 │ │ check-cast v5, Lcom/google/gson/InstanceCreator; │ │ - .line 59 │ + .line 63 │ .local v5, "typeCreator":Lcom/google/gson/InstanceCreator;, "Lcom/google/gson/InstanceCreator;" │ if-eqz v5, :cond_1 │ │ - .line 60 │ + .line 64 │ new-instance v0, Lcom/google/gson/internal/ConstructorConstructor$1; │ │ invoke-direct {v0, p0, v5, v4}, Lcom/google/gson/internal/ConstructorConstructor$1;->(Lcom/google/gson/internal/ConstructorConstructor;Lcom/google/gson/InstanceCreator;Ljava/lang/reflect/Type;)V │ │ - .line 90 │ + .line 94 │ :cond_0 │ :goto_0 │ return-object v0 │ │ - .line 69 │ + .line 73 │ :cond_1 │ iget-object v6, p0, Lcom/google/gson/internal/ConstructorConstructor;->instanceCreators:Ljava/util/Map; │ │ + .line 74 │ invoke-interface {v6, v2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v3 │ │ check-cast v3, Lcom/google/gson/InstanceCreator; │ │ - .line 71 │ + .line 75 │ .local v3, "rawTypeCreator":Lcom/google/gson/InstanceCreator;, "Lcom/google/gson/InstanceCreator;" │ if-eqz v3, :cond_2 │ │ - .line 72 │ + .line 76 │ new-instance v0, Lcom/google/gson/internal/ConstructorConstructor$2; │ │ invoke-direct {v0, p0, v3, v4}, Lcom/google/gson/internal/ConstructorConstructor$2;->(Lcom/google/gson/internal/ConstructorConstructor;Lcom/google/gson/InstanceCreator;Ljava/lang/reflect/Type;)V │ │ goto :goto_0 │ │ - .line 79 │ + .line 83 │ :cond_2 │ invoke-direct {p0, v2}, Lcom/google/gson/internal/ConstructorConstructor;->newDefaultConstructor(Ljava/lang/Class;)Lcom/google/gson/internal/ObjectConstructor; │ │ move-result-object v0 │ │ - .line 80 │ + .line 84 │ .local v0, "defaultConstructor":Lcom/google/gson/internal/ObjectConstructor;, "Lcom/google/gson/internal/ObjectConstructor;" │ if-nez v0, :cond_0 │ │ - .line 84 │ + .line 88 │ invoke-direct {p0, v4, v2}, Lcom/google/gson/internal/ConstructorConstructor;->newDefaultImplementationConstructor(Ljava/lang/reflect/Type;Ljava/lang/Class;)Lcom/google/gson/internal/ObjectConstructor; │ │ move-result-object v1 │ │ - .line 85 │ + .line 89 │ .local v1, "defaultImplementation":Lcom/google/gson/internal/ObjectConstructor;, "Lcom/google/gson/internal/ObjectConstructor;" │ if-eqz v1, :cond_3 │ │ move-object v0, v1 │ │ - .line 86 │ + .line 90 │ goto :goto_0 │ │ - .line 90 │ + .line 94 │ :cond_3 │ invoke-direct {p0, v4, v2}, Lcom/google/gson/internal/ConstructorConstructor;->newUnsafeAllocator(Ljava/lang/reflect/Type;Ljava/lang/Class;)Lcom/google/gson/internal/ObjectConstructor; │ │ move-result-object v0 │ │ goto :goto_0 │ .end method │ │ .method public toString()Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 218 │ + .line 234 │ iget-object v0, p0, Lcom/google/gson/internal/ConstructorConstructor;->instanceCreators:Ljava/util/Map; │ │ invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ return-object v0 ├── smali/com/google/gson/internal/LinkedHashTreeMap$1.smali │ @@ -52,24 +52,20 @@ │ move-result v0 │ │ return v0 │ .end method │ │ .method public bridge synthetic compare(Ljava/lang/Object;Ljava/lang/Object;)I │ .locals 1 │ - .param p1, "x0" # Ljava/lang/Object; │ - .param p2, "x1" # Ljava/lang/Object; │ │ .prologue │ .line 42 │ check-cast p1, Ljava/lang/Comparable; │ │ - .end local p1 # "x0":Ljava/lang/Object; │ check-cast p2, Ljava/lang/Comparable; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/LinkedHashTreeMap$1;->compare(Ljava/lang/Comparable;Ljava/lang/Comparable;)I │ │ move-result v0 │ │ return v0 │ .end method ├── smali/com/google/gson/internal/LazilyParsedNumber.smali │ @@ -9,34 +9,34 @@ │ │ # direct methods │ .method public constructor (Ljava/lang/String;)V │ .locals 0 │ .param p1, "value" # Ljava/lang/String; │ │ .prologue │ - .line 29 │ + .line 30 │ invoke-direct {p0}, Ljava/lang/Number;->()V │ │ - .line 30 │ + .line 31 │ iput-object p1, p0, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String; │ │ - .line 31 │ + .line 32 │ return-void │ .end method │ │ .method private writeReplace()Ljava/lang/Object; │ .locals 2 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/ObjectStreamException; │ } │ .end annotation │ │ .prologue │ - .line 76 │ + .line 77 │ new-instance v0, Ljava/math/BigDecimal; │ │ iget-object v1, p0, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String; │ │ invoke-direct {v0, v1}, Ljava/math/BigDecimal;->(Ljava/lang/String;)V │ │ return-object v0 │ @@ -44,80 +44,148 @@ │ │ │ # virtual methods │ .method public doubleValue()D │ .locals 2 │ │ .prologue │ - .line 62 │ + .line 63 │ iget-object v0, p0, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String; │ │ invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D │ │ move-result-wide v0 │ │ return-wide v0 │ .end method │ │ +.method public equals(Ljava/lang/Object;)Z │ + .locals 5 │ + .param p1, "obj" # Ljava/lang/Object; │ + │ + .prologue │ + const/4 v2, 0x1 │ + │ + const/4 v1, 0x0 │ + │ + .line 87 │ + if-ne p0, p1, :cond_1 │ + │ + move v1, v2 │ + │ + .line 94 │ + :cond_0 │ + :goto_0 │ + return v1 │ + │ + .line 90 │ + :cond_1 │ + instance-of v3, p1, Lcom/google/gson/internal/LazilyParsedNumber; │ + │ + if-eqz v3, :cond_0 │ + │ + move-object v0, p1 │ + │ + .line 91 │ + check-cast v0, Lcom/google/gson/internal/LazilyParsedNumber; │ + │ + .line 92 │ + .local v0, "other":Lcom/google/gson/internal/LazilyParsedNumber; │ + iget-object v3, p0, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String; │ + │ + iget-object v4, v0, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String; │ + │ + if-eq v3, v4, :cond_2 │ + │ + iget-object v3, p0, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String; │ + │ + iget-object v4, v0, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String; │ + │ + invoke-virtual {v3, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + │ + move-result v3 │ + │ + if-eqz v3, :cond_0 │ + │ + :cond_2 │ + move v1, v2 │ + │ + goto :goto_0 │ +.end method │ + │ .method public floatValue()F │ .locals 1 │ │ .prologue │ - .line 57 │ + .line 58 │ iget-object v0, p0, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String; │ │ invoke-static {v0}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F │ │ move-result v0 │ │ return v0 │ .end method │ │ +.method public hashCode()I │ + .locals 1 │ + │ + .prologue │ + .line 82 │ + iget-object v0, p0, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String; │ + │ + invoke-virtual {v0}, Ljava/lang/String;->hashCode()I │ + │ + move-result v0 │ + │ + return v0 │ +.end method │ + │ .method public intValue()I │ .locals 4 │ │ .prologue │ - .line 36 │ + .line 37 │ :try_start_0 │ iget-object v2, p0, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String; │ │ invoke-static {v2}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I │ :try_end_0 │ .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 │ │ move-result v2 │ │ - .line 41 │ + .line 42 │ :goto_0 │ return v2 │ │ - .line 37 │ + .line 38 │ :catch_0 │ move-exception v0 │ │ - .line 39 │ + .line 40 │ .local v0, "e":Ljava/lang/NumberFormatException; │ :try_start_1 │ iget-object v2, p0, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String; │ │ invoke-static {v2}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J │ :try_end_1 │ .catch Ljava/lang/NumberFormatException; {:try_start_1 .. :try_end_1} :catch_1 │ │ move-result-wide v2 │ │ long-to-int v2, v2 │ │ goto :goto_0 │ │ - .line 40 │ + .line 41 │ :catch_1 │ move-exception v1 │ │ - .line 41 │ + .line 42 │ .local v1, "nfe":Ljava/lang/NumberFormatException; │ new-instance v2, Ljava/math/BigDecimal; │ │ iget-object v3, p0, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String; │ │ invoke-direct {v2, v3}, Ljava/math/BigDecimal;->(Ljava/lang/String;)V │ │ @@ -128,33 +196,33 @@ │ goto :goto_0 │ .end method │ │ .method public longValue()J │ .locals 4 │ │ .prologue │ - .line 49 │ + .line 50 │ :try_start_0 │ iget-object v1, p0, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String; │ │ invoke-static {v1}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J │ :try_end_0 │ .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 │ │ move-result-wide v2 │ │ - .line 51 │ + .line 52 │ :goto_0 │ return-wide v2 │ │ - .line 50 │ + .line 51 │ :catch_0 │ move-exception v0 │ │ - .line 51 │ + .line 52 │ .local v0, "e":Ljava/lang/NumberFormatException; │ new-instance v1, Ljava/math/BigDecimal; │ │ iget-object v2, p0, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String; │ │ invoke-direct {v1, v2}, Ljava/math/BigDecimal;->(Ljava/lang/String;)V │ │ @@ -165,12 +233,12 @@ │ goto :goto_0 │ .end method │ │ .method public toString()Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 67 │ + .line 68 │ iget-object v0, p0, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String; │ │ return-object v0 │ .end method ├── smali/com/google/gson/internal/LinkedHashTreeMap$EntrySet$1.smali │ @@ -27,38 +27,37 @@ │ │ # instance fields │ .field final synthetic this$1:Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet; │ │ │ # direct methods │ .method constructor (Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet;)V │ - .locals 2 │ + .locals 1 │ + .param p1, "this$1" # Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet; │ │ .prologue │ - .line 797 │ - .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet$1;, "Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet.1;" │ + .line 800 │ + .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet$1;, "Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet$1;" │ iput-object p1, p0, Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet$1;->this$1:Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet; │ │ iget-object v0, p1, Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet;->this$0:Lcom/google/gson/internal/LinkedHashTreeMap; │ │ - const/4 v1, 0x0 │ - │ - invoke-direct {p0, v0, v1}, Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;->(Lcom/google/gson/internal/LinkedHashTreeMap;Lcom/google/gson/internal/LinkedHashTreeMap$1;)V │ + invoke-direct {p0, v0}, Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;->(Lcom/google/gson/internal/LinkedHashTreeMap;)V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public bridge synthetic next()Ljava/lang/Object; │ .locals 1 │ │ .prologue │ - .line 797 │ - .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet$1;, "Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet.1;" │ + .line 800 │ + .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet$1;, "Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet$1;" │ invoke-virtual {p0}, Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet$1;->next()Ljava/util/Map$Entry; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ @@ -69,15 +68,15 @@ │ "()", │ "Ljava/util/Map$Entry", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 799 │ - .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet$1;, "Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet.1;" │ + .line 802 │ + .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet$1;, "Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet$1;" │ invoke-virtual {p0}, Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet$1;->nextNode()Lcom/google/gson/internal/LinkedHashTreeMap$Node; │ │ move-result-object v0 │ │ return-object v0 │ .end method ├── smali/com/google/gson/internal/LinkedHashTreeMap$EntrySet.smali │ @@ -26,47 +26,48 @@ │ # instance fields │ .field final synthetic this$0:Lcom/google/gson/internal/LinkedHashTreeMap; │ │ │ # direct methods │ .method constructor (Lcom/google/gson/internal/LinkedHashTreeMap;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/google/gson/internal/LinkedHashTreeMap; │ │ .prologue │ - .line 791 │ + .line 794 │ .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet;, "Lcom/google/gson/internal/LinkedHashTreeMap.EntrySet;" │ iput-object p1, p0, Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet;->this$0:Lcom/google/gson/internal/LinkedHashTreeMap; │ │ invoke-direct {p0}, Ljava/util/AbstractSet;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public clear()V │ .locals 1 │ │ .prologue │ - .line 822 │ + .line 825 │ .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet;, "Lcom/google/gson/internal/LinkedHashTreeMap.EntrySet;" │ iget-object v0, p0, Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet;->this$0:Lcom/google/gson/internal/LinkedHashTreeMap; │ │ invoke-virtual {v0}, Lcom/google/gson/internal/LinkedHashTreeMap;->clear()V │ │ - .line 823 │ + .line 826 │ return-void │ .end method │ │ .method public contains(Ljava/lang/Object;)Z │ .locals 1 │ .param p1, "o" # Ljava/lang/Object; │ │ .prologue │ - .line 805 │ + .line 808 │ .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet;, "Lcom/google/gson/internal/LinkedHashTreeMap.EntrySet;" │ instance-of v0, p1, Ljava/util/Map$Entry; │ │ if-eqz v0, :cond_0 │ │ iget-object v0, p0, Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet;->this$0:Lcom/google/gson/internal/LinkedHashTreeMap; │ │ @@ -99,15 +100,15 @@ │ "<", │ "Ljava/util/Map$Entry", │ ";>;" │ } │ .end annotation │ │ .prologue │ - .line 797 │ + .line 800 │ .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet;, "Lcom/google/gson/internal/LinkedHashTreeMap.EntrySet;" │ new-instance v0, Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet$1; │ │ invoke-direct {v0, p0}, Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet$1;->(Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet;)V │ │ return-object v0 │ .end method │ @@ -118,57 +119,57 @@ │ │ .prologue │ .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet;, "Lcom/google/gson/internal/LinkedHashTreeMap.EntrySet;" │ const/4 v2, 0x1 │ │ const/4 v1, 0x0 │ │ - .line 809 │ + .line 812 │ instance-of v3, p1, Ljava/util/Map$Entry; │ │ if-nez v3, :cond_1 │ │ - .line 818 │ + .line 821 │ .end local p1 # "o":Ljava/lang/Object; │ :cond_0 │ :goto_0 │ return v1 │ │ - .line 813 │ + .line 816 │ .restart local p1 # "o":Ljava/lang/Object; │ :cond_1 │ iget-object v3, p0, Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet;->this$0:Lcom/google/gson/internal/LinkedHashTreeMap; │ │ check-cast p1, Ljava/util/Map$Entry; │ │ .end local p1 # "o":Ljava/lang/Object; │ invoke-virtual {v3, p1}, Lcom/google/gson/internal/LinkedHashTreeMap;->findByEntry(Ljava/util/Map$Entry;)Lcom/google/gson/internal/LinkedHashTreeMap$Node; │ │ move-result-object v0 │ │ - .line 814 │ + .line 817 │ .local v0, "node":Lcom/google/gson/internal/LinkedHashTreeMap$Node;, "Lcom/google/gson/internal/LinkedHashTreeMap$Node;" │ if-eqz v0, :cond_0 │ │ - .line 817 │ + .line 820 │ iget-object v1, p0, Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet;->this$0:Lcom/google/gson/internal/LinkedHashTreeMap; │ │ invoke-virtual {v1, v0, v2}, Lcom/google/gson/internal/LinkedHashTreeMap;->removeInternal(Lcom/google/gson/internal/LinkedHashTreeMap$Node;Z)V │ │ move v1, v2 │ │ - .line 818 │ + .line 821 │ goto :goto_0 │ .end method │ │ .method public size()I │ .locals 1 │ │ .prologue │ - .line 793 │ + .line 796 │ .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet;, "Lcom/google/gson/internal/LinkedHashTreeMap.EntrySet;" │ iget-object v0, p0, Lcom/google/gson/internal/LinkedHashTreeMap$EntrySet;->this$0:Lcom/google/gson/internal/LinkedHashTreeMap; │ │ iget v0, v0, Lcom/google/gson/internal/LinkedHashTreeMap;->size:I │ │ return v0 │ .end method ├── smali/com/google/gson/internal/LinkedHashTreeMap$KeySet$1.smali │ @@ -25,26 +25,25 @@ │ │ # instance fields │ .field final synthetic this$1:Lcom/google/gson/internal/LinkedHashTreeMap$KeySet; │ │ │ # direct methods │ .method constructor (Lcom/google/gson/internal/LinkedHashTreeMap$KeySet;)V │ - .locals 2 │ + .locals 1 │ + .param p1, "this$1" # Lcom/google/gson/internal/LinkedHashTreeMap$KeySet; │ │ .prologue │ - .line 832 │ - .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap$KeySet$1;, "Lcom/google/gson/internal/LinkedHashTreeMap$KeySet.1;" │ + .line 835 │ + .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap$KeySet$1;, "Lcom/google/gson/internal/LinkedHashTreeMap$KeySet$1;" │ iput-object p1, p0, Lcom/google/gson/internal/LinkedHashTreeMap$KeySet$1;->this$1:Lcom/google/gson/internal/LinkedHashTreeMap$KeySet; │ │ iget-object v0, p1, Lcom/google/gson/internal/LinkedHashTreeMap$KeySet;->this$0:Lcom/google/gson/internal/LinkedHashTreeMap; │ │ - const/4 v1, 0x0 │ - │ - invoke-direct {p0, v0, v1}, Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;->(Lcom/google/gson/internal/LinkedHashTreeMap;Lcom/google/gson/internal/LinkedHashTreeMap$1;)V │ + invoke-direct {p0, v0}, Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;->(Lcom/google/gson/internal/LinkedHashTreeMap;)V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public next()Ljava/lang/Object; │ @@ -52,16 +51,16 @@ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "()TK;" │ } │ .end annotation │ │ .prologue │ - .line 834 │ - .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap$KeySet$1;, "Lcom/google/gson/internal/LinkedHashTreeMap$KeySet.1;" │ + .line 837 │ + .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap$KeySet$1;, "Lcom/google/gson/internal/LinkedHashTreeMap$KeySet$1;" │ invoke-virtual {p0}, Lcom/google/gson/internal/LinkedHashTreeMap$KeySet$1;->nextNode()Lcom/google/gson/internal/LinkedHashTreeMap$Node; │ │ move-result-object v0 │ │ iget-object v0, v0, Lcom/google/gson/internal/LinkedHashTreeMap$Node;->key:Ljava/lang/Object; │ │ return-object v0 ├── smali/com/google/gson/internal/LinkedHashTreeMap$KeySet.smali │ @@ -24,47 +24,48 @@ │ # instance fields │ .field final synthetic this$0:Lcom/google/gson/internal/LinkedHashTreeMap; │ │ │ # direct methods │ .method constructor (Lcom/google/gson/internal/LinkedHashTreeMap;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/google/gson/internal/LinkedHashTreeMap; │ │ .prologue │ - .line 826 │ + .line 829 │ .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap$KeySet;, "Lcom/google/gson/internal/LinkedHashTreeMap.KeySet;" │ iput-object p1, p0, Lcom/google/gson/internal/LinkedHashTreeMap$KeySet;->this$0:Lcom/google/gson/internal/LinkedHashTreeMap; │ │ invoke-direct {p0}, Ljava/util/AbstractSet;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public clear()V │ .locals 1 │ │ .prologue │ - .line 848 │ + .line 851 │ .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap$KeySet;, "Lcom/google/gson/internal/LinkedHashTreeMap.KeySet;" │ iget-object v0, p0, Lcom/google/gson/internal/LinkedHashTreeMap$KeySet;->this$0:Lcom/google/gson/internal/LinkedHashTreeMap; │ │ invoke-virtual {v0}, Lcom/google/gson/internal/LinkedHashTreeMap;->clear()V │ │ - .line 849 │ + .line 852 │ return-void │ .end method │ │ .method public contains(Ljava/lang/Object;)Z │ .locals 1 │ .param p1, "o" # Ljava/lang/Object; │ │ .prologue │ - .line 840 │ + .line 843 │ .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap$KeySet;, "Lcom/google/gson/internal/LinkedHashTreeMap.KeySet;" │ iget-object v0, p0, Lcom/google/gson/internal/LinkedHashTreeMap$KeySet;->this$0:Lcom/google/gson/internal/LinkedHashTreeMap; │ │ invoke-virtual {v0, p1}, Lcom/google/gson/internal/LinkedHashTreeMap;->containsKey(Ljava/lang/Object;)Z │ │ move-result v0 │ │ @@ -78,29 +79,29 @@ │ "()", │ "Ljava/util/Iterator", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 832 │ + .line 835 │ .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap$KeySet;, "Lcom/google/gson/internal/LinkedHashTreeMap.KeySet;" │ new-instance v0, Lcom/google/gson/internal/LinkedHashTreeMap$KeySet$1; │ │ invoke-direct {v0, p0}, Lcom/google/gson/internal/LinkedHashTreeMap$KeySet$1;->(Lcom/google/gson/internal/LinkedHashTreeMap$KeySet;)V │ │ return-object v0 │ .end method │ │ .method public remove(Ljava/lang/Object;)Z │ .locals 1 │ .param p1, "key" # Ljava/lang/Object; │ │ .prologue │ - .line 844 │ + .line 847 │ .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap$KeySet;, "Lcom/google/gson/internal/LinkedHashTreeMap.KeySet;" │ iget-object v0, p0, Lcom/google/gson/internal/LinkedHashTreeMap$KeySet;->this$0:Lcom/google/gson/internal/LinkedHashTreeMap; │ │ invoke-virtual {v0, p1}, Lcom/google/gson/internal/LinkedHashTreeMap;->removeInternalByKey(Ljava/lang/Object;)Lcom/google/gson/internal/LinkedHashTreeMap$Node; │ │ move-result-object v0 │ │ @@ -117,15 +118,15 @@ │ goto :goto_0 │ .end method │ │ .method public size()I │ .locals 1 │ │ .prologue │ - .line 828 │ + .line 831 │ .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap$KeySet;, "Lcom/google/gson/internal/LinkedHashTreeMap.KeySet;" │ iget-object v0, p0, Lcom/google/gson/internal/LinkedHashTreeMap$KeySet;->this$0:Lcom/google/gson/internal/LinkedHashTreeMap; │ │ iget v0, v0, Lcom/google/gson/internal/LinkedHashTreeMap;->size:I │ │ return v0 │ .end method ├── smali/com/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator.smali │ @@ -49,19 +49,19 @@ │ .end annotation │ .end field │ │ .field final synthetic this$0:Lcom/google/gson/internal/LinkedHashTreeMap; │ │ │ # direct methods │ -.method private constructor (Lcom/google/gson/internal/LinkedHashTreeMap;)V │ +.method constructor (Lcom/google/gson/internal/LinkedHashTreeMap;)V │ .locals 1 │ │ .prologue │ - .line 760 │ + .line 765 │ .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;, "Lcom/google/gson/internal/LinkedHashTreeMap.LinkedTreeMapIterator;" │ iput-object p1, p0, Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;->this$0:Lcom/google/gson/internal/LinkedHashTreeMap; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ .line 761 │ iget-object v0, p0, Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;->this$0:Lcom/google/gson/internal/LinkedHashTreeMap; │ @@ -80,37 +80,25 @@ │ .line 763 │ iget-object v0, p0, Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;->this$0:Lcom/google/gson/internal/LinkedHashTreeMap; │ │ iget v0, v0, Lcom/google/gson/internal/LinkedHashTreeMap;->modCount:I │ │ iput v0, p0, Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;->expectedModCount:I │ │ - return-void │ -.end method │ - │ -.method synthetic constructor (Lcom/google/gson/internal/LinkedHashTreeMap;Lcom/google/gson/internal/LinkedHashTreeMap$1;)V │ - .locals 0 │ - .param p1, "x0" # Lcom/google/gson/internal/LinkedHashTreeMap; │ - .param p2, "x1" # Lcom/google/gson/internal/LinkedHashTreeMap$1; │ - │ - .prologue │ - .line 760 │ - .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;, "Lcom/google/gson/internal/LinkedHashTreeMap.LinkedTreeMapIterator;" │ - invoke-direct {p0, p1}, Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;->(Lcom/google/gson/internal/LinkedHashTreeMap;)V │ - │ + .line 766 │ return-void │ .end method │ │ │ # virtual methods │ .method public final hasNext()Z │ .locals 2 │ │ .prologue │ - .line 766 │ + .line 769 │ .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;, "Lcom/google/gson/internal/LinkedHashTreeMap.LinkedTreeMapIterator;" │ iget-object v0, p0, Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;->next:Lcom/google/gson/internal/LinkedHashTreeMap$Node; │ │ iget-object v1, p0, Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;->this$0:Lcom/google/gson/internal/LinkedHashTreeMap; │ │ iget-object v1, v1, Lcom/google/gson/internal/LinkedHashTreeMap;->header:Lcom/google/gson/internal/LinkedHashTreeMap$Node; │ │ @@ -134,97 +122,97 @@ │ "()", │ "Lcom/google/gson/internal/LinkedHashTreeMap$Node", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 770 │ + .line 773 │ .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;, "Lcom/google/gson/internal/LinkedHashTreeMap.LinkedTreeMapIterator;" │ iget-object v0, p0, Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;->next:Lcom/google/gson/internal/LinkedHashTreeMap$Node; │ │ - .line 771 │ + .line 774 │ .local v0, "e":Lcom/google/gson/internal/LinkedHashTreeMap$Node;, "Lcom/google/gson/internal/LinkedHashTreeMap$Node;" │ iget-object v1, p0, Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;->this$0:Lcom/google/gson/internal/LinkedHashTreeMap; │ │ iget-object v1, v1, Lcom/google/gson/internal/LinkedHashTreeMap;->header:Lcom/google/gson/internal/LinkedHashTreeMap$Node; │ │ if-ne v0, v1, :cond_0 │ │ - .line 772 │ + .line 775 │ new-instance v1, Ljava/util/NoSuchElementException; │ │ invoke-direct {v1}, Ljava/util/NoSuchElementException;->()V │ │ throw v1 │ │ - .line 774 │ + .line 777 │ :cond_0 │ iget-object v1, p0, Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;->this$0:Lcom/google/gson/internal/LinkedHashTreeMap; │ │ iget v1, v1, Lcom/google/gson/internal/LinkedHashTreeMap;->modCount:I │ │ iget v2, p0, Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;->expectedModCount:I │ │ if-eq v1, v2, :cond_1 │ │ - .line 775 │ + .line 778 │ new-instance v1, Ljava/util/ConcurrentModificationException; │ │ invoke-direct {v1}, Ljava/util/ConcurrentModificationException;->()V │ │ throw v1 │ │ - .line 777 │ + .line 780 │ :cond_1 │ iget-object v1, v0, Lcom/google/gson/internal/LinkedHashTreeMap$Node;->next:Lcom/google/gson/internal/LinkedHashTreeMap$Node; │ │ iput-object v1, p0, Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;->next:Lcom/google/gson/internal/LinkedHashTreeMap$Node; │ │ - .line 778 │ + .line 781 │ iput-object v0, p0, Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;->lastReturned:Lcom/google/gson/internal/LinkedHashTreeMap$Node; │ │ return-object v0 │ .end method │ │ .method public final remove()V │ .locals 3 │ │ .prologue │ - .line 782 │ + .line 785 │ .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;, "Lcom/google/gson/internal/LinkedHashTreeMap.LinkedTreeMapIterator;" │ iget-object v0, p0, Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;->lastReturned:Lcom/google/gson/internal/LinkedHashTreeMap$Node; │ │ if-nez v0, :cond_0 │ │ - .line 783 │ + .line 786 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ invoke-direct {v0}, Ljava/lang/IllegalStateException;->()V │ │ throw v0 │ │ - .line 785 │ + .line 788 │ :cond_0 │ iget-object v0, p0, Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;->this$0:Lcom/google/gson/internal/LinkedHashTreeMap; │ │ iget-object v1, p0, Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;->lastReturned:Lcom/google/gson/internal/LinkedHashTreeMap$Node; │ │ const/4 v2, 0x1 │ │ invoke-virtual {v0, v1, v2}, Lcom/google/gson/internal/LinkedHashTreeMap;->removeInternal(Lcom/google/gson/internal/LinkedHashTreeMap$Node;Z)V │ │ - .line 786 │ + .line 789 │ const/4 v0, 0x0 │ │ iput-object v0, p0, Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;->lastReturned:Lcom/google/gson/internal/LinkedHashTreeMap$Node; │ │ - .line 787 │ + .line 790 │ iget-object v0, p0, Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;->this$0:Lcom/google/gson/internal/LinkedHashTreeMap; │ │ iget v0, v0, Lcom/google/gson/internal/LinkedHashTreeMap;->modCount:I │ │ iput v0, p0, Lcom/google/gson/internal/LinkedHashTreeMap$LinkedTreeMapIterator;->expectedModCount:I │ │ - .line 788 │ + .line 791 │ return-void │ .end method ├── smali/com/google/gson/internal/LinkedHashTreeMap$Node.smali │ @@ -212,14 +212,15 @@ │ if-nez v2, :cond_0 │ │ :goto_0 │ iget-object v2, p0, Lcom/google/gson/internal/LinkedHashTreeMap$Node;->value:Ljava/lang/Object; │ │ if-nez v2, :cond_2 │ │ + .line 516 │ invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; │ │ move-result-object v2 │ │ if-nez v2, :cond_0 │ │ :goto_1 │ @@ -243,14 +244,15 @@ │ │ move-result v2 │ │ if-eqz v2, :cond_0 │ │ goto :goto_0 │ │ + .line 516 │ :cond_2 │ iget-object v2, p0, Lcom/google/gson/internal/LinkedHashTreeMap$Node;->value:Ljava/lang/Object; │ │ invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; │ │ move-result-object v3 │ │ @@ -347,31 +349,34 @@ │ move v0, v1 │ │ :goto_0 │ iget-object v2, p0, Lcom/google/gson/internal/LinkedHashTreeMap$Node;->value:Ljava/lang/Object; │ │ if-nez v2, :cond_1 │ │ + .line 523 │ :goto_1 │ xor-int/2addr v0, v1 │ │ return v0 │ │ + .line 522 │ :cond_0 │ iget-object v0, p0, Lcom/google/gson/internal/LinkedHashTreeMap$Node;->key:Ljava/lang/Object; │ │ invoke-virtual {v0}, Ljava/lang/Object;->hashCode()I │ │ move-result v0 │ │ goto :goto_0 │ │ :cond_1 │ iget-object v1, p0, Lcom/google/gson/internal/LinkedHashTreeMap$Node;->value:Ljava/lang/Object; │ │ + .line 523 │ invoke-virtual {v1}, Ljava/lang/Object;->hashCode()I │ │ move-result v1 │ │ goto :goto_1 │ .end method ├── smali/com/google/gson/internal/LinkedHashTreeMap.smali │ @@ -1167,15 +1167,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/ObjectStreamException; │ } │ .end annotation │ │ .prologue │ - .line 859 │ + .line 862 │ .local p0, "this":Lcom/google/gson/internal/LinkedHashTreeMap;, "Lcom/google/gson/internal/LinkedHashTreeMap;" │ new-instance v0, Ljava/util/LinkedHashMap; │ │ invoke-direct {v0, p0}, Ljava/util/LinkedHashMap;->(Ljava/util/Map;)V │ │ return-object v0 │ .end method │ @@ -1371,14 +1371,15 @@ │ .line 147 │ .local v7, "comparableKey":Ljava/lang/Comparable;, "Ljava/lang/Comparable;" │ :goto_0 │ if-eqz v7, :cond_2 │ │ iget-object v2, v1, Lcom/google/gson/internal/LinkedHashTreeMap$Node;->key:Ljava/lang/Object; │ │ + .line 148 │ invoke-interface {v7, v2}, Ljava/lang/Comparable;->compareTo(Ljava/lang/Object;)I │ │ move-result v9 │ │ .line 152 │ :goto_1 │ if-nez v9, :cond_3 │ @@ -1393,19 +1394,20 @@ │ │ :cond_1 │ move-object v7, v5 │ │ .line 142 │ goto :goto_0 │ │ - .line 147 │ + .line 148 │ .restart local v7 # "comparableKey":Ljava/lang/Comparable;, "Ljava/lang/Comparable;" │ :cond_2 │ iget-object v2, v1, Lcom/google/gson/internal/LinkedHashTreeMap$Node;->key:Ljava/lang/Object; │ │ + .line 149 │ invoke-interface {v8, p1, v2}, Ljava/util/Comparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I │ │ move-result v9 │ │ goto :goto_1 │ │ .line 157 ├── smali/com/google/gson/internal/LinkedTreeMap$1.smali │ @@ -52,24 +52,20 @@ │ move-result v0 │ │ return v0 │ .end method │ │ .method public bridge synthetic compare(Ljava/lang/Object;Ljava/lang/Object;)I │ .locals 1 │ - .param p1, "x0" # Ljava/lang/Object; │ - .param p2, "x1" # Ljava/lang/Object; │ │ .prologue │ .line 40 │ check-cast p1, Ljava/lang/Comparable; │ │ - .end local p1 # "x0":Ljava/lang/Object; │ check-cast p2, Ljava/lang/Comparable; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/LinkedTreeMap$1;->compare(Ljava/lang/Comparable;Ljava/lang/Comparable;)I │ │ move-result v0 │ │ return v0 │ .end method ├── smali/com/google/gson/internal/LinkedTreeMap$EntrySet$1.smali │ @@ -27,38 +27,37 @@ │ │ # instance fields │ .field final synthetic this$1:Lcom/google/gson/internal/LinkedTreeMap$EntrySet; │ │ │ # direct methods │ .method constructor (Lcom/google/gson/internal/LinkedTreeMap$EntrySet;)V │ - .locals 2 │ + .locals 1 │ + .param p1, "this$1" # Lcom/google/gson/internal/LinkedTreeMap$EntrySet; │ │ .prologue │ - .line 563 │ - .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap$EntrySet$1;, "Lcom/google/gson/internal/LinkedTreeMap$EntrySet.1;" │ + .line 566 │ + .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap$EntrySet$1;, "Lcom/google/gson/internal/LinkedTreeMap$EntrySet$1;" │ iput-object p1, p0, Lcom/google/gson/internal/LinkedTreeMap$EntrySet$1;->this$1:Lcom/google/gson/internal/LinkedTreeMap$EntrySet; │ │ iget-object v0, p1, Lcom/google/gson/internal/LinkedTreeMap$EntrySet;->this$0:Lcom/google/gson/internal/LinkedTreeMap; │ │ - const/4 v1, 0x0 │ - │ - invoke-direct {p0, v0, v1}, Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;->(Lcom/google/gson/internal/LinkedTreeMap;Lcom/google/gson/internal/LinkedTreeMap$1;)V │ + invoke-direct {p0, v0}, Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;->(Lcom/google/gson/internal/LinkedTreeMap;)V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public bridge synthetic next()Ljava/lang/Object; │ .locals 1 │ │ .prologue │ - .line 563 │ - .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap$EntrySet$1;, "Lcom/google/gson/internal/LinkedTreeMap$EntrySet.1;" │ + .line 566 │ + .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap$EntrySet$1;, "Lcom/google/gson/internal/LinkedTreeMap$EntrySet$1;" │ invoke-virtual {p0}, Lcom/google/gson/internal/LinkedTreeMap$EntrySet$1;->next()Ljava/util/Map$Entry; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ @@ -69,15 +68,15 @@ │ "()", │ "Ljava/util/Map$Entry", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 565 │ - .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap$EntrySet$1;, "Lcom/google/gson/internal/LinkedTreeMap$EntrySet.1;" │ + .line 568 │ + .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap$EntrySet$1;, "Lcom/google/gson/internal/LinkedTreeMap$EntrySet$1;" │ invoke-virtual {p0}, Lcom/google/gson/internal/LinkedTreeMap$EntrySet$1;->nextNode()Lcom/google/gson/internal/LinkedTreeMap$Node; │ │ move-result-object v0 │ │ return-object v0 │ .end method ├── smali/com/google/gson/internal/LinkedTreeMap$EntrySet.smali │ @@ -26,47 +26,48 @@ │ # instance fields │ .field final synthetic this$0:Lcom/google/gson/internal/LinkedTreeMap; │ │ │ # direct methods │ .method constructor (Lcom/google/gson/internal/LinkedTreeMap;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/google/gson/internal/LinkedTreeMap; │ │ .prologue │ - .line 557 │ + .line 560 │ .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap$EntrySet;, "Lcom/google/gson/internal/LinkedTreeMap.EntrySet;" │ iput-object p1, p0, Lcom/google/gson/internal/LinkedTreeMap$EntrySet;->this$0:Lcom/google/gson/internal/LinkedTreeMap; │ │ invoke-direct {p0}, Ljava/util/AbstractSet;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public clear()V │ .locals 1 │ │ .prologue │ - .line 588 │ + .line 591 │ .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap$EntrySet;, "Lcom/google/gson/internal/LinkedTreeMap.EntrySet;" │ iget-object v0, p0, Lcom/google/gson/internal/LinkedTreeMap$EntrySet;->this$0:Lcom/google/gson/internal/LinkedTreeMap; │ │ invoke-virtual {v0}, Lcom/google/gson/internal/LinkedTreeMap;->clear()V │ │ - .line 589 │ + .line 592 │ return-void │ .end method │ │ .method public contains(Ljava/lang/Object;)Z │ .locals 1 │ .param p1, "o" # Ljava/lang/Object; │ │ .prologue │ - .line 571 │ + .line 574 │ .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap$EntrySet;, "Lcom/google/gson/internal/LinkedTreeMap.EntrySet;" │ instance-of v0, p1, Ljava/util/Map$Entry; │ │ if-eqz v0, :cond_0 │ │ iget-object v0, p0, Lcom/google/gson/internal/LinkedTreeMap$EntrySet;->this$0:Lcom/google/gson/internal/LinkedTreeMap; │ │ @@ -99,15 +100,15 @@ │ "<", │ "Ljava/util/Map$Entry", │ ";>;" │ } │ .end annotation │ │ .prologue │ - .line 563 │ + .line 566 │ .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap$EntrySet;, "Lcom/google/gson/internal/LinkedTreeMap.EntrySet;" │ new-instance v0, Lcom/google/gson/internal/LinkedTreeMap$EntrySet$1; │ │ invoke-direct {v0, p0}, Lcom/google/gson/internal/LinkedTreeMap$EntrySet$1;->(Lcom/google/gson/internal/LinkedTreeMap$EntrySet;)V │ │ return-object v0 │ .end method │ @@ -118,57 +119,57 @@ │ │ .prologue │ .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap$EntrySet;, "Lcom/google/gson/internal/LinkedTreeMap.EntrySet;" │ const/4 v2, 0x1 │ │ const/4 v1, 0x0 │ │ - .line 575 │ + .line 578 │ instance-of v3, p1, Ljava/util/Map$Entry; │ │ if-nez v3, :cond_1 │ │ - .line 584 │ + .line 587 │ .end local p1 # "o":Ljava/lang/Object; │ :cond_0 │ :goto_0 │ return v1 │ │ - .line 579 │ + .line 582 │ .restart local p1 # "o":Ljava/lang/Object; │ :cond_1 │ iget-object v3, p0, Lcom/google/gson/internal/LinkedTreeMap$EntrySet;->this$0:Lcom/google/gson/internal/LinkedTreeMap; │ │ check-cast p1, Ljava/util/Map$Entry; │ │ .end local p1 # "o":Ljava/lang/Object; │ invoke-virtual {v3, p1}, Lcom/google/gson/internal/LinkedTreeMap;->findByEntry(Ljava/util/Map$Entry;)Lcom/google/gson/internal/LinkedTreeMap$Node; │ │ move-result-object v0 │ │ - .line 580 │ + .line 583 │ .local v0, "node":Lcom/google/gson/internal/LinkedTreeMap$Node;, "Lcom/google/gson/internal/LinkedTreeMap$Node;" │ if-eqz v0, :cond_0 │ │ - .line 583 │ + .line 586 │ iget-object v1, p0, Lcom/google/gson/internal/LinkedTreeMap$EntrySet;->this$0:Lcom/google/gson/internal/LinkedTreeMap; │ │ invoke-virtual {v1, v0, v2}, Lcom/google/gson/internal/LinkedTreeMap;->removeInternal(Lcom/google/gson/internal/LinkedTreeMap$Node;Z)V │ │ move v1, v2 │ │ - .line 584 │ + .line 587 │ goto :goto_0 │ .end method │ │ .method public size()I │ .locals 1 │ │ .prologue │ - .line 559 │ + .line 562 │ .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap$EntrySet;, "Lcom/google/gson/internal/LinkedTreeMap.EntrySet;" │ iget-object v0, p0, Lcom/google/gson/internal/LinkedTreeMap$EntrySet;->this$0:Lcom/google/gson/internal/LinkedTreeMap; │ │ iget v0, v0, Lcom/google/gson/internal/LinkedTreeMap;->size:I │ │ return v0 │ .end method ├── smali/com/google/gson/internal/LinkedTreeMap$KeySet.smali │ @@ -24,47 +24,48 @@ │ # instance fields │ .field final synthetic this$0:Lcom/google/gson/internal/LinkedTreeMap; │ │ │ # direct methods │ .method constructor (Lcom/google/gson/internal/LinkedTreeMap;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/google/gson/internal/LinkedTreeMap; │ │ .prologue │ - .line 592 │ + .line 595 │ .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap$KeySet;, "Lcom/google/gson/internal/LinkedTreeMap.KeySet;" │ iput-object p1, p0, Lcom/google/gson/internal/LinkedTreeMap$KeySet;->this$0:Lcom/google/gson/internal/LinkedTreeMap; │ │ invoke-direct {p0}, Ljava/util/AbstractSet;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public clear()V │ .locals 1 │ │ .prologue │ - .line 614 │ + .line 617 │ .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap$KeySet;, "Lcom/google/gson/internal/LinkedTreeMap.KeySet;" │ iget-object v0, p0, Lcom/google/gson/internal/LinkedTreeMap$KeySet;->this$0:Lcom/google/gson/internal/LinkedTreeMap; │ │ invoke-virtual {v0}, Lcom/google/gson/internal/LinkedTreeMap;->clear()V │ │ - .line 615 │ + .line 618 │ return-void │ .end method │ │ .method public contains(Ljava/lang/Object;)Z │ .locals 1 │ .param p1, "o" # Ljava/lang/Object; │ │ .prologue │ - .line 606 │ + .line 609 │ .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap$KeySet;, "Lcom/google/gson/internal/LinkedTreeMap.KeySet;" │ iget-object v0, p0, Lcom/google/gson/internal/LinkedTreeMap$KeySet;->this$0:Lcom/google/gson/internal/LinkedTreeMap; │ │ invoke-virtual {v0, p1}, Lcom/google/gson/internal/LinkedTreeMap;->containsKey(Ljava/lang/Object;)Z │ │ move-result v0 │ │ @@ -78,29 +79,29 @@ │ "()", │ "Ljava/util/Iterator", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 598 │ + .line 601 │ .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap$KeySet;, "Lcom/google/gson/internal/LinkedTreeMap.KeySet;" │ new-instance v0, Lcom/google/gson/internal/LinkedTreeMap$KeySet$1; │ │ invoke-direct {v0, p0}, Lcom/google/gson/internal/LinkedTreeMap$KeySet$1;->(Lcom/google/gson/internal/LinkedTreeMap$KeySet;)V │ │ return-object v0 │ .end method │ │ .method public remove(Ljava/lang/Object;)Z │ .locals 1 │ .param p1, "key" # Ljava/lang/Object; │ │ .prologue │ - .line 610 │ + .line 613 │ .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap$KeySet;, "Lcom/google/gson/internal/LinkedTreeMap.KeySet;" │ iget-object v0, p0, Lcom/google/gson/internal/LinkedTreeMap$KeySet;->this$0:Lcom/google/gson/internal/LinkedTreeMap; │ │ invoke-virtual {v0, p1}, Lcom/google/gson/internal/LinkedTreeMap;->removeInternalByKey(Ljava/lang/Object;)Lcom/google/gson/internal/LinkedTreeMap$Node; │ │ move-result-object v0 │ │ @@ -117,15 +118,15 @@ │ goto :goto_0 │ .end method │ │ .method public size()I │ .locals 1 │ │ .prologue │ - .line 594 │ + .line 597 │ .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap$KeySet;, "Lcom/google/gson/internal/LinkedTreeMap.KeySet;" │ iget-object v0, p0, Lcom/google/gson/internal/LinkedTreeMap$KeySet;->this$0:Lcom/google/gson/internal/LinkedTreeMap; │ │ iget v0, v0, Lcom/google/gson/internal/LinkedTreeMap;->size:I │ │ return v0 │ .end method ├── smali/com/google/gson/internal/LinkedTreeMap$KeySet$1.smali │ @@ -25,26 +25,25 @@ │ │ # instance fields │ .field final synthetic this$1:Lcom/google/gson/internal/LinkedTreeMap$KeySet; │ │ │ # direct methods │ .method constructor (Lcom/google/gson/internal/LinkedTreeMap$KeySet;)V │ - .locals 2 │ + .locals 1 │ + .param p1, "this$1" # Lcom/google/gson/internal/LinkedTreeMap$KeySet; │ │ .prologue │ - .line 598 │ - .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap$KeySet$1;, "Lcom/google/gson/internal/LinkedTreeMap$KeySet.1;" │ + .line 601 │ + .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap$KeySet$1;, "Lcom/google/gson/internal/LinkedTreeMap$KeySet$1;" │ iput-object p1, p0, Lcom/google/gson/internal/LinkedTreeMap$KeySet$1;->this$1:Lcom/google/gson/internal/LinkedTreeMap$KeySet; │ │ iget-object v0, p1, Lcom/google/gson/internal/LinkedTreeMap$KeySet;->this$0:Lcom/google/gson/internal/LinkedTreeMap; │ │ - const/4 v1, 0x0 │ - │ - invoke-direct {p0, v0, v1}, Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;->(Lcom/google/gson/internal/LinkedTreeMap;Lcom/google/gson/internal/LinkedTreeMap$1;)V │ + invoke-direct {p0, v0}, Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;->(Lcom/google/gson/internal/LinkedTreeMap;)V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public next()Ljava/lang/Object; │ @@ -52,16 +51,16 @@ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "()TK;" │ } │ .end annotation │ │ .prologue │ - .line 600 │ - .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap$KeySet$1;, "Lcom/google/gson/internal/LinkedTreeMap$KeySet.1;" │ + .line 603 │ + .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap$KeySet$1;, "Lcom/google/gson/internal/LinkedTreeMap$KeySet$1;" │ invoke-virtual {p0}, Lcom/google/gson/internal/LinkedTreeMap$KeySet$1;->nextNode()Lcom/google/gson/internal/LinkedTreeMap$Node; │ │ move-result-object v0 │ │ iget-object v0, v0, Lcom/google/gson/internal/LinkedTreeMap$Node;->key:Ljava/lang/Object; │ │ return-object v0 ├── smali/com/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator.smali │ @@ -49,19 +49,19 @@ │ .end annotation │ .end field │ │ .field final synthetic this$0:Lcom/google/gson/internal/LinkedTreeMap; │ │ │ # direct methods │ -.method private constructor (Lcom/google/gson/internal/LinkedTreeMap;)V │ +.method constructor (Lcom/google/gson/internal/LinkedTreeMap;)V │ .locals 1 │ │ .prologue │ - .line 526 │ + .line 531 │ .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;, "Lcom/google/gson/internal/LinkedTreeMap.LinkedTreeMapIterator;" │ iput-object p1, p0, Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;->this$0:Lcom/google/gson/internal/LinkedTreeMap; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ .line 527 │ iget-object v0, p0, Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;->this$0:Lcom/google/gson/internal/LinkedTreeMap; │ @@ -80,37 +80,25 @@ │ .line 529 │ iget-object v0, p0, Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;->this$0:Lcom/google/gson/internal/LinkedTreeMap; │ │ iget v0, v0, Lcom/google/gson/internal/LinkedTreeMap;->modCount:I │ │ iput v0, p0, Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;->expectedModCount:I │ │ - return-void │ -.end method │ - │ -.method synthetic constructor (Lcom/google/gson/internal/LinkedTreeMap;Lcom/google/gson/internal/LinkedTreeMap$1;)V │ - .locals 0 │ - .param p1, "x0" # Lcom/google/gson/internal/LinkedTreeMap; │ - .param p2, "x1" # Lcom/google/gson/internal/LinkedTreeMap$1; │ - │ - .prologue │ - .line 526 │ - .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;, "Lcom/google/gson/internal/LinkedTreeMap.LinkedTreeMapIterator;" │ - invoke-direct {p0, p1}, Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;->(Lcom/google/gson/internal/LinkedTreeMap;)V │ - │ + .line 532 │ return-void │ .end method │ │ │ # virtual methods │ .method public final hasNext()Z │ .locals 2 │ │ .prologue │ - .line 532 │ + .line 535 │ .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;, "Lcom/google/gson/internal/LinkedTreeMap.LinkedTreeMapIterator;" │ iget-object v0, p0, Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;->next:Lcom/google/gson/internal/LinkedTreeMap$Node; │ │ iget-object v1, p0, Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;->this$0:Lcom/google/gson/internal/LinkedTreeMap; │ │ iget-object v1, v1, Lcom/google/gson/internal/LinkedTreeMap;->header:Lcom/google/gson/internal/LinkedTreeMap$Node; │ │ @@ -134,97 +122,97 @@ │ "()", │ "Lcom/google/gson/internal/LinkedTreeMap$Node", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 536 │ + .line 539 │ .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;, "Lcom/google/gson/internal/LinkedTreeMap.LinkedTreeMapIterator;" │ iget-object v0, p0, Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;->next:Lcom/google/gson/internal/LinkedTreeMap$Node; │ │ - .line 537 │ + .line 540 │ .local v0, "e":Lcom/google/gson/internal/LinkedTreeMap$Node;, "Lcom/google/gson/internal/LinkedTreeMap$Node;" │ iget-object v1, p0, Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;->this$0:Lcom/google/gson/internal/LinkedTreeMap; │ │ iget-object v1, v1, Lcom/google/gson/internal/LinkedTreeMap;->header:Lcom/google/gson/internal/LinkedTreeMap$Node; │ │ if-ne v0, v1, :cond_0 │ │ - .line 538 │ + .line 541 │ new-instance v1, Ljava/util/NoSuchElementException; │ │ invoke-direct {v1}, Ljava/util/NoSuchElementException;->()V │ │ throw v1 │ │ - .line 540 │ + .line 543 │ :cond_0 │ iget-object v1, p0, Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;->this$0:Lcom/google/gson/internal/LinkedTreeMap; │ │ iget v1, v1, Lcom/google/gson/internal/LinkedTreeMap;->modCount:I │ │ iget v2, p0, Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;->expectedModCount:I │ │ if-eq v1, v2, :cond_1 │ │ - .line 541 │ + .line 544 │ new-instance v1, Ljava/util/ConcurrentModificationException; │ │ invoke-direct {v1}, Ljava/util/ConcurrentModificationException;->()V │ │ throw v1 │ │ - .line 543 │ + .line 546 │ :cond_1 │ iget-object v1, v0, Lcom/google/gson/internal/LinkedTreeMap$Node;->next:Lcom/google/gson/internal/LinkedTreeMap$Node; │ │ iput-object v1, p0, Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;->next:Lcom/google/gson/internal/LinkedTreeMap$Node; │ │ - .line 544 │ + .line 547 │ iput-object v0, p0, Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;->lastReturned:Lcom/google/gson/internal/LinkedTreeMap$Node; │ │ return-object v0 │ .end method │ │ .method public final remove()V │ .locals 3 │ │ .prologue │ - .line 548 │ + .line 551 │ .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;, "Lcom/google/gson/internal/LinkedTreeMap.LinkedTreeMapIterator;" │ iget-object v0, p0, Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;->lastReturned:Lcom/google/gson/internal/LinkedTreeMap$Node; │ │ if-nez v0, :cond_0 │ │ - .line 549 │ + .line 552 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ invoke-direct {v0}, Ljava/lang/IllegalStateException;->()V │ │ throw v0 │ │ - .line 551 │ + .line 554 │ :cond_0 │ iget-object v0, p0, Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;->this$0:Lcom/google/gson/internal/LinkedTreeMap; │ │ iget-object v1, p0, Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;->lastReturned:Lcom/google/gson/internal/LinkedTreeMap$Node; │ │ const/4 v2, 0x1 │ │ invoke-virtual {v0, v1, v2}, Lcom/google/gson/internal/LinkedTreeMap;->removeInternal(Lcom/google/gson/internal/LinkedTreeMap$Node;Z)V │ │ - .line 552 │ + .line 555 │ const/4 v0, 0x0 │ │ iput-object v0, p0, Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;->lastReturned:Lcom/google/gson/internal/LinkedTreeMap$Node; │ │ - .line 553 │ + .line 556 │ iget-object v0, p0, Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;->this$0:Lcom/google/gson/internal/LinkedTreeMap; │ │ iget v0, v0, Lcom/google/gson/internal/LinkedTreeMap;->modCount:I │ │ iput v0, p0, Lcom/google/gson/internal/LinkedTreeMap$LinkedTreeMapIterator;->expectedModCount:I │ │ - .line 554 │ + .line 557 │ return-void │ .end method ├── smali/com/google/gson/internal/LinkedTreeMap$Node.smali │ @@ -201,14 +201,15 @@ │ if-nez v2, :cond_0 │ │ :goto_0 │ iget-object v2, p0, Lcom/google/gson/internal/LinkedTreeMap$Node;->value:Ljava/lang/Object; │ │ if-nez v2, :cond_2 │ │ + .line 485 │ invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; │ │ move-result-object v2 │ │ if-nez v2, :cond_0 │ │ :goto_1 │ @@ -232,14 +233,15 @@ │ │ move-result v2 │ │ if-eqz v2, :cond_0 │ │ goto :goto_0 │ │ + .line 485 │ :cond_2 │ iget-object v2, p0, Lcom/google/gson/internal/LinkedTreeMap$Node;->value:Ljava/lang/Object; │ │ invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; │ │ move-result-object v3 │ │ @@ -336,31 +338,34 @@ │ move v0, v1 │ │ :goto_0 │ iget-object v2, p0, Lcom/google/gson/internal/LinkedTreeMap$Node;->value:Ljava/lang/Object; │ │ if-nez v2, :cond_1 │ │ + .line 492 │ :goto_1 │ xor-int/2addr v0, v1 │ │ return v0 │ │ + .line 491 │ :cond_0 │ iget-object v0, p0, Lcom/google/gson/internal/LinkedTreeMap$Node;->key:Ljava/lang/Object; │ │ invoke-virtual {v0}, Ljava/lang/Object;->hashCode()I │ │ move-result v0 │ │ goto :goto_0 │ │ :cond_1 │ iget-object v1, p0, Lcom/google/gson/internal/LinkedTreeMap$Node;->value:Ljava/lang/Object; │ │ + .line 492 │ invoke-virtual {v1}, Ljava/lang/Object;->hashCode()I │ │ move-result v1 │ │ goto :goto_1 │ .end method ├── smali/com/google/gson/internal/LinkedTreeMap.smali │ @@ -874,15 +874,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/ObjectStreamException; │ } │ .end annotation │ │ .prologue │ - .line 625 │ + .line 628 │ .local p0, "this":Lcom/google/gson/internal/LinkedTreeMap;, "Lcom/google/gson/internal/LinkedTreeMap;" │ new-instance v0, Ljava/util/LinkedHashMap; │ │ invoke-direct {v0, p0}, Ljava/util/LinkedHashMap;->(Ljava/util/Map;)V │ │ return-object v0 │ .end method │ @@ -1030,14 +1030,15 @@ │ .line 134 │ .local v1, "comparableKey":Ljava/lang/Comparable;, "Ljava/lang/Comparable;" │ :goto_0 │ if-eqz v1, :cond_2 │ │ iget-object v7, v6, Lcom/google/gson/internal/LinkedTreeMap$Node;->key:Ljava/lang/Object; │ │ + .line 135 │ invoke-interface {v1, v7}, Ljava/lang/Comparable;->compareTo(Ljava/lang/Object;)I │ │ move-result v3 │ │ .line 139 │ :goto_1 │ if-nez v3, :cond_3 │ @@ -1052,19 +1053,20 @@ │ │ :cond_1 │ move-object v1, v8 │ │ .line 129 │ goto :goto_0 │ │ - .line 134 │ + .line 135 │ .restart local v1 # "comparableKey":Ljava/lang/Comparable;, "Ljava/lang/Comparable;" │ :cond_2 │ iget-object v7, v6, Lcom/google/gson/internal/LinkedTreeMap$Node;->key:Ljava/lang/Object; │ │ + .line 136 │ invoke-interface {v2, p1, v7}, Ljava/util/Comparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I │ │ move-result v3 │ │ goto :goto_1 │ │ .line 144 ├── smali/com/google/gson/internal/Primitives.smali │ @@ -34,115 +34,120 @@ │ # direct methods │ .method static constructor ()V │ .locals 4 │ │ .prologue │ const/16 v2, 0x10 │ │ - .line 43 │ + .line 45 │ new-instance v0, Ljava/util/HashMap; │ │ invoke-direct {v0, v2}, Ljava/util/HashMap;->(I)V │ │ - .line 44 │ + .line 46 │ .local v0, "primToWrap":Ljava/util/Map;, "Ljava/util/Map;Ljava/lang/Class<*>;>;" │ new-instance v1, Ljava/util/HashMap; │ │ invoke-direct {v1, v2}, Ljava/util/HashMap;->(I)V │ │ - .line 46 │ + .line 48 │ .local v1, "wrapToPrim":Ljava/util/Map;, "Ljava/util/Map;Ljava/lang/Class<*>;>;" │ sget-object v2, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class; │ │ const-class v3, Ljava/lang/Boolean; │ │ invoke-static {v0, v1, v2, v3}, Lcom/google/gson/internal/Primitives;->add(Ljava/util/Map;Ljava/util/Map;Ljava/lang/Class;Ljava/lang/Class;)V │ │ - .line 47 │ + .line 49 │ sget-object v2, Ljava/lang/Byte;->TYPE:Ljava/lang/Class; │ │ const-class v3, Ljava/lang/Byte; │ │ invoke-static {v0, v1, v2, v3}, Lcom/google/gson/internal/Primitives;->add(Ljava/util/Map;Ljava/util/Map;Ljava/lang/Class;Ljava/lang/Class;)V │ │ - .line 48 │ + .line 50 │ sget-object v2, Ljava/lang/Character;->TYPE:Ljava/lang/Class; │ │ const-class v3, Ljava/lang/Character; │ │ invoke-static {v0, v1, v2, v3}, Lcom/google/gson/internal/Primitives;->add(Ljava/util/Map;Ljava/util/Map;Ljava/lang/Class;Ljava/lang/Class;)V │ │ - .line 49 │ + .line 51 │ sget-object v2, Ljava/lang/Double;->TYPE:Ljava/lang/Class; │ │ const-class v3, Ljava/lang/Double; │ │ invoke-static {v0, v1, v2, v3}, Lcom/google/gson/internal/Primitives;->add(Ljava/util/Map;Ljava/util/Map;Ljava/lang/Class;Ljava/lang/Class;)V │ │ - .line 50 │ + .line 52 │ sget-object v2, Ljava/lang/Float;->TYPE:Ljava/lang/Class; │ │ const-class v3, Ljava/lang/Float; │ │ invoke-static {v0, v1, v2, v3}, Lcom/google/gson/internal/Primitives;->add(Ljava/util/Map;Ljava/util/Map;Ljava/lang/Class;Ljava/lang/Class;)V │ │ - .line 51 │ + .line 53 │ sget-object v2, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; │ │ const-class v3, Ljava/lang/Integer; │ │ invoke-static {v0, v1, v2, v3}, Lcom/google/gson/internal/Primitives;->add(Ljava/util/Map;Ljava/util/Map;Ljava/lang/Class;Ljava/lang/Class;)V │ │ - .line 52 │ + .line 54 │ sget-object v2, Ljava/lang/Long;->TYPE:Ljava/lang/Class; │ │ const-class v3, Ljava/lang/Long; │ │ invoke-static {v0, v1, v2, v3}, Lcom/google/gson/internal/Primitives;->add(Ljava/util/Map;Ljava/util/Map;Ljava/lang/Class;Ljava/lang/Class;)V │ │ - .line 53 │ + .line 55 │ sget-object v2, Ljava/lang/Short;->TYPE:Ljava/lang/Class; │ │ const-class v3, Ljava/lang/Short; │ │ invoke-static {v0, v1, v2, v3}, Lcom/google/gson/internal/Primitives;->add(Ljava/util/Map;Ljava/util/Map;Ljava/lang/Class;Ljava/lang/Class;)V │ │ - .line 54 │ + .line 56 │ sget-object v2, Ljava/lang/Void;->TYPE:Ljava/lang/Class; │ │ const-class v3, Ljava/lang/Void; │ │ invoke-static {v0, v1, v2, v3}, Lcom/google/gson/internal/Primitives;->add(Ljava/util/Map;Ljava/util/Map;Ljava/lang/Class;Ljava/lang/Class;)V │ │ - .line 56 │ + .line 58 │ invoke-static {v0}, Ljava/util/Collections;->unmodifiableMap(Ljava/util/Map;)Ljava/util/Map; │ │ move-result-object v2 │ │ sput-object v2, Lcom/google/gson/internal/Primitives;->PRIMITIVE_TO_WRAPPER_TYPE:Ljava/util/Map; │ │ - .line 57 │ + .line 59 │ invoke-static {v1}, Ljava/util/Collections;->unmodifiableMap(Ljava/util/Map;)Ljava/util/Map; │ │ move-result-object v2 │ │ sput-object v2, Lcom/google/gson/internal/Primitives;->WRAPPER_TO_PRIMITIVE_TYPE:Ljava/util/Map; │ │ - .line 58 │ + .line 60 │ return-void │ .end method │ │ .method private constructor ()V │ - .locals 0 │ + .locals 1 │ │ .prologue │ .line 32 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - return-void │ + .line 33 │ + new-instance v0, Ljava/lang/UnsupportedOperationException; │ + │ + invoke-direct {v0}, Ljava/lang/UnsupportedOperationException;->()V │ + │ + throw v0 │ .end method │ │ .method private static add(Ljava/util/Map;Ljava/util/Map;Ljava/lang/Class;Ljava/lang/Class;)V │ .locals 0 │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ @@ -162,55 +167,57 @@ │ "<*>;", │ "Ljava/lang/Class", │ "<*>;)V" │ } │ .end annotation │ │ .prologue │ - .line 62 │ + .line 64 │ .local p0, "forward":Ljava/util/Map;, "Ljava/util/Map;Ljava/lang/Class<*>;>;" │ .local p1, "backward":Ljava/util/Map;, "Ljava/util/Map;Ljava/lang/Class<*>;>;" │ .local p2, "key":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ .local p3, "value":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ invoke-interface {p0, p2, p3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ - .line 63 │ + .line 65 │ invoke-interface {p1, p3, p2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ - .line 64 │ + .line 66 │ return-void │ .end method │ │ .method public static isPrimitive(Ljava/lang/reflect/Type;)Z │ .locals 1 │ .param p0, "type" # Ljava/lang/reflect/Type; │ │ .prologue │ - .line 70 │ + .line 72 │ sget-object v0, Lcom/google/gson/internal/Primitives;->PRIMITIVE_TO_WRAPPER_TYPE:Ljava/util/Map; │ │ invoke-interface {v0, p0}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z │ │ move-result v0 │ │ return v0 │ .end method │ │ .method public static isWrapperType(Ljava/lang/reflect/Type;)Z │ .locals 2 │ .param p0, "type" # Ljava/lang/reflect/Type; │ │ .prologue │ - .line 80 │ + .line 82 │ sget-object v0, Lcom/google/gson/internal/Primitives;->WRAPPER_TO_PRIMITIVE_TYPE:Ljava/util/Map; │ │ + .line 83 │ invoke-static {p0}, Lcom/google/gson/internal/$Gson$Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v1 │ │ + .line 82 │ invoke-interface {v0, v1}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z │ │ move-result v0 │ │ return v0 │ .end method │ │ @@ -225,29 +232,31 @@ │ ";)", │ "Ljava/lang/Class", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 113 │ + .line 115 │ .local p0, "type":Ljava/lang/Class;, "Ljava/lang/Class;" │ sget-object v1, Lcom/google/gson/internal/Primitives;->WRAPPER_TO_PRIMITIVE_TYPE:Ljava/util/Map; │ │ + .line 116 │ invoke-static {p0}, Lcom/google/gson/internal/$Gson$Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v2 │ │ + .line 115 │ invoke-interface {v1, v2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/lang/Class; │ │ - .line 115 │ + .line 117 │ .local v0, "unwrapped":Ljava/lang/Class;, "Ljava/lang/Class;" │ if-nez v0, :cond_0 │ │ .end local p0 # "type":Ljava/lang/Class;, "Ljava/lang/Class;" │ :goto_0 │ return-object p0 │ │ @@ -269,29 +278,31 @@ │ ";)", │ "Ljava/lang/Class", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 96 │ + .line 98 │ .local p0, "type":Ljava/lang/Class;, "Ljava/lang/Class;" │ sget-object v1, Lcom/google/gson/internal/Primitives;->PRIMITIVE_TO_WRAPPER_TYPE:Ljava/util/Map; │ │ + .line 99 │ invoke-static {p0}, Lcom/google/gson/internal/$Gson$Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v2 │ │ + .line 98 │ invoke-interface {v1, v2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/lang/Class; │ │ - .line 98 │ + .line 100 │ .local v0, "wrapped":Ljava/lang/Class;, "Ljava/lang/Class;" │ if-nez v0, :cond_0 │ │ .end local p0 # "type":Ljava/lang/Class;, "Ljava/lang/Class;" │ :goto_0 │ return-object p0 ├── smali/com/google/gson/internal/Streams$AppendableWriter$CurrentWrite.smali │ @@ -22,54 +22,54 @@ │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 103 │ + .line 106 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public charAt(I)C │ .locals 1 │ .param p1, "i" # I │ │ .prologue │ - .line 109 │ + .line 112 │ iget-object v0, p0, Lcom/google/gson/internal/Streams$AppendableWriter$CurrentWrite;->chars:[C │ │ aget-char v0, v0, p1 │ │ return v0 │ .end method │ │ .method public length()I │ .locals 1 │ │ .prologue │ - .line 106 │ + .line 109 │ iget-object v0, p0, Lcom/google/gson/internal/Streams$AppendableWriter$CurrentWrite;->chars:[C │ │ array-length v0, v0 │ │ return v0 │ .end method │ │ .method public subSequence(II)Ljava/lang/CharSequence; │ .locals 3 │ .param p1, "start" # I │ .param p2, "end" # I │ │ .prologue │ - .line 112 │ + .line 115 │ new-instance v0, Ljava/lang/String; │ │ iget-object v1, p0, Lcom/google/gson/internal/Streams$AppendableWriter$CurrentWrite;->chars:[C │ │ sub-int v2, p2, p1 │ │ invoke-direct {v0, v1, p1, v2}, Ljava/lang/String;->([CII)V ├── smali/com/google/gson/internal/Streams$AppendableWriter.smali │ @@ -23,84 +23,72 @@ │ # instance fields │ .field private final appendable:Ljava/lang/Appendable; │ │ .field private final currentWrite:Lcom/google/gson/internal/Streams$AppendableWriter$CurrentWrite; │ │ │ # direct methods │ -.method private constructor (Ljava/lang/Appendable;)V │ +.method constructor (Ljava/lang/Appendable;)V │ .locals 1 │ .param p1, "appendable" # Ljava/lang/Appendable; │ │ .prologue │ - .line 84 │ + .line 87 │ invoke-direct {p0}, Ljava/io/Writer;->()V │ │ - .line 82 │ + .line 85 │ new-instance v0, Lcom/google/gson/internal/Streams$AppendableWriter$CurrentWrite; │ │ invoke-direct {v0}, Lcom/google/gson/internal/Streams$AppendableWriter$CurrentWrite;->()V │ │ iput-object v0, p0, Lcom/google/gson/internal/Streams$AppendableWriter;->currentWrite:Lcom/google/gson/internal/Streams$AppendableWriter$CurrentWrite; │ │ - .line 85 │ + .line 88 │ iput-object p1, p0, Lcom/google/gson/internal/Streams$AppendableWriter;->appendable:Ljava/lang/Appendable; │ │ - .line 86 │ - return-void │ -.end method │ - │ -.method synthetic constructor (Ljava/lang/Appendable;Lcom/google/gson/internal/Streams$1;)V │ - .locals 0 │ - .param p1, "x0" # Ljava/lang/Appendable; │ - .param p2, "x1" # Lcom/google/gson/internal/Streams$1; │ - │ - .prologue │ - .line 80 │ - invoke-direct {p0, p1}, Lcom/google/gson/internal/Streams$AppendableWriter;->(Ljava/lang/Appendable;)V │ - │ + .line 89 │ return-void │ .end method │ │ │ # virtual methods │ .method public close()V │ .locals 0 │ │ .prologue │ - .line 98 │ + .line 101 │ return-void │ .end method │ │ .method public flush()V │ .locals 0 │ │ .prologue │ - .line 97 │ + .line 100 │ return-void │ .end method │ │ .method public write(I)V │ .locals 2 │ .param p1, "i" # I │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 94 │ + .line 97 │ iget-object v0, p0, Lcom/google/gson/internal/Streams$AppendableWriter;->appendable:Ljava/lang/Appendable; │ │ int-to-char v1, p1 │ │ invoke-interface {v0, v1}, Ljava/lang/Appendable;->append(C)Ljava/lang/Appendable; │ │ - .line 95 │ + .line 98 │ return-void │ .end method │ │ .method public write([CII)V │ .locals 3 │ .param p1, "chars" # [C │ .param p2, "offset" # I │ @@ -108,24 +96,24 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 89 │ + .line 92 │ iget-object v0, p0, Lcom/google/gson/internal/Streams$AppendableWriter;->currentWrite:Lcom/google/gson/internal/Streams$AppendableWriter$CurrentWrite; │ │ iput-object p1, v0, Lcom/google/gson/internal/Streams$AppendableWriter$CurrentWrite;->chars:[C │ │ - .line 90 │ + .line 93 │ iget-object v0, p0, Lcom/google/gson/internal/Streams$AppendableWriter;->appendable:Ljava/lang/Appendable; │ │ iget-object v1, p0, Lcom/google/gson/internal/Streams$AppendableWriter;->currentWrite:Lcom/google/gson/internal/Streams$AppendableWriter$CurrentWrite; │ │ add-int v2, p2, p3 │ │ invoke-interface {v0, v1, p2, v2}, Ljava/lang/Appendable;->append(Ljava/lang/CharSequence;II)Ljava/lang/Appendable; │ │ - .line 91 │ + .line 94 │ return-void │ .end method ├── smali/com/google/gson/internal/UnsafeAllocator$1.smali │ @@ -21,15 +21,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/reflect/Method;Ljava/lang/Object;)V │ .locals 0 │ │ .prologue │ - .line 44 │ + .line 45 │ iput-object p1, p0, Lcom/google/gson/internal/UnsafeAllocator$1;->val$allocateInstance:Ljava/lang/reflect/Method; │ │ iput-object p2, p0, Lcom/google/gson/internal/UnsafeAllocator$1;->val$unsafe:Ljava/lang/Object; │ │ invoke-direct {p0}, Lcom/google/gson/internal/UnsafeAllocator;->()V │ │ return-void │ @@ -52,16 +52,20 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/lang/Exception; │ } │ .end annotation │ │ .prologue │ - .line 48 │ + .line 49 │ .local p1, "c":Ljava/lang/Class;, "Ljava/lang/Class;" │ + # invokes: Lcom/google/gson/internal/UnsafeAllocator;->assertInstantiable(Ljava/lang/Class;)V │ + invoke-static {p1}, Lcom/google/gson/internal/UnsafeAllocator;->access$000(Ljava/lang/Class;)V │ + │ + .line 50 │ iget-object v0, p0, Lcom/google/gson/internal/UnsafeAllocator$1;->val$allocateInstance:Ljava/lang/reflect/Method; │ │ iget-object v1, p0, Lcom/google/gson/internal/UnsafeAllocator$1;->val$unsafe:Ljava/lang/Object; │ │ const/4 v2, 0x1 │ │ new-array v2, v2, [Ljava/lang/Object; ├── smali/com/google/gson/internal/Streams.smali │ @@ -2,124 +2,127 @@ │ .super Ljava/lang/Object; │ .source "Streams.java" │ │ │ # annotations │ .annotation system Ldalvik/annotation/MemberClasses; │ value = { │ - Lcom/google/gson/internal/Streams$1;, │ Lcom/google/gson/internal/Streams$AppendableWriter; │ } │ .end annotation │ │ │ # direct methods │ -.method public constructor ()V │ - .locals 0 │ +.method private constructor ()V │ + .locals 1 │ │ .prologue │ - .line 35 │ + .line 36 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 80 │ - return-void │ + .line 37 │ + new-instance v0, Ljava/lang/UnsupportedOperationException; │ + │ + invoke-direct {v0}, Ljava/lang/UnsupportedOperationException;->()V │ + │ + throw v0 │ .end method │ │ .method public static parse(Lcom/google/gson/stream/JsonReader;)Lcom/google/gson/JsonElement; │ .locals 3 │ .param p0, "reader" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Lcom/google/gson/JsonParseException; │ } │ .end annotation │ │ .prologue │ - .line 40 │ + .line 44 │ const/4 v1, 0x1 │ │ - .line 42 │ + .line 46 │ .local v1, "isEmpty":Z │ :try_start_0 │ invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ - .line 43 │ + .line 47 │ const/4 v1, 0x0 │ │ - .line 44 │ + .line 48 │ sget-object v2, Lcom/google/gson/internal/bind/TypeAdapters;->JSON_ELEMENT:Lcom/google/gson/TypeAdapter; │ │ invoke-virtual {v2, p0}, Lcom/google/gson/TypeAdapter;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Lcom/google/gson/JsonElement; │ :try_end_0 │ .catch Ljava/io/EOFException; {:try_start_0 .. :try_end_0} :catch_0 │ .catch Lcom/google/gson/stream/MalformedJsonException; {:try_start_0 .. :try_end_0} :catch_1 │ .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_2 │ .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_3 │ │ - .line 51 │ + .line 55 │ :goto_0 │ return-object v2 │ │ - .line 45 │ + .line 49 │ :catch_0 │ move-exception v0 │ │ - .line 50 │ + .line 54 │ .local v0, "e":Ljava/io/EOFException; │ if-eqz v1, :cond_0 │ │ - .line 51 │ + .line 55 │ sget-object v2, Lcom/google/gson/JsonNull;->INSTANCE:Lcom/google/gson/JsonNull; │ │ goto :goto_0 │ │ - .line 54 │ + .line 58 │ :cond_0 │ new-instance v2, Lcom/google/gson/JsonSyntaxException; │ │ invoke-direct {v2, v0}, Lcom/google/gson/JsonSyntaxException;->(Ljava/lang/Throwable;)V │ │ throw v2 │ │ - .line 55 │ + .line 59 │ .end local v0 # "e":Ljava/io/EOFException; │ :catch_1 │ move-exception v0 │ │ - .line 56 │ + .line 60 │ .local v0, "e":Lcom/google/gson/stream/MalformedJsonException; │ new-instance v2, Lcom/google/gson/JsonSyntaxException; │ │ invoke-direct {v2, v0}, Lcom/google/gson/JsonSyntaxException;->(Ljava/lang/Throwable;)V │ │ throw v2 │ │ - .line 57 │ + .line 61 │ .end local v0 # "e":Lcom/google/gson/stream/MalformedJsonException; │ :catch_2 │ move-exception v0 │ │ - .line 58 │ + .line 62 │ .local v0, "e":Ljava/io/IOException; │ new-instance v2, Lcom/google/gson/JsonIOException; │ │ invoke-direct {v2, v0}, Lcom/google/gson/JsonIOException;->(Ljava/lang/Throwable;)V │ │ throw v2 │ │ - .line 59 │ + .line 63 │ .end local v0 # "e":Ljava/io/IOException; │ :catch_3 │ move-exception v0 │ │ - .line 60 │ + .line 64 │ .local v0, "e":Ljava/lang/NumberFormatException; │ new-instance v2, Lcom/google/gson/JsonSyntaxException; │ │ invoke-direct {v2, v0}, Lcom/google/gson/JsonSyntaxException;->(Ljava/lang/Throwable;)V │ │ throw v2 │ .end method │ @@ -131,44 +134,42 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 68 │ + .line 72 │ sget-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->JSON_ELEMENT:Lcom/google/gson/TypeAdapter; │ │ invoke-virtual {v0, p1, p0}, Lcom/google/gson/TypeAdapter;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ │ - .line 69 │ + .line 73 │ return-void │ .end method │ │ .method public static writerForAppendable(Ljava/lang/Appendable;)Ljava/io/Writer; │ - .locals 2 │ + .locals 1 │ .param p0, "appendable" # Ljava/lang/Appendable; │ │ .prologue │ - .line 73 │ + .line 76 │ instance-of v0, p0, Ljava/io/Writer; │ │ if-eqz v0, :cond_0 │ │ check-cast p0, Ljava/io/Writer; │ │ .end local p0 # "appendable":Ljava/lang/Appendable; │ :goto_0 │ return-object p0 │ │ .restart local p0 # "appendable":Ljava/lang/Appendable; │ :cond_0 │ new-instance v0, Lcom/google/gson/internal/Streams$AppendableWriter; │ │ - const/4 v1, 0x0 │ - │ - invoke-direct {v0, p0, v1}, Lcom/google/gson/internal/Streams$AppendableWriter;->(Ljava/lang/Appendable;Lcom/google/gson/internal/Streams$1;)V │ + invoke-direct {v0, p0}, Lcom/google/gson/internal/Streams$AppendableWriter;->(Ljava/lang/Appendable;)V │ │ move-object p0, v0 │ │ goto :goto_0 │ .end method ├── smali/com/google/gson/internal/UnsafeAllocator$2.smali │ @@ -21,15 +21,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/reflect/Method;I)V │ .locals 0 │ │ .prologue │ - .line 67 │ + .line 69 │ iput-object p1, p0, Lcom/google/gson/internal/UnsafeAllocator$2;->val$newInstance:Ljava/lang/reflect/Method; │ │ iput p2, p0, Lcom/google/gson/internal/UnsafeAllocator$2;->val$constructorId:I │ │ invoke-direct {p0}, Lcom/google/gson/internal/UnsafeAllocator;->()V │ │ return-void │ @@ -52,16 +52,20 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/lang/Exception; │ } │ .end annotation │ │ .prologue │ - .line 71 │ + .line 73 │ .local p1, "c":Ljava/lang/Class;, "Ljava/lang/Class;" │ + # invokes: Lcom/google/gson/internal/UnsafeAllocator;->assertInstantiable(Ljava/lang/Class;)V │ + invoke-static {p1}, Lcom/google/gson/internal/UnsafeAllocator;->access$000(Ljava/lang/Class;)V │ + │ + .line 74 │ iget-object v0, p0, Lcom/google/gson/internal/UnsafeAllocator$2;->val$newInstance:Ljava/lang/reflect/Method; │ │ const/4 v1, 0x0 │ │ const/4 v2, 0x2 │ │ new-array v2, v2, [Ljava/lang/Object; ├── smali/com/google/gson/internal/UnsafeAllocator$3.smali │ @@ -19,15 +19,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/reflect/Method;)V │ .locals 0 │ │ .prologue │ - .line 86 │ + .line 89 │ iput-object p1, p0, Lcom/google/gson/internal/UnsafeAllocator$3;->val$newInstance:Ljava/lang/reflect/Method; │ │ invoke-direct {p0}, Lcom/google/gson/internal/UnsafeAllocator;->()V │ │ return-void │ .end method │ │ @@ -48,16 +48,20 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/lang/Exception; │ } │ .end annotation │ │ .prologue │ - .line 90 │ + .line 93 │ .local p1, "c":Ljava/lang/Class;, "Ljava/lang/Class;" │ + # invokes: Lcom/google/gson/internal/UnsafeAllocator;->assertInstantiable(Ljava/lang/Class;)V │ + invoke-static {p1}, Lcom/google/gson/internal/UnsafeAllocator;->access$000(Ljava/lang/Class;)V │ + │ + .line 94 │ iget-object v0, p0, Lcom/google/gson/internal/UnsafeAllocator$3;->val$newInstance:Ljava/lang/reflect/Method; │ │ const/4 v1, 0x0 │ │ const/4 v2, 0x2 │ │ new-array v2, v2, [Ljava/lang/Object; ├── smali/com/google/gson/internal/UnsafeAllocator.smali │ @@ -4,54 +4,161 @@ │ │ │ # direct methods │ .method public constructor ()V │ .locals 0 │ │ .prologue │ - .line 30 │ + .line 31 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ +.method static synthetic access$000(Ljava/lang/Class;)V │ + .locals 0 │ + .param p0, "x0" # Ljava/lang/Class; │ + │ + .prologue │ + .line 31 │ + invoke-static {p0}, Lcom/google/gson/internal/UnsafeAllocator;->assertInstantiable(Ljava/lang/Class;)V │ + │ + return-void │ +.end method │ + │ +.method private static assertInstantiable(Ljava/lang/Class;)V │ + .locals 4 │ + .annotation system Ldalvik/annotation/Signature; │ + value = { │ + "(", │ + "Ljava/lang/Class", │ + "<*>;)V" │ + } │ + .end annotation │ + │ + .prologue │ + .line 115 │ + .local p0, "c":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ + invoke-virtual {p0}, Ljava/lang/Class;->getModifiers()I │ + │ + move-result v0 │ + │ + .line 116 │ + .local v0, "modifiers":I │ + invoke-static {v0}, Ljava/lang/reflect/Modifier;->isInterface(I)Z │ + │ + move-result v1 │ + │ + if-eqz v1, :cond_0 │ + │ + .line 117 │ + new-instance v1, Ljava/lang/UnsupportedOperationException; │ + │ + new-instance v2, Ljava/lang/StringBuilder; │ + │ + invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ + │ + const-string v3, "Interface can\'t be instantiated! Interface name: " │ + │ + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + │ + move-result-object v2 │ + │ + invoke-virtual {p0}, Ljava/lang/Class;->getName()Ljava/lang/String; │ + │ + move-result-object v3 │ + │ + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + │ + move-result-object v2 │ + │ + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + │ + move-result-object v2 │ + │ + invoke-direct {v1, v2}, Ljava/lang/UnsupportedOperationException;->(Ljava/lang/String;)V │ + │ + throw v1 │ + │ + .line 119 │ + :cond_0 │ + invoke-static {v0}, Ljava/lang/reflect/Modifier;->isAbstract(I)Z │ + │ + move-result v1 │ + │ + if-eqz v1, :cond_1 │ + │ + .line 120 │ + new-instance v1, Ljava/lang/UnsupportedOperationException; │ + │ + new-instance v2, Ljava/lang/StringBuilder; │ + │ + invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ + │ + const-string v3, "Abstract class can\'t be instantiated! Class name: " │ + │ + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + │ + move-result-object v2 │ + │ + invoke-virtual {p0}, Ljava/lang/Class;->getName()Ljava/lang/String; │ + │ + move-result-object v3 │ + │ + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + │ + move-result-object v2 │ + │ + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + │ + move-result-object v2 │ + │ + invoke-direct {v1, v2}, Ljava/lang/UnsupportedOperationException;->(Ljava/lang/String;)V │ + │ + throw v1 │ + │ + .line 122 │ + :cond_1 │ + return-void │ +.end method │ + │ .method public static create()Lcom/google/gson/internal/UnsafeAllocator; │ .locals 12 │ │ .prologue │ - .line 39 │ + .line 40 │ :try_start_0 │ const-string v7, "sun.misc.Unsafe" │ │ invoke-static {v7}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class; │ │ move-result-object v6 │ │ - .line 40 │ + .line 41 │ .local v6, "unsafeClass":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ const-string v7, "theUnsafe" │ │ invoke-virtual {v6, v7}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field; │ │ move-result-object v2 │ │ - .line 41 │ + .line 42 │ .local v2, "f":Ljava/lang/reflect/Field; │ const/4 v7, 0x1 │ │ invoke-virtual {v2, v7}, Ljava/lang/reflect/Field;->setAccessible(Z)V │ │ - .line 42 │ + .line 43 │ const/4 v7, 0x0 │ │ invoke-virtual {v2, v7}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v5 │ │ - .line 43 │ + .line 44 │ .local v5, "unsafe":Ljava/lang/Object; │ const-string v7, "allocateInstance" │ │ const/4 v8, 0x1 │ │ new-array v8, v8, [Ljava/lang/Class; │ │ @@ -61,34 +168,34 @@ │ │ aput-object v10, v8, v9 │ │ invoke-virtual {v6, v7, v8}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; │ │ move-result-object v0 │ │ - .line 44 │ + .line 45 │ .local v0, "allocateInstance":Ljava/lang/reflect/Method; │ new-instance v7, Lcom/google/gson/internal/UnsafeAllocator$1; │ │ invoke-direct {v7, v0, v5}, Lcom/google/gson/internal/UnsafeAllocator$1;->(Ljava/lang/reflect/Method;Ljava/lang/Object;)V │ :try_end_0 │ .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 97 │ + .line 101 │ .end local v0 # "allocateInstance":Ljava/lang/reflect/Method; │ .end local v2 # "f":Ljava/lang/reflect/Field; │ .end local v5 # "unsafe":Ljava/lang/Object; │ :goto_0 │ return-object v7 │ │ - .line 51 │ + .line 53 │ :catch_0 │ move-exception v7 │ │ - .line 60 │ + .line 62 │ :try_start_1 │ const-class v7, Ljava/io/ObjectStreamClass; │ │ const-string v8, "getConstructorId" │ │ const/4 v9, 0x1 │ │ @@ -96,25 +203,26 @@ │ │ const/4 v10, 0x0 │ │ const-class v11, Ljava/lang/Class; │ │ aput-object v11, v9, v10 │ │ + .line 63 │ invoke-virtual {v7, v8, v9}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; │ │ move-result-object v3 │ │ - .line 62 │ + .line 64 │ .local v3, "getConstructorId":Ljava/lang/reflect/Method; │ const/4 v7, 0x1 │ │ invoke-virtual {v3, v7}, Ljava/lang/reflect/Method;->setAccessible(Z)V │ │ - .line 63 │ + .line 65 │ const/4 v7, 0x0 │ │ const/4 v8, 0x1 │ │ new-array v8, v8, [Ljava/lang/Object; │ │ const/4 v9, 0x0 │ @@ -129,15 +237,15 @@ │ │ check-cast v7, Ljava/lang/Integer; │ │ invoke-virtual {v7}, Ljava/lang/Integer;->intValue()I │ │ move-result v1 │ │ - .line 64 │ + .line 66 │ .local v1, "constructorId":I │ const-class v7, Ljava/io/ObjectStreamClass; │ │ const-string v8, "newInstance" │ │ const/4 v9, 0x2 │ │ @@ -151,41 +259,42 @@ │ │ const/4 v10, 0x1 │ │ sget-object v11, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; │ │ aput-object v11, v9, v10 │ │ + .line 67 │ invoke-virtual {v7, v8, v9}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; │ │ move-result-object v4 │ │ - .line 66 │ + .line 68 │ .local v4, "newInstance":Ljava/lang/reflect/Method; │ const/4 v7, 0x1 │ │ invoke-virtual {v4, v7}, Ljava/lang/reflect/Method;->setAccessible(Z)V │ │ - .line 67 │ + .line 69 │ new-instance v7, Lcom/google/gson/internal/UnsafeAllocator$2; │ │ invoke-direct {v7, v4, v1}, Lcom/google/gson/internal/UnsafeAllocator$2;->(Ljava/lang/reflect/Method;I)V │ :try_end_1 │ .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_1 │ │ goto :goto_0 │ │ - .line 74 │ + .line 77 │ .end local v1 # "constructorId":I │ .end local v3 # "getConstructorId":Ljava/lang/reflect/Method; │ .end local v4 # "newInstance":Ljava/lang/reflect/Method; │ :catch_1 │ move-exception v7 │ │ - .line 83 │ + .line 86 │ :try_start_2 │ const-class v7, Ljava/io/ObjectInputStream; │ │ const-string v8, "newInstance" │ │ const/4 v9, 0x2 │ │ @@ -199,39 +308,40 @@ │ │ const/4 v10, 0x1 │ │ const-class v11, Ljava/lang/Class; │ │ aput-object v11, v9, v10 │ │ + .line 87 │ invoke-virtual {v7, v8, v9}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; │ │ move-result-object v4 │ │ - .line 85 │ + .line 88 │ .restart local v4 # "newInstance":Ljava/lang/reflect/Method; │ const/4 v7, 0x1 │ │ invoke-virtual {v4, v7}, Ljava/lang/reflect/Method;->setAccessible(Z)V │ │ - .line 86 │ + .line 89 │ new-instance v7, Lcom/google/gson/internal/UnsafeAllocator$3; │ │ invoke-direct {v7, v4}, Lcom/google/gson/internal/UnsafeAllocator$3;->(Ljava/lang/reflect/Method;)V │ :try_end_2 │ .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_2} :catch_2 │ │ goto :goto_0 │ │ - .line 93 │ + .line 97 │ .end local v4 # "newInstance":Ljava/lang/reflect/Method; │ :catch_2 │ move-exception v7 │ │ - .line 97 │ + .line 101 │ new-instance v7, Lcom/google/gson/internal/UnsafeAllocator$4; │ │ invoke-direct {v7}, Lcom/google/gson/internal/UnsafeAllocator$4;->()V │ │ goto :goto_0 │ .end method ├── smali/com/google/gson/internal/UnsafeAllocator$4.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 97 │ + .line 101 │ invoke-direct {p0}, Lcom/google/gson/internal/UnsafeAllocator;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ @@ -36,15 +36,15 @@ │ ">(", │ "Ljava/lang/Class", │ ";)TT;" │ } │ .end annotation │ │ .prologue │ - .line 100 │ + .line 104 │ .local p1, "c":Ljava/lang/Class;, "Ljava/lang/Class;" │ new-instance v0, Ljava/lang/UnsupportedOperationException; │ │ new-instance v1, Ljava/lang/StringBuilder; │ │ invoke-direct {v1}, Ljava/lang/StringBuilder;->()V ├── smali/com/google/gson/internal/bind/ArrayTypeAdapter$1.smali │ @@ -73,15 +73,15 @@ │ │ if-nez v3, :cond_1 │ │ .line 44 │ :cond_0 │ const/4 v3, 0x0 │ │ - .line 49 │ + .line 50 │ :goto_0 │ return-object v3 │ │ .line 47 │ :cond_1 │ invoke-static {v2}, Lcom/google/gson/internal/$Gson$Types;->getArrayComponentType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type; │ │ @@ -97,14 +97,15 @@ │ │ move-result-object v1 │ │ .line 49 │ .local v1, "componentTypeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<*>;" │ new-instance v3, Lcom/google/gson/internal/bind/ArrayTypeAdapter; │ │ + .line 50 │ invoke-static {v0}, Lcom/google/gson/internal/$Gson$Types;->getRawType(Ljava/lang/reflect/Type;)Ljava/lang/Class; │ │ move-result-object v4 │ │ invoke-direct {v3, p1, v1, v4}, Lcom/google/gson/internal/bind/ArrayTypeAdapter;->(Lcom/google/gson/Gson;Lcom/google/gson/TypeAdapter;Ljava/lang/Class;)V │ │ goto :goto_0 ├── smali/com/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter.smali │ @@ -64,47 +64,46 @@ │ "<+", │ "Ljava/util/Collection", │ ";>;)V" │ } │ .end annotation │ │ .prologue │ - .line 66 │ + .line 67 │ .local p0, "this":Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter;, "Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter;" │ .local p3, "elementTypeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ .local p4, "constructor":Lcom/google/gson/internal/ObjectConstructor;, "Lcom/google/gson/internal/ObjectConstructor<+Ljava/util/Collection;>;" │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ - .line 67 │ + .line 68 │ new-instance v0, Lcom/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper; │ │ invoke-direct {v0, p1, p3, p2}, Lcom/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper;->(Lcom/google/gson/Gson;Lcom/google/gson/TypeAdapter;Ljava/lang/reflect/Type;)V │ │ iput-object v0, p0, Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter;->elementTypeAdapter:Lcom/google/gson/TypeAdapter; │ │ - .line 69 │ + .line 70 │ iput-object p4, p0, Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter;->constructor:Lcom/google/gson/internal/ObjectConstructor; │ │ - .line 70 │ + .line 71 │ return-void │ .end method │ │ │ # virtual methods │ .method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 60 │ + .line 61 │ .local p0, "this":Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter;, "Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter;" │ invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter;->read(Lcom/google/gson/stream/JsonReader;)Ljava/util/Collection; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ @@ -125,93 +124,90 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 73 │ + .line 74 │ .local p0, "this":Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter;, "Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter;" │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v2 │ │ sget-object v3, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ if-ne v2, v3, :cond_0 │ │ - .line 74 │ + .line 75 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ │ - .line 75 │ + .line 76 │ const/4 v0, 0x0 │ │ - .line 85 │ + .line 86 │ :goto_0 │ return-object v0 │ │ - .line 78 │ + .line 79 │ :cond_0 │ iget-object v2, p0, Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter;->constructor:Lcom/google/gson/internal/ObjectConstructor; │ │ invoke-interface {v2}, Lcom/google/gson/internal/ObjectConstructor;->construct()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/util/Collection; │ │ - .line 79 │ + .line 80 │ .local v0, "collection":Ljava/util/Collection;, "Ljava/util/Collection;" │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->beginArray()V │ │ - .line 80 │ + .line 81 │ :goto_1 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->hasNext()Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ - .line 81 │ + .line 82 │ iget-object v2, p0, Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter;->elementTypeAdapter:Lcom/google/gson/TypeAdapter; │ │ invoke-virtual {v2, p1}, Lcom/google/gson/TypeAdapter;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ │ move-result-object v1 │ │ - .line 82 │ + .line 83 │ .local v1, "instance":Ljava/lang/Object;, "TE;" │ invoke-interface {v0, v1}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z │ │ goto :goto_1 │ │ - .line 84 │ + .line 85 │ .end local v1 # "instance":Ljava/lang/Object;, "TE;" │ :cond_1 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->endArray()V │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 60 │ + .line 61 │ .local p0, "this":Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter;, "Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter;" │ check-cast p2, Ljava/util/Collection; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter;->write(Lcom/google/gson/stream/JsonWriter;Ljava/util/Collection;)V │ │ return-void │ .end method │ │ .method public write(Lcom/google/gson/stream/JsonWriter;Ljava/util/Collection;)V │ .locals 3 │ @@ -228,55 +224,54 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 89 │ + .line 90 │ .local p0, "this":Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter;, "Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter;" │ .local p2, "collection":Ljava/util/Collection;, "Ljava/util/Collection;" │ if-nez p2, :cond_0 │ │ - .line 90 │ + .line 91 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->nullValue()Lcom/google/gson/stream/JsonWriter; │ │ - .line 99 │ + .line 100 │ :goto_0 │ return-void │ │ - .line 94 │ + .line 95 │ :cond_0 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->beginArray()Lcom/google/gson/stream/JsonWriter; │ │ - .line 95 │ + .line 96 │ invoke-interface {p2}, Ljava/util/Collection;->iterator()Ljava/util/Iterator; │ │ move-result-object v1 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :goto_1 │ invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v0 │ │ - .line 96 │ + .line 97 │ .local v0, "element":Ljava/lang/Object;, "TE;" │ iget-object v2, p0, Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter;->elementTypeAdapter:Lcom/google/gson/TypeAdapter; │ │ invoke-virtual {v2, p1, v0}, Lcom/google/gson/TypeAdapter;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ │ goto :goto_1 │ │ - .line 98 │ + .line 99 │ .end local v0 # "element":Ljava/lang/Object;, "TE;" │ :cond_1 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->endArray()Lcom/google/gson/stream/JsonWriter; │ │ goto :goto_0 │ .end method ├── smali/com/google/gson/internal/bind/CollectionTypeAdapterFactory.smali │ @@ -49,70 +49,70 @@ │ ";)", │ "Lcom/google/gson/TypeAdapter", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 44 │ + .line 45 │ .local p2, "typeToken":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken;" │ invoke-virtual {p2}, Lcom/google/gson/reflect/TypeToken;->getType()Ljava/lang/reflect/Type; │ │ move-result-object v5 │ │ - .line 46 │ + .line 47 │ .local v5, "type":Ljava/lang/reflect/Type; │ invoke-virtual {p2}, Lcom/google/gson/reflect/TypeToken;->getRawType()Ljava/lang/Class; │ │ move-result-object v3 │ │ - .line 47 │ + .line 48 │ .local v3, "rawType":Ljava/lang/Class;, "Ljava/lang/Class<-TT;>;" │ const-class v6, Ljava/util/Collection; │ │ invoke-virtual {v6, v3}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z │ │ move-result v6 │ │ if-nez v6, :cond_0 │ │ - .line 48 │ + .line 49 │ const/4 v4, 0x0 │ │ - .line 57 │ + .line 58 │ :goto_0 │ return-object v4 │ │ - .line 51 │ + .line 52 │ :cond_0 │ invoke-static {v5, v3}, Lcom/google/gson/internal/$Gson$Types;->getCollectionElementType(Ljava/lang/reflect/Type;Ljava/lang/Class;)Ljava/lang/reflect/Type; │ │ move-result-object v1 │ │ - .line 52 │ + .line 53 │ .local v1, "elementType":Ljava/lang/reflect/Type; │ invoke-static {v1}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken; │ │ move-result-object v6 │ │ invoke-virtual {p1, v6}, Lcom/google/gson/Gson;->getAdapter(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ │ move-result-object v2 │ │ - .line 53 │ + .line 54 │ .local v2, "elementTypeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<*>;" │ iget-object v6, p0, Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor; │ │ invoke-virtual {v6, p2}, Lcom/google/gson/internal/ConstructorConstructor;->get(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/internal/ObjectConstructor; │ │ move-result-object v0 │ │ - .line 56 │ + .line 57 │ .local v0, "constructor":Lcom/google/gson/internal/ObjectConstructor;, "Lcom/google/gson/internal/ObjectConstructor;" │ new-instance v4, Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter; │ │ invoke-direct {v4, p1, v1, v2, v0}, Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter;->(Lcom/google/gson/Gson;Ljava/lang/reflect/Type;Lcom/google/gson/TypeAdapter;Lcom/google/gson/internal/ObjectConstructor;)V │ │ - .line 57 │ + .line 58 │ .local v4, "result":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ goto :goto_0 │ .end method ├── smali/com/google/gson/internal/bind/DateTypeAdapter.smali │ @@ -17,16 +17,14 @@ │ # static fields │ .field public static final FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ │ # instance fields │ .field private final enUsFormat:Ljava/text/DateFormat; │ │ -.field private final iso8601Format:Ljava/text/DateFormat; │ - │ .field private final localFormat:Ljava/text/DateFormat; │ │ │ # direct methods │ .method static constructor ()V │ .locals 1 │ │ @@ -49,152 +47,123 @@ │ │ .line 41 │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ .line 49 │ sget-object v0, Ljava/util/Locale;->US:Ljava/util/Locale; │ │ + .line 50 │ invoke-static {v1, v1, v0}, Ljava/text/DateFormat;->getDateTimeInstance(IILjava/util/Locale;)Ljava/text/DateFormat; │ │ move-result-object v0 │ │ iput-object v0, p0, Lcom/google/gson/internal/bind/DateTypeAdapter;->enUsFormat:Ljava/text/DateFormat; │ │ - .line 51 │ + .line 52 │ invoke-static {v1, v1}, Ljava/text/DateFormat;->getDateTimeInstance(II)Ljava/text/DateFormat; │ │ move-result-object v0 │ │ iput-object v0, p0, Lcom/google/gson/internal/bind/DateTypeAdapter;->localFormat:Ljava/text/DateFormat; │ │ - .line 53 │ - invoke-static {}, Lcom/google/gson/internal/bind/DateTypeAdapter;->buildIso8601Format()Ljava/text/DateFormat; │ - │ - move-result-object v0 │ - │ - iput-object v0, p0, Lcom/google/gson/internal/bind/DateTypeAdapter;->iso8601Format:Ljava/text/DateFormat; │ - │ + .line 51 │ return-void │ .end method │ │ -.method private static buildIso8601Format()Ljava/text/DateFormat; │ - .locals 3 │ - │ - .prologue │ - .line 56 │ - new-instance v0, Ljava/text/SimpleDateFormat; │ - │ - const-string v1, "yyyy-MM-dd\'T\'HH:mm:ss\'Z\'" │ - │ - sget-object v2, Ljava/util/Locale;->US:Ljava/util/Locale; │ - │ - invoke-direct {v0, v1, v2}, Ljava/text/SimpleDateFormat;->(Ljava/lang/String;Ljava/util/Locale;)V │ - │ - .line 57 │ - .local v0, "iso8601Format":Ljava/text/DateFormat; │ - const-string v1, "UTC" │ - │ - invoke-static {v1}, Ljava/util/TimeZone;->getTimeZone(Ljava/lang/String;)Ljava/util/TimeZone; │ - │ - move-result-object v1 │ - │ - invoke-virtual {v0, v1}, Ljava/text/DateFormat;->setTimeZone(Ljava/util/TimeZone;)V │ - │ - .line 58 │ - return-object v0 │ -.end method │ - │ .method private declared-synchronized deserializeToDate(Ljava/lang/String;)Ljava/util/Date; │ - .locals 2 │ + .locals 3 │ .param p1, "json" # Ljava/lang/String; │ │ .prologue │ - .line 71 │ + .line 64 │ monitor-enter p0 │ │ :try_start_0 │ iget-object v1, p0, Lcom/google/gson/internal/bind/DateTypeAdapter;->localFormat:Ljava/text/DateFormat; │ │ invoke-virtual {v1, p1}, Ljava/text/DateFormat;->parse(Ljava/lang/String;)Ljava/util/Date; │ :try_end_0 │ .catch Ljava/text/ParseException; {:try_start_0 .. :try_end_0} :catch_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ move-result-object v1 │ │ - .line 79 │ + .line 72 │ :goto_0 │ monitor-exit p0 │ │ return-object v1 │ │ - .line 72 │ + .line 65 │ :catch_0 │ move-exception v1 │ │ - .line 75 │ + .line 68 │ :try_start_1 │ iget-object v1, p0, Lcom/google/gson/internal/bind/DateTypeAdapter;->enUsFormat:Ljava/text/DateFormat; │ │ invoke-virtual {v1, p1}, Ljava/text/DateFormat;->parse(Ljava/lang/String;)Ljava/util/Date; │ :try_end_1 │ .catch Ljava/text/ParseException; {:try_start_1 .. :try_end_1} :catch_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ move-result-object v1 │ │ goto :goto_0 │ │ - .line 76 │ + .line 69 │ :catch_1 │ move-exception v1 │ │ - .line 79 │ + .line 72 │ :try_start_2 │ - iget-object v1, p0, Lcom/google/gson/internal/bind/DateTypeAdapter;->iso8601Format:Ljava/text/DateFormat; │ + new-instance v1, Ljava/text/ParsePosition; │ │ - invoke-virtual {v1, p1}, Ljava/text/DateFormat;->parse(Ljava/lang/String;)Ljava/util/Date; │ + const/4 v2, 0x0 │ + │ + invoke-direct {v1, v2}, Ljava/text/ParsePosition;->(I)V │ + │ + invoke-static {p1, v1}, Lcom/google/gson/internal/bind/util/ISO8601Utils;->parse(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/util/Date; │ :try_end_2 │ .catch Ljava/text/ParseException; {:try_start_2 .. :try_end_2} :catch_2 │ .catchall {:try_start_2 .. :try_end_2} :catchall_0 │ │ move-result-object v1 │ │ goto :goto_0 │ │ - .line 80 │ + .line 73 │ :catch_2 │ move-exception v0 │ │ - .line 81 │ + .line 74 │ .local v0, "e":Ljava/text/ParseException; │ :try_start_3 │ new-instance v1, Lcom/google/gson/JsonSyntaxException; │ │ invoke-direct {v1, p1, v0}, Lcom/google/gson/JsonSyntaxException;->(Ljava/lang/String;Ljava/lang/Throwable;)V │ │ throw v1 │ :try_end_3 │ .catchall {:try_start_3 .. :try_end_3} :catchall_0 │ │ - .line 71 │ + .line 64 │ .end local v0 # "e":Ljava/text/ParseException; │ :catchall_0 │ move-exception v1 │ │ monitor-exit p0 │ │ throw v1 │ .end method │ │ │ # virtual methods │ .method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ @@ -212,30 +181,30 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 62 │ + .line 55 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v0 │ │ sget-object v1, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ if-ne v0, v1, :cond_0 │ │ - .line 63 │ + .line 56 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ │ - .line 64 │ + .line 57 │ const/4 v0, 0x0 │ │ - .line 66 │ + .line 59 │ :goto_0 │ return-object v0 │ │ :cond_0 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextString()Ljava/lang/String; │ │ move-result-object v0 │ @@ -245,27 +214,24 @@ │ move-result-object v0 │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ .line 41 │ check-cast p2, Ljava/util/Date; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/DateTypeAdapter;->write(Lcom/google/gson/stream/JsonWriter;Ljava/util/Date;)V │ │ return-void │ .end method │ │ .method public declared-synchronized write(Lcom/google/gson/stream/JsonWriter;Ljava/util/Date;)V │ .locals 2 │ @@ -274,49 +240,49 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 86 │ + .line 79 │ monitor-enter p0 │ │ if-nez p2, :cond_0 │ │ - .line 87 │ + .line 80 │ :try_start_0 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->nullValue()Lcom/google/gson/stream/JsonWriter; │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ - .line 92 │ + .line 85 │ :goto_0 │ monitor-exit p0 │ │ return-void │ │ - .line 90 │ + .line 83 │ :cond_0 │ :try_start_1 │ iget-object v1, p0, Lcom/google/gson/internal/bind/DateTypeAdapter;->enUsFormat:Ljava/text/DateFormat; │ │ invoke-virtual {v1, p2}, Ljava/text/DateFormat;->format(Ljava/util/Date;)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 91 │ + .line 84 │ .local v0, "dateFormatAsString":Ljava/lang/String; │ invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ goto :goto_0 │ │ - .line 86 │ + .line 79 │ .end local v0 # "dateFormatAsString":Ljava/lang/String; │ :catchall_0 │ move-exception v1 │ │ monitor-exit p0 │ │ throw v1 ├── smali/com/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory.smali │ @@ -12,177 +12,237 @@ │ │ # direct methods │ .method public constructor (Lcom/google/gson/internal/ConstructorConstructor;)V │ .locals 0 │ .param p1, "constructorConstructor" # Lcom/google/gson/internal/ConstructorConstructor; │ │ .prologue │ - .line 36 │ + .line 37 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 37 │ + .line 38 │ iput-object p1, p0, Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor; │ │ - .line 38 │ + .line 39 │ return-void │ .end method │ │ -.method static getTypeAdapter(Lcom/google/gson/internal/ConstructorConstructor;Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;Lcom/google/gson/annotations/JsonAdapter;)Lcom/google/gson/TypeAdapter; │ - .locals 5 │ - .param p0, "constructorConstructor" # Lcom/google/gson/internal/ConstructorConstructor; │ + │ +# virtual methods │ +.method public create(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ + .locals 3 │ .param p1, "gson" # Lcom/google/gson/Gson; │ - .param p3, "annotation" # Lcom/google/gson/annotations/JsonAdapter; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ - "(", │ - "Lcom/google/gson/internal/ConstructorConstructor;", │ + "(", │ "Lcom/google/gson/Gson;", │ "Lcom/google/gson/reflect/TypeToken", │ - "<*>;", │ - "Lcom/google/gson/annotations/JsonAdapter;", │ - ")", │ + ";)", │ "Lcom/google/gson/TypeAdapter", │ - "<*>;" │ + ";" │ } │ .end annotation │ │ .prologue │ - .line 52 │ - .local p2, "fieldType":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken<*>;" │ - invoke-interface {p3}, Lcom/google/gson/annotations/JsonAdapter;->value()Ljava/lang/Class; │ + .line 44 │ + .local p2, "targetType":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken;" │ + invoke-virtual {p2}, Lcom/google/gson/reflect/TypeToken;->getRawType()Ljava/lang/Class; │ │ - move-result-object v2 │ + move-result-object v1 │ + │ + .line 45 │ + .local v1, "rawType":Ljava/lang/Class;, "Ljava/lang/Class<-TT;>;" │ + const-class v2, Lcom/google/gson/annotations/JsonAdapter; │ + │ + invoke-virtual {v1, v2}, Ljava/lang/Class;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; │ + │ + move-result-object v0 │ + │ + check-cast v0, Lcom/google/gson/annotations/JsonAdapter; │ │ - .line 53 │ - .local v2, "value":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ - const-class v3, Lcom/google/gson/TypeAdapter; │ + .line 46 │ + .local v0, "annotation":Lcom/google/gson/annotations/JsonAdapter; │ + if-nez v0, :cond_0 │ │ - invoke-virtual {v3, v2}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z │ + .line 47 │ + const/4 v2, 0x0 │ │ - move-result v3 │ + .line 49 │ + :goto_0 │ + return-object v2 │ │ - if-eqz v3, :cond_0 │ + :cond_0 │ + iget-object v2, p0, Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor; │ │ - .line 54 │ - move-object v0, v2 │ + invoke-virtual {p0, v2, p1, p2, v0}, Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory;->getTypeAdapter(Lcom/google/gson/internal/ConstructorConstructor;Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;Lcom/google/gson/annotations/JsonAdapter;)Lcom/google/gson/TypeAdapter; │ │ - .line 55 │ - .local v0, "typeAdapter":Ljava/lang/Class;, "Ljava/lang/Class;>;" │ - invoke-static {v0}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/Class;)Lcom/google/gson/reflect/TypeToken; │ + move-result-object v2 │ │ - move-result-object v3 │ + goto :goto_0 │ +.end method │ │ - invoke-virtual {p0, v3}, Lcom/google/gson/internal/ConstructorConstructor;->get(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/internal/ObjectConstructor; │ +.method getTypeAdapter(Lcom/google/gson/internal/ConstructorConstructor;Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;Lcom/google/gson/annotations/JsonAdapter;)Lcom/google/gson/TypeAdapter; │ + .locals 7 │ + .param p1, "constructorConstructor" # Lcom/google/gson/internal/ConstructorConstructor; │ + .param p2, "gson" # Lcom/google/gson/Gson; │ + .param p4, "annotation" # Lcom/google/gson/annotations/JsonAdapter; │ + .annotation system Ldalvik/annotation/Signature; │ + value = { │ + "(", │ + "Lcom/google/gson/internal/ConstructorConstructor;", │ + "Lcom/google/gson/Gson;", │ + "Lcom/google/gson/reflect/TypeToken", │ + "<*>;", │ + "Lcom/google/gson/annotations/JsonAdapter;", │ + ")", │ + "Lcom/google/gson/TypeAdapter", │ + "<*>;" │ + } │ + .end annotation │ + │ + .prologue │ + .local p3, "type":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken<*>;" │ + const/4 v5, 0x0 │ + │ + .line 55 │ + invoke-interface {p4}, Lcom/google/gson/annotations/JsonAdapter;->value()Ljava/lang/Class; │ │ move-result-object v3 │ │ - invoke-interface {v3}, Lcom/google/gson/internal/ObjectConstructor;->construct()Ljava/lang/Object; │ + invoke-static {v3}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/Class;)Lcom/google/gson/reflect/TypeToken; │ │ move-result-object v3 │ │ - check-cast v3, Lcom/google/gson/TypeAdapter; │ + invoke-virtual {p1, v3}, Lcom/google/gson/internal/ConstructorConstructor;->get(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/internal/ObjectConstructor; │ │ - .line 59 │ - .end local v0 # "typeAdapter":Ljava/lang/Class;, "Ljava/lang/Class;>;" │ - :goto_0 │ - return-object v3 │ + move-result-object v3 │ │ - .line 57 │ - :cond_0 │ - const-class v3, Lcom/google/gson/TypeAdapterFactory; │ + invoke-interface {v3}, Lcom/google/gson/internal/ObjectConstructor;->construct()Ljava/lang/Object; │ │ - invoke-virtual {v3, v2}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z │ + move-result-object v6 │ │ - move-result v3 │ + .line 58 │ + .local v6, "instance":Ljava/lang/Object; │ + instance-of v3, v6, Lcom/google/gson/TypeAdapter; │ │ if-eqz v3, :cond_1 │ │ - .line 58 │ - move-object v1, v2 │ + move-object v0, v6 │ │ .line 59 │ - .local v1, "typeAdapterFactory":Ljava/lang/Class;, "Ljava/lang/Class;" │ - invoke-static {v1}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/Class;)Lcom/google/gson/reflect/TypeToken; │ + check-cast v0, Lcom/google/gson/TypeAdapter; │ │ - move-result-object v3 │ + .line 76 │ + .end local v6 # "instance":Ljava/lang/Object; │ + .local v0, "typeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<*>;" │ + :goto_0 │ + if-eqz v0, :cond_0 │ │ - invoke-virtual {p0, v3}, Lcom/google/gson/internal/ConstructorConstructor;->get(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/internal/ObjectConstructor; │ + .line 77 │ + invoke-virtual {v0}, Lcom/google/gson/TypeAdapter;->nullSafe()Lcom/google/gson/TypeAdapter; │ │ - move-result-object v3 │ + move-result-object v0 │ │ - invoke-interface {v3}, Lcom/google/gson/internal/ObjectConstructor;->construct()Ljava/lang/Object; │ + .line 80 │ + :cond_0 │ + return-object v0 │ │ - move-result-object v3 │ + .line 60 │ + .end local v0 # "typeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<*>;" │ + .restart local v6 # "instance":Ljava/lang/Object; │ + :cond_1 │ + instance-of v3, v6, Lcom/google/gson/TypeAdapterFactory; │ │ - check-cast v3, Lcom/google/gson/TypeAdapterFactory; │ + if-eqz v3, :cond_2 │ │ - invoke-interface {v3, p1, p2}, Lcom/google/gson/TypeAdapterFactory;->create(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ + .line 61 │ + check-cast v6, Lcom/google/gson/TypeAdapterFactory; │ │ - move-result-object v3 │ + .end local v6 # "instance":Ljava/lang/Object; │ + invoke-interface {v6, p2, p3}, Lcom/google/gson/TypeAdapterFactory;->create(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ │ + move-result-object v0 │ + │ + .restart local v0 # "typeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<*>;" │ goto :goto_0 │ │ - .line 64 │ - .end local v1 # "typeAdapterFactory":Ljava/lang/Class;, "Ljava/lang/Class;" │ - :cond_1 │ - new-instance v3, Ljava/lang/IllegalArgumentException; │ + .line 62 │ + .end local v0 # "typeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<*>;" │ + .restart local v6 # "instance":Ljava/lang/Object; │ + :cond_2 │ + instance-of v3, v6, Lcom/google/gson/JsonSerializer; │ │ - const-string v4, "@JsonAdapter value must be TypeAdapter or TypeAdapterFactory reference." │ + if-nez v3, :cond_3 │ │ - invoke-direct {v3, v4}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ + instance-of v3, v6, Lcom/google/gson/JsonDeserializer; │ │ - throw v3 │ -.end method │ + if-eqz v3, :cond_6 │ │ + .line 63 │ + :cond_3 │ + instance-of v3, v6, Lcom/google/gson/JsonSerializer; │ │ -# virtual methods │ -.method public create(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ - .locals 3 │ - .param p1, "gson" # Lcom/google/gson/Gson; │ - .annotation system Ldalvik/annotation/Signature; │ - value = { │ - "(", │ - "Lcom/google/gson/Gson;", │ - "Lcom/google/gson/reflect/TypeToken", │ - ";)", │ - "Lcom/google/gson/TypeAdapter", │ - ";" │ - } │ - .end annotation │ + if-eqz v3, :cond_4 │ │ - .prologue │ - .line 42 │ - .local p2, "targetType":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken;" │ - invoke-virtual {p2}, Lcom/google/gson/reflect/TypeToken;->getRawType()Ljava/lang/Class; │ + move-object v3, v6 │ │ - move-result-object v1 │ + check-cast v3, Lcom/google/gson/JsonSerializer; │ │ - const-class v2, Lcom/google/gson/annotations/JsonAdapter; │ + move-object v1, v3 │ │ - invoke-virtual {v1, v2}, Ljava/lang/Class;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; │ - │ - move-result-object v0 │ + .line 66 │ + .local v1, "serializer":Lcom/google/gson/JsonSerializer;, "Lcom/google/gson/JsonSerializer<*>;" │ + :goto_1 │ + instance-of v3, v6, Lcom/google/gson/JsonDeserializer; │ │ - check-cast v0, Lcom/google/gson/annotations/JsonAdapter; │ + if-eqz v3, :cond_5 │ │ - .line 43 │ - .local v0, "annotation":Lcom/google/gson/annotations/JsonAdapter; │ - if-nez v0, :cond_0 │ + check-cast v6, Lcom/google/gson/JsonDeserializer; │ │ - .line 44 │ - const/4 v1, 0x0 │ + .end local v6 # "instance":Ljava/lang/Object; │ + move-object v2, v6 │ │ - .line 46 │ - :goto_0 │ - return-object v1 │ + .line 69 │ + .local v2, "deserializer":Lcom/google/gson/JsonDeserializer;, "Lcom/google/gson/JsonDeserializer<*>;" │ + :goto_2 │ + new-instance v0, Lcom/google/gson/internal/bind/TreeTypeAdapter; │ │ - :cond_0 │ - iget-object v1, p0, Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor; │ + move-object v3, p2 │ │ - invoke-static {v1, p1, p2, v0}, Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory;->getTypeAdapter(Lcom/google/gson/internal/ConstructorConstructor;Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;Lcom/google/gson/annotations/JsonAdapter;)Lcom/google/gson/TypeAdapter; │ + move-object v4, p3 │ │ - move-result-object v1 │ + invoke-direct/range {v0 .. v5}, Lcom/google/gson/internal/bind/TreeTypeAdapter;->(Lcom/google/gson/JsonSerializer;Lcom/google/gson/JsonDeserializer;Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;Lcom/google/gson/TypeAdapterFactory;)V │ │ + .line 70 │ + .restart local v0 # "typeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<*>;" │ goto :goto_0 │ + │ + .end local v0 # "typeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<*>;" │ + .end local v1 # "serializer":Lcom/google/gson/JsonSerializer;, "Lcom/google/gson/JsonSerializer<*>;" │ + .end local v2 # "deserializer":Lcom/google/gson/JsonDeserializer;, "Lcom/google/gson/JsonDeserializer<*>;" │ + .restart local v6 # "instance":Ljava/lang/Object; │ + :cond_4 │ + move-object v1, v5 │ + │ + .line 63 │ + goto :goto_1 │ + │ + .restart local v1 # "serializer":Lcom/google/gson/JsonSerializer;, "Lcom/google/gson/JsonSerializer<*>;" │ + :cond_5 │ + move-object v2, v5 │ + │ + .line 66 │ + goto :goto_2 │ + │ + .line 71 │ + .end local v1 # "serializer":Lcom/google/gson/JsonSerializer;, "Lcom/google/gson/JsonSerializer<*>;" │ + :cond_6 │ + new-instance v3, Ljava/lang/IllegalArgumentException; │ + │ + const-string v4, "@JsonAdapter value must be TypeAdapter, TypeAdapterFactory, JsonSerializer or JsonDeserializer reference." │ + │ + invoke-direct {v3, v4}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ + │ + throw v3 │ .end method ├── smali/com/google/gson/internal/bind/JsonTreeReader$1.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 40 │ + .line 38 │ invoke-direct {p0}, Ljava/io/Reader;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ @@ -32,15 +32,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 45 │ + .line 43 │ new-instance v0, Ljava/lang/AssertionError; │ │ invoke-direct {v0}, Ljava/lang/AssertionError;->()V │ │ throw v0 │ .end method │ │ @@ -52,14 +52,14 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 42 │ + .line 40 │ new-instance v0, Ljava/lang/AssertionError; │ │ invoke-direct {v0}, Ljava/lang/AssertionError;->()V │ │ throw v0 │ .end method ├── smali/com/google/gson/internal/bind/JsonTreeReader.smali │ @@ -6,92 +6,102 @@ │ # static fields │ .field private static final SENTINEL_CLOSED:Ljava/lang/Object; │ │ .field private static final UNREADABLE_READER:Ljava/io/Reader; │ │ │ # instance fields │ -.field private final stack:Ljava/util/List; │ - .annotation system Ldalvik/annotation/Signature; │ - value = { │ - "Ljava/util/List", │ - "<", │ - "Ljava/lang/Object;", │ - ">;" │ - } │ - .end annotation │ -.end field │ +.field private pathIndices:[I │ + │ +.field private pathNames:[Ljava/lang/String; │ + │ +.field private stack:[Ljava/lang/Object; │ + │ +.field private stackSize:I │ │ │ # direct methods │ .method static constructor ()V │ .locals 1 │ │ .prologue │ - .line 40 │ + .line 38 │ new-instance v0, Lcom/google/gson/internal/bind/JsonTreeReader$1; │ │ invoke-direct {v0}, Lcom/google/gson/internal/bind/JsonTreeReader$1;->()V │ │ sput-object v0, Lcom/google/gson/internal/bind/JsonTreeReader;->UNREADABLE_READER:Ljava/io/Reader; │ │ - .line 48 │ + .line 46 │ new-instance v0, Ljava/lang/Object; │ │ invoke-direct {v0}, Ljava/lang/Object;->()V │ │ sput-object v0, Lcom/google/gson/internal/bind/JsonTreeReader;->SENTINEL_CLOSED:Ljava/lang/Object; │ │ return-void │ .end method │ │ .method public constructor (Lcom/google/gson/JsonElement;)V │ - .locals 1 │ + .locals 2 │ .param p1, "element" # Lcom/google/gson/JsonElement; │ │ .prologue │ - .line 53 │ + const/16 v1, 0x20 │ + │ + .line 66 │ sget-object v0, Lcom/google/gson/internal/bind/JsonTreeReader;->UNREADABLE_READER:Ljava/io/Reader; │ │ invoke-direct {p0, v0}, Lcom/google/gson/stream/JsonReader;->(Ljava/io/Reader;)V │ │ - .line 50 │ - new-instance v0, Ljava/util/ArrayList; │ + .line 51 │ + new-array v0, v1, [Ljava/lang/Object; │ + │ + iput-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:[Ljava/lang/Object; │ + │ + .line 52 │ + const/4 v0, 0x0 │ │ - invoke-direct {v0}, Ljava/util/ArrayList;->()V │ + iput v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ │ - iput-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:Ljava/util/List; │ + .line 62 │ + new-array v0, v1, [Ljava/lang/String; │ │ - .line 54 │ - iget-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:Ljava/util/List; │ + iput-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathNames:[Ljava/lang/String; │ │ - invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + .line 63 │ + new-array v0, v1, [I │ │ - .line 55 │ + iput-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I │ + │ + .line 67 │ + invoke-direct {p0, p1}, Lcom/google/gson/internal/bind/JsonTreeReader;->push(Ljava/lang/Object;)V │ + │ + .line 68 │ return-void │ .end method │ │ .method private expect(Lcom/google/gson/stream/JsonToken;)V │ .locals 3 │ .param p1, "expected" # Lcom/google/gson/stream/JsonToken; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 138 │ + .line 160 │ invoke-virtual {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v0 │ │ if-eq v0, p1, :cond_0 │ │ - .line 139 │ + .line 161 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ new-instance v1, Ljava/lang/StringBuilder; │ │ invoke-direct {v1}, Ljava/lang/StringBuilder;->()V │ │ const-string v2, "Expected " │ @@ -106,243 +116,543 @@ │ │ const-string v2, " but was " │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ + .line 162 │ invoke-virtual {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v2 │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ + invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->locationString()Ljava/lang/String; │ + │ + move-result-object v2 │ + │ + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + │ + move-result-object v1 │ + │ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V │ │ throw v0 │ │ - .line 141 │ + .line 164 │ :cond_0 │ return-void │ .end method │ │ -.method private peekStack()Ljava/lang/Object; │ +.method private locationString()Ljava/lang/String; │ .locals 2 │ │ .prologue │ - .line 130 │ - iget-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:Ljava/util/List; │ + .line 314 │ + new-instance v0, Ljava/lang/StringBuilder; │ │ - iget-object v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:Ljava/util/List; │ + invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ │ - invoke-interface {v1}, Ljava/util/List;->size()I │ + const-string v1, " at path " │ │ - move-result v1 │ + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - add-int/lit8 v1, v1, -0x1 │ + move-result-object v0 │ │ - invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; │ + invoke-virtual {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->getPath()Ljava/lang/String; │ + │ + move-result-object v1 │ + │ + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + │ + move-result-object v0 │ + │ + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ -.method private popStack()Ljava/lang/Object; │ +.method private peekStack()Ljava/lang/Object; │ .locals 2 │ │ .prologue │ - .line 134 │ - iget-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:Ljava/util/List; │ + .line 150 │ + iget-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:[Ljava/lang/Object; │ │ - iget-object v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:Ljava/util/List; │ + iget v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ │ - invoke-interface {v1}, Ljava/util/List;->size()I │ + add-int/lit8 v1, v1, -0x1 │ │ - move-result v1 │ + aget-object v0, v0, v1 │ │ - add-int/lit8 v1, v1, -0x1 │ + return-object v0 │ +.end method │ │ - invoke-interface {v0, v1}, Ljava/util/List;->remove(I)Ljava/lang/Object; │ +.method private popStack()Ljava/lang/Object; │ + .locals 4 │ │ - move-result-object v0 │ + .prologue │ + .line 154 │ + iget-object v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:[Ljava/lang/Object; │ │ + iget v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + add-int/lit8 v2, v2, -0x1 │ + │ + iput v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + aget-object v0, v1, v2 │ + │ + .line 155 │ + .local v0, "result":Ljava/lang/Object; │ + iget-object v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:[Ljava/lang/Object; │ + │ + iget v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + const/4 v3, 0x0 │ + │ + aput-object v3, v1, v2 │ + │ + .line 156 │ return-object v0 │ .end method │ │ +.method private push(Ljava/lang/Object;)V │ + .locals 6 │ + .param p1, "newTop" # Ljava/lang/Object; │ + │ + .prologue │ + const/4 v5, 0x0 │ + │ + .line 280 │ + iget v3, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + iget-object v4, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:[Ljava/lang/Object; │ + │ + array-length v4, v4 │ + │ + if-ne v3, v4, :cond_0 │ + │ + .line 281 │ + iget v3, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + mul-int/lit8 v3, v3, 0x2 │ + │ + new-array v2, v3, [Ljava/lang/Object; │ + │ + .line 282 │ + .local v2, "newStack":[Ljava/lang/Object; │ + iget v3, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + mul-int/lit8 v3, v3, 0x2 │ + │ + new-array v0, v3, [I │ + │ + .line 283 │ + .local v0, "newPathIndices":[I │ + iget v3, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + mul-int/lit8 v3, v3, 0x2 │ + │ + new-array v1, v3, [Ljava/lang/String; │ + │ + .line 284 │ + .local v1, "newPathNames":[Ljava/lang/String; │ + iget-object v3, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:[Ljava/lang/Object; │ + │ + iget v4, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + invoke-static {v3, v5, v2, v5, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V │ + │ + .line 285 │ + iget-object v3, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I │ + │ + iget v4, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + invoke-static {v3, v5, v0, v5, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V │ + │ + .line 286 │ + iget-object v3, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathNames:[Ljava/lang/String; │ + │ + iget v4, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + invoke-static {v3, v5, v1, v5, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V │ + │ + .line 287 │ + iput-object v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:[Ljava/lang/Object; │ + │ + .line 288 │ + iput-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I │ + │ + .line 289 │ + iput-object v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathNames:[Ljava/lang/String; │ + │ + .line 291 │ + .end local v0 # "newPathIndices":[I │ + .end local v1 # "newPathNames":[Ljava/lang/String; │ + .end local v2 # "newStack":[Ljava/lang/Object; │ + :cond_0 │ + iget-object v3, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:[Ljava/lang/Object; │ + │ + iget v4, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + add-int/lit8 v5, v4, 0x1 │ + │ + iput v5, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + aput-object p1, v3, v4 │ + │ + .line 292 │ + return-void │ +.end method │ + │ │ # virtual methods │ .method public beginArray()V │ - .locals 3 │ + .locals 4 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 58 │ + .line 71 │ sget-object v1, Lcom/google/gson/stream/JsonToken;->BEGIN_ARRAY:Lcom/google/gson/stream/JsonToken; │ │ invoke-direct {p0, v1}, Lcom/google/gson/internal/bind/JsonTreeReader;->expect(Lcom/google/gson/stream/JsonToken;)V │ │ - .line 59 │ + .line 72 │ invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peekStack()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lcom/google/gson/JsonArray; │ │ - .line 60 │ + .line 73 │ .local v0, "array":Lcom/google/gson/JsonArray; │ - iget-object v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:Ljava/util/List; │ - │ invoke-virtual {v0}, Lcom/google/gson/JsonArray;->iterator()Ljava/util/Iterator; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-direct {p0, v1}, Lcom/google/gson/internal/bind/JsonTreeReader;->push(Ljava/lang/Object;)V │ │ - .line 61 │ + .line 74 │ + iget-object v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I │ + │ + iget v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + add-int/lit8 v2, v2, -0x1 │ + │ + const/4 v3, 0x0 │ + │ + aput v3, v1, v2 │ + │ + .line 75 │ return-void │ .end method │ │ .method public beginObject()V │ - .locals 3 │ + .locals 2 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 70 │ + .line 87 │ sget-object v1, Lcom/google/gson/stream/JsonToken;->BEGIN_OBJECT:Lcom/google/gson/stream/JsonToken; │ │ invoke-direct {p0, v1}, Lcom/google/gson/internal/bind/JsonTreeReader;->expect(Lcom/google/gson/stream/JsonToken;)V │ │ - .line 71 │ + .line 88 │ invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peekStack()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lcom/google/gson/JsonObject; │ │ - .line 72 │ + .line 89 │ .local v0, "object":Lcom/google/gson/JsonObject; │ - iget-object v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:Ljava/util/List; │ - │ invoke-virtual {v0}, Lcom/google/gson/JsonObject;->entrySet()Ljava/util/Set; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - invoke-interface {v2}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ + invoke-interface {v1}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-direct {p0, v1}, Lcom/google/gson/internal/bind/JsonTreeReader;->push(Ljava/lang/Object;)V │ │ - .line 73 │ + .line 90 │ return-void │ .end method │ │ .method public close()V │ - .locals 2 │ + .locals 4 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 203 │ - iget-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:Ljava/util/List; │ + const/4 v3, 0x1 │ │ - invoke-interface {v0}, Ljava/util/List;->clear()V │ + .line 252 │ + new-array v0, v3, [Ljava/lang/Object; │ │ - .line 204 │ - iget-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:Ljava/util/List; │ + const/4 v1, 0x0 │ + │ + sget-object v2, Lcom/google/gson/internal/bind/JsonTreeReader;->SENTINEL_CLOSED:Ljava/lang/Object; │ + │ + aput-object v2, v0, v1 │ │ - sget-object v1, Lcom/google/gson/internal/bind/JsonTreeReader;->SENTINEL_CLOSED:Ljava/lang/Object; │ + iput-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:[Ljava/lang/Object; │ │ - invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + .line 253 │ + iput v3, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ │ - .line 205 │ + .line 254 │ return-void │ .end method │ │ .method public endArray()V │ - .locals 1 │ + .locals 3 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 64 │ + .line 78 │ sget-object v0, Lcom/google/gson/stream/JsonToken;->END_ARRAY:Lcom/google/gson/stream/JsonToken; │ │ invoke-direct {p0, v0}, Lcom/google/gson/internal/bind/JsonTreeReader;->expect(Lcom/google/gson/stream/JsonToken;)V │ │ - .line 65 │ + .line 79 │ invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->popStack()Ljava/lang/Object; │ │ - .line 66 │ + .line 80 │ invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->popStack()Ljava/lang/Object; │ │ - .line 67 │ + .line 81 │ + iget v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + if-lez v0, :cond_0 │ + │ + .line 82 │ + iget-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I │ + │ + iget v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + add-int/lit8 v1, v1, -0x1 │ + │ + aget v2, v0, v1 │ + │ + add-int/lit8 v2, v2, 0x1 │ + │ + aput v2, v0, v1 │ + │ + .line 84 │ + :cond_0 │ return-void │ .end method │ │ .method public endObject()V │ - .locals 1 │ + .locals 3 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 76 │ + .line 93 │ sget-object v0, Lcom/google/gson/stream/JsonToken;->END_OBJECT:Lcom/google/gson/stream/JsonToken; │ │ invoke-direct {p0, v0}, Lcom/google/gson/internal/bind/JsonTreeReader;->expect(Lcom/google/gson/stream/JsonToken;)V │ │ - .line 77 │ + .line 94 │ invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->popStack()Ljava/lang/Object; │ │ - .line 78 │ + .line 95 │ invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->popStack()Ljava/lang/Object; │ │ - .line 79 │ + .line 96 │ + iget v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + if-lez v0, :cond_0 │ + │ + .line 97 │ + iget-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I │ + │ + iget v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + add-int/lit8 v1, v1, -0x1 │ + │ + aget v2, v0, v1 │ + │ + add-int/lit8 v2, v2, 0x1 │ + │ + aput v2, v0, v1 │ + │ + .line 99 │ + :cond_0 │ return-void │ .end method │ │ +.method public getPath()Ljava/lang/String; │ + .locals 4 │ + │ + .prologue │ + .line 295 │ + new-instance v2, Ljava/lang/StringBuilder; │ + │ + invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ + │ + const/16 v3, 0x24 │ + │ + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ + │ + move-result-object v1 │ + │ + .line 296 │ + .local v1, "result":Ljava/lang/StringBuilder; │ + const/4 v0, 0x0 │ + │ + .local v0, "i":I │ + :goto_0 │ + iget v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + if-ge v0, v2, :cond_2 │ + │ + .line 297 │ + iget-object v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:[Ljava/lang/Object; │ + │ + aget-object v2, v2, v0 │ + │ + instance-of v2, v2, Lcom/google/gson/JsonArray; │ + │ + if-eqz v2, :cond_1 │ + │ + .line 298 │ + iget-object v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:[Ljava/lang/Object; │ + │ + add-int/lit8 v0, v0, 0x1 │ + │ + aget-object v2, v2, v0 │ + │ + instance-of v2, v2, Ljava/util/Iterator; │ + │ + if-eqz v2, :cond_0 │ + │ + .line 299 │ + const/16 v2, 0x5b │ + │ + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ + │ + move-result-object v2 │ + │ + iget-object v3, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I │ + │ + aget v3, v3, v0 │ + │ + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ + │ + move-result-object v2 │ + │ + const/16 v3, 0x5d │ + │ + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ + │ + .line 296 │ + :cond_0 │ + :goto_1 │ + add-int/lit8 v0, v0, 0x1 │ + │ + goto :goto_0 │ + │ + .line 301 │ + :cond_1 │ + iget-object v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:[Ljava/lang/Object; │ + │ + aget-object v2, v2, v0 │ + │ + instance-of v2, v2, Lcom/google/gson/JsonObject; │ + │ + if-eqz v2, :cond_0 │ + │ + .line 302 │ + iget-object v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:[Ljava/lang/Object; │ + │ + add-int/lit8 v0, v0, 0x1 │ + │ + aget-object v2, v2, v0 │ + │ + instance-of v2, v2, Ljava/util/Iterator; │ + │ + if-eqz v2, :cond_0 │ + │ + .line 303 │ + const/16 v2, 0x2e │ + │ + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ + │ + .line 304 │ + iget-object v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathNames:[Ljava/lang/String; │ + │ + aget-object v2, v2, v0 │ + │ + if-eqz v2, :cond_0 │ + │ + .line 305 │ + iget-object v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathNames:[Ljava/lang/String; │ + │ + aget-object v2, v2, v0 │ + │ + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + │ + goto :goto_1 │ + │ + .line 310 │ + :cond_2 │ + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + │ + move-result-object v2 │ + │ + return-object v2 │ +.end method │ + │ .method public hasNext()Z │ .locals 2 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 82 │ + .line 102 │ invoke-virtual {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v0 │ │ - .line 83 │ + .line 103 │ .local v0, "token":Lcom/google/gson/stream/JsonToken; │ sget-object v1, Lcom/google/gson/stream/JsonToken;->END_OBJECT:Lcom/google/gson/stream/JsonToken; │ │ if-eq v0, v1, :cond_0 │ │ sget-object v1, Lcom/google/gson/stream/JsonToken;->END_ARRAY:Lcom/google/gson/stream/JsonToken; │ │ @@ -356,66 +666,87 @@ │ :cond_0 │ const/4 v1, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public nextBoolean()Z │ - .locals 1 │ + .locals 4 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 160 │ - sget-object v0, Lcom/google/gson/stream/JsonToken;->BOOLEAN:Lcom/google/gson/stream/JsonToken; │ + .line 190 │ + sget-object v1, Lcom/google/gson/stream/JsonToken;->BOOLEAN:Lcom/google/gson/stream/JsonToken; │ │ - invoke-direct {p0, v0}, Lcom/google/gson/internal/bind/JsonTreeReader;->expect(Lcom/google/gson/stream/JsonToken;)V │ + invoke-direct {p0, v1}, Lcom/google/gson/internal/bind/JsonTreeReader;->expect(Lcom/google/gson/stream/JsonToken;)V │ │ - .line 161 │ + .line 191 │ invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->popStack()Ljava/lang/Object; │ │ - move-result-object v0 │ + move-result-object v1 │ │ - check-cast v0, Lcom/google/gson/JsonPrimitive; │ + check-cast v1, Lcom/google/gson/JsonPrimitive; │ │ - invoke-virtual {v0}, Lcom/google/gson/JsonPrimitive;->getAsBoolean()Z │ + invoke-virtual {v1}, Lcom/google/gson/JsonPrimitive;->getAsBoolean()Z │ │ move-result v0 │ │ + .line 192 │ + .local v0, "result":Z │ + iget v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + if-lez v1, :cond_0 │ + │ + .line 193 │ + iget-object v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I │ + │ + iget v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + add-int/lit8 v2, v2, -0x1 │ + │ + aget v3, v1, v2 │ + │ + add-int/lit8 v3, v3, 0x1 │ + │ + aput v3, v1, v2 │ + │ + .line 195 │ + :cond_0 │ return v0 │ .end method │ │ .method public nextDouble()D │ .locals 6 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 170 │ + .line 207 │ invoke-virtual {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v2 │ │ - .line 171 │ + .line 208 │ .local v2, "token":Lcom/google/gson/stream/JsonToken; │ sget-object v3, Lcom/google/gson/stream/JsonToken;->NUMBER:Lcom/google/gson/stream/JsonToken; │ │ if-eq v2, v3, :cond_0 │ │ sget-object v3, Lcom/google/gson/stream/JsonToken;->STRING:Lcom/google/gson/stream/JsonToken; │ │ if-eq v2, v3, :cond_0 │ │ - .line 172 │ + .line 209 │ new-instance v3, Ljava/lang/IllegalStateException; │ │ new-instance v4, Ljava/lang/StringBuilder; │ │ invoke-direct {v4}, Ljava/lang/StringBuilder;->()V │ │ const-string v5, "Expected " │ @@ -436,35 +767,44 @@ │ │ move-result-object v4 │ │ invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ move-result-object v4 │ │ + .line 210 │ + invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->locationString()Ljava/lang/String; │ + │ + move-result-object v5 │ + │ + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + │ + move-result-object v4 │ + │ invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v4 │ │ invoke-direct {v3, v4}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V │ │ throw v3 │ │ - .line 174 │ + .line 212 │ :cond_0 │ invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peekStack()Ljava/lang/Object; │ │ move-result-object v3 │ │ check-cast v3, Lcom/google/gson/JsonPrimitive; │ │ invoke-virtual {v3}, Lcom/google/gson/JsonPrimitive;->getAsDouble()D │ │ move-result-wide v0 │ │ - .line 175 │ + .line 213 │ .local v0, "result":D │ invoke-virtual {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->isLenient()Z │ │ move-result v3 │ │ if-nez v3, :cond_2 │ │ @@ -476,15 +816,15 @@ │ │ invoke-static {v0, v1}, Ljava/lang/Double;->isInfinite(D)Z │ │ move-result v3 │ │ if-eqz v3, :cond_2 │ │ - .line 176 │ + .line 214 │ :cond_1 │ new-instance v3, Ljava/lang/NumberFormatException; │ │ new-instance v4, Ljava/lang/StringBuilder; │ │ invoke-direct {v4}, Ljava/lang/StringBuilder;->()V │ │ @@ -502,47 +842,66 @@ │ │ move-result-object v4 │ │ invoke-direct {v3, v4}, Ljava/lang/NumberFormatException;->(Ljava/lang/String;)V │ │ throw v3 │ │ - .line 178 │ + .line 216 │ :cond_2 │ invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->popStack()Ljava/lang/Object; │ │ - .line 179 │ + .line 217 │ + iget v3, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + if-lez v3, :cond_3 │ + │ + .line 218 │ + iget-object v3, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I │ + │ + iget v4, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + add-int/lit8 v4, v4, -0x1 │ + │ + aget v5, v3, v4 │ + │ + add-int/lit8 v5, v5, 0x1 │ + │ + aput v5, v3, v4 │ + │ + .line 220 │ + :cond_3 │ return-wide v0 │ .end method │ │ .method public nextInt()I │ .locals 5 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 193 │ + .line 238 │ invoke-virtual {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v1 │ │ - .line 194 │ + .line 239 │ .local v1, "token":Lcom/google/gson/stream/JsonToken; │ sget-object v2, Lcom/google/gson/stream/JsonToken;->NUMBER:Lcom/google/gson/stream/JsonToken; │ │ if-eq v1, v2, :cond_0 │ │ sget-object v2, Lcom/google/gson/stream/JsonToken;->STRING:Lcom/google/gson/stream/JsonToken; │ │ if-eq v1, v2, :cond_0 │ │ - .line 195 │ + .line 240 │ new-instance v2, Ljava/lang/IllegalStateException; │ │ new-instance v3, Ljava/lang/StringBuilder; │ │ invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ const-string v4, "Expected " │ @@ -563,67 +922,95 @@ │ │ move-result-object v3 │ │ invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ move-result-object v3 │ │ + .line 241 │ + invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->locationString()Ljava/lang/String; │ + │ + move-result-object v4 │ + │ + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + │ + move-result-object v3 │ + │ invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-direct {v2, v3}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V │ │ throw v2 │ │ - .line 197 │ + .line 243 │ :cond_0 │ invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peekStack()Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Lcom/google/gson/JsonPrimitive; │ │ invoke-virtual {v2}, Lcom/google/gson/JsonPrimitive;->getAsInt()I │ │ move-result v0 │ │ - .line 198 │ + .line 244 │ .local v0, "result":I │ invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->popStack()Ljava/lang/Object; │ │ - .line 199 │ + .line 245 │ + iget v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + if-lez v2, :cond_1 │ + │ + .line 246 │ + iget-object v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I │ + │ + iget v3, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + add-int/lit8 v3, v3, -0x1 │ + │ + aget v4, v2, v3 │ + │ + add-int/lit8 v4, v4, 0x1 │ + │ + aput v4, v2, v3 │ + │ + .line 248 │ + :cond_1 │ return v0 │ .end method │ │ .method public nextLong()J │ .locals 6 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 183 │ + .line 224 │ invoke-virtual {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v2 │ │ - .line 184 │ + .line 225 │ .local v2, "token":Lcom/google/gson/stream/JsonToken; │ sget-object v3, Lcom/google/gson/stream/JsonToken;->NUMBER:Lcom/google/gson/stream/JsonToken; │ │ if-eq v2, v3, :cond_0 │ │ sget-object v3, Lcom/google/gson/stream/JsonToken;->STRING:Lcom/google/gson/stream/JsonToken; │ │ if-eq v2, v3, :cond_0 │ │ - .line 185 │ + .line 226 │ new-instance v3, Ljava/lang/IllegalStateException; │ │ new-instance v4, Ljava/lang/StringBuilder; │ │ invoke-direct {v4}, Ljava/lang/StringBuilder;->()V │ │ const-string v5, "Expected " │ @@ -644,507 +1031,612 @@ │ │ move-result-object v4 │ │ invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ move-result-object v4 │ │ + .line 227 │ + invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->locationString()Ljava/lang/String; │ + │ + move-result-object v5 │ + │ + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + │ + move-result-object v4 │ + │ invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v4 │ │ invoke-direct {v3, v4}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V │ │ throw v3 │ │ - .line 187 │ + .line 229 │ :cond_0 │ invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peekStack()Ljava/lang/Object; │ │ move-result-object v3 │ │ check-cast v3, Lcom/google/gson/JsonPrimitive; │ │ invoke-virtual {v3}, Lcom/google/gson/JsonPrimitive;->getAsLong()J │ │ move-result-wide v0 │ │ - .line 188 │ + .line 230 │ .local v0, "result":J │ invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->popStack()Ljava/lang/Object; │ │ - .line 189 │ + .line 231 │ + iget v3, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + if-lez v3, :cond_1 │ + │ + .line 232 │ + iget-object v3, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I │ + │ + iget v4, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + add-int/lit8 v4, v4, -0x1 │ + │ + aget v5, v3, v4 │ + │ + add-int/lit8 v5, v5, 0x1 │ + │ + aput v5, v3, v4 │ + │ + .line 234 │ + :cond_1 │ return-wide v0 │ .end method │ │ .method public nextName()Ljava/lang/String; │ - .locals 4 │ + .locals 5 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 144 │ - sget-object v2, Lcom/google/gson/stream/JsonToken;->NAME:Lcom/google/gson/stream/JsonToken; │ + .line 167 │ + sget-object v3, Lcom/google/gson/stream/JsonToken;->NAME:Lcom/google/gson/stream/JsonToken; │ │ - invoke-direct {p0, v2}, Lcom/google/gson/internal/bind/JsonTreeReader;->expect(Lcom/google/gson/stream/JsonToken;)V │ + invoke-direct {p0, v3}, Lcom/google/gson/internal/bind/JsonTreeReader;->expect(Lcom/google/gson/stream/JsonToken;)V │ │ - .line 145 │ + .line 168 │ invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peekStack()Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Ljava/util/Iterator; │ │ - .line 146 │ + .line 169 │ .local v1, "i":Ljava/util/Iterator;, "Ljava/util/Iterator<*>;" │ invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/util/Map$Entry; │ │ - .line 147 │ + .line 170 │ .local v0, "entry":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry<**>;" │ - iget-object v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:Ljava/util/List; │ + invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; │ │ - invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; │ + move-result-object v2 │ │ - move-result-object v3 │ + check-cast v2, Ljava/lang/String; │ │ - invoke-interface {v2, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + .line 171 │ + .local v2, "result":Ljava/lang/String; │ + iget-object v3, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathNames:[Ljava/lang/String; │ │ - .line 148 │ - invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; │ + iget v4, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ │ - move-result-object v2 │ + add-int/lit8 v4, v4, -0x1 │ │ - check-cast v2, Ljava/lang/String; │ + aput-object v2, v3, v4 │ + │ + .line 172 │ + invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; │ + │ + move-result-object v3 │ │ + invoke-direct {p0, v3}, Lcom/google/gson/internal/bind/JsonTreeReader;->push(Ljava/lang/Object;)V │ + │ + .line 173 │ return-object v2 │ .end method │ │ .method public nextNull()V │ - .locals 1 │ + .locals 3 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 165 │ + .line 199 │ sget-object v0, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ invoke-direct {p0, v0}, Lcom/google/gson/internal/bind/JsonTreeReader;->expect(Lcom/google/gson/stream/JsonToken;)V │ │ - .line 166 │ + .line 200 │ invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->popStack()Ljava/lang/Object; │ │ - .line 167 │ + .line 201 │ + iget v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + if-lez v0, :cond_0 │ + │ + .line 202 │ + iget-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I │ + │ + iget v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + add-int/lit8 v1, v1, -0x1 │ + │ + aget v2, v0, v1 │ + │ + add-int/lit8 v2, v2, 0x1 │ + │ + aput v2, v0, v1 │ + │ + .line 204 │ + :cond_0 │ return-void │ .end method │ │ .method public nextString()Ljava/lang/String; │ - .locals 4 │ + .locals 5 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 152 │ + .line 177 │ invoke-virtual {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ - move-result-object v0 │ + move-result-object v1 │ │ - .line 153 │ - .local v0, "token":Lcom/google/gson/stream/JsonToken; │ - sget-object v1, Lcom/google/gson/stream/JsonToken;->STRING:Lcom/google/gson/stream/JsonToken; │ + .line 178 │ + .local v1, "token":Lcom/google/gson/stream/JsonToken; │ + sget-object v2, Lcom/google/gson/stream/JsonToken;->STRING:Lcom/google/gson/stream/JsonToken; │ │ - if-eq v0, v1, :cond_0 │ + if-eq v1, v2, :cond_0 │ │ - sget-object v1, Lcom/google/gson/stream/JsonToken;->NUMBER:Lcom/google/gson/stream/JsonToken; │ + sget-object v2, Lcom/google/gson/stream/JsonToken;->NUMBER:Lcom/google/gson/stream/JsonToken; │ │ - if-eq v0, v1, :cond_0 │ + if-eq v1, v2, :cond_0 │ │ - .line 154 │ - new-instance v1, Ljava/lang/IllegalStateException; │ + .line 179 │ + new-instance v2, Ljava/lang/IllegalStateException; │ │ - new-instance v2, Ljava/lang/StringBuilder; │ + new-instance v3, Ljava/lang/StringBuilder; │ │ - invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ + │ + const-string v4, "Expected " │ │ - const-string v3, "Expected " │ + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + move-result-object v3 │ │ - move-result-object v2 │ + sget-object v4, Lcom/google/gson/stream/JsonToken;->STRING:Lcom/google/gson/stream/JsonToken; │ │ - sget-object v3, Lcom/google/gson/stream/JsonToken;->STRING:Lcom/google/gson/stream/JsonToken; │ + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ + move-result-object v3 │ │ - move-result-object v2 │ + const-string v4, " but was " │ │ - const-string v3, " but was " │ + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + move-result-object v3 │ │ - move-result-object v2 │ + invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ + │ + move-result-object v3 │ │ - invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ + .line 180 │ + invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->locationString()Ljava/lang/String; │ │ - move-result-object v2 │ + move-result-object v4 │ │ - invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v2 │ + move-result-object v3 │ │ - invoke-direct {v1, v2}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V │ + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - throw v1 │ + move-result-object v3 │ │ - .line 156 │ + invoke-direct {v2, v3}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V │ + │ + throw v2 │ + │ + .line 182 │ :cond_0 │ invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->popStack()Ljava/lang/Object; │ │ - move-result-object v1 │ + move-result-object v2 │ │ - check-cast v1, Lcom/google/gson/JsonPrimitive; │ + check-cast v2, Lcom/google/gson/JsonPrimitive; │ │ - invoke-virtual {v1}, Lcom/google/gson/JsonPrimitive;->getAsString()Ljava/lang/String; │ + invoke-virtual {v2}, Lcom/google/gson/JsonPrimitive;->getAsString()Ljava/lang/String; │ │ - move-result-object v1 │ + move-result-object v0 │ + │ + .line 183 │ + .local v0, "result":Ljava/lang/String; │ + iget v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + if-lez v2, :cond_1 │ + │ + .line 184 │ + iget-object v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I │ + │ + iget v3, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + add-int/lit8 v3, v3, -0x1 │ │ - return-object v1 │ + aget v4, v2, v3 │ + │ + add-int/lit8 v4, v4, 0x1 │ + │ + aput v4, v2, v3 │ + │ + .line 186 │ + :cond_1 │ + return-object v0 │ .end method │ │ .method public peek()Lcom/google/gson/stream/JsonToken; │ .locals 6 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 87 │ - iget-object v4, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:Ljava/util/List; │ - │ - invoke-interface {v4}, Ljava/util/List;->isEmpty()Z │ - │ - move-result v4 │ + .line 107 │ + iget v4, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ │ - if-eqz v4, :cond_0 │ + if-nez v4, :cond_0 │ │ - .line 88 │ + .line 108 │ sget-object v4, Lcom/google/gson/stream/JsonToken;->END_DOCUMENT:Lcom/google/gson/stream/JsonToken; │ │ - .line 121 │ + .line 141 │ :goto_0 │ return-object v4 │ │ - .line 91 │ + .line 111 │ :cond_0 │ invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peekStack()Ljava/lang/Object; │ │ move-result-object v2 │ │ - .line 92 │ + .line 112 │ .local v2, "o":Ljava/lang/Object; │ instance-of v4, v2, Ljava/util/Iterator; │ │ if-eqz v4, :cond_4 │ │ - .line 93 │ - iget-object v4, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:Ljava/util/List; │ - │ - iget-object v5, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:Ljava/util/List; │ - │ - invoke-interface {v5}, Ljava/util/List;->size()I │ + .line 113 │ + iget-object v4, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:[Ljava/lang/Object; │ │ - move-result v5 │ + iget v5, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ │ add-int/lit8 v5, v5, -0x2 │ │ - invoke-interface {v4, v5}, Ljava/util/List;->get(I)Ljava/lang/Object; │ - │ - move-result-object v4 │ + aget-object v4, v4, v5 │ │ instance-of v0, v4, Lcom/google/gson/JsonObject; │ │ .local v0, "isObject":Z │ move-object v1, v2 │ │ - .line 94 │ + .line 114 │ check-cast v1, Ljava/util/Iterator; │ │ - .line 95 │ + .line 115 │ .local v1, "iterator":Ljava/util/Iterator;, "Ljava/util/Iterator<*>;" │ invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v4 │ │ if-eqz v4, :cond_2 │ │ - .line 96 │ + .line 116 │ if-eqz v0, :cond_1 │ │ - .line 97 │ + .line 117 │ sget-object v4, Lcom/google/gson/stream/JsonToken;->NAME:Lcom/google/gson/stream/JsonToken; │ │ goto :goto_0 │ │ - .line 99 │ + .line 119 │ :cond_1 │ - iget-object v4, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:Ljava/util/List; │ - │ invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - invoke-interface {v4, v5}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-direct {p0, v4}, Lcom/google/gson/internal/bind/JsonTreeReader;->push(Ljava/lang/Object;)V │ │ - .line 100 │ + .line 120 │ invoke-virtual {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v4 │ │ goto :goto_0 │ │ - .line 103 │ + .line 123 │ :cond_2 │ if-eqz v0, :cond_3 │ │ sget-object v4, Lcom/google/gson/stream/JsonToken;->END_OBJECT:Lcom/google/gson/stream/JsonToken; │ │ goto :goto_0 │ │ :cond_3 │ sget-object v4, Lcom/google/gson/stream/JsonToken;->END_ARRAY:Lcom/google/gson/stream/JsonToken; │ │ goto :goto_0 │ │ - .line 105 │ + .line 125 │ .end local v0 # "isObject":Z │ .end local v1 # "iterator":Ljava/util/Iterator;, "Ljava/util/Iterator<*>;" │ :cond_4 │ instance-of v4, v2, Lcom/google/gson/JsonObject; │ │ if-eqz v4, :cond_5 │ │ - .line 106 │ + .line 126 │ sget-object v4, Lcom/google/gson/stream/JsonToken;->BEGIN_OBJECT:Lcom/google/gson/stream/JsonToken; │ │ goto :goto_0 │ │ - .line 107 │ + .line 127 │ :cond_5 │ instance-of v4, v2, Lcom/google/gson/JsonArray; │ │ if-eqz v4, :cond_6 │ │ - .line 108 │ + .line 128 │ sget-object v4, Lcom/google/gson/stream/JsonToken;->BEGIN_ARRAY:Lcom/google/gson/stream/JsonToken; │ │ goto :goto_0 │ │ - .line 109 │ + .line 129 │ :cond_6 │ instance-of v4, v2, Lcom/google/gson/JsonPrimitive; │ │ if-eqz v4, :cond_a │ │ move-object v3, v2 │ │ - .line 110 │ + .line 130 │ check-cast v3, Lcom/google/gson/JsonPrimitive; │ │ - .line 111 │ + .line 131 │ .local v3, "primitive":Lcom/google/gson/JsonPrimitive; │ invoke-virtual {v3}, Lcom/google/gson/JsonPrimitive;->isString()Z │ │ move-result v4 │ │ if-eqz v4, :cond_7 │ │ - .line 112 │ + .line 132 │ sget-object v4, Lcom/google/gson/stream/JsonToken;->STRING:Lcom/google/gson/stream/JsonToken; │ │ goto :goto_0 │ │ - .line 113 │ + .line 133 │ :cond_7 │ invoke-virtual {v3}, Lcom/google/gson/JsonPrimitive;->isBoolean()Z │ │ move-result v4 │ │ if-eqz v4, :cond_8 │ │ - .line 114 │ + .line 134 │ sget-object v4, Lcom/google/gson/stream/JsonToken;->BOOLEAN:Lcom/google/gson/stream/JsonToken; │ │ goto :goto_0 │ │ - .line 115 │ + .line 135 │ :cond_8 │ invoke-virtual {v3}, Lcom/google/gson/JsonPrimitive;->isNumber()Z │ │ move-result v4 │ │ if-eqz v4, :cond_9 │ │ - .line 116 │ + .line 136 │ sget-object v4, Lcom/google/gson/stream/JsonToken;->NUMBER:Lcom/google/gson/stream/JsonToken; │ │ goto :goto_0 │ │ - .line 118 │ + .line 138 │ :cond_9 │ new-instance v4, Ljava/lang/AssertionError; │ │ invoke-direct {v4}, Ljava/lang/AssertionError;->()V │ │ throw v4 │ │ - .line 120 │ + .line 140 │ .end local v3 # "primitive":Lcom/google/gson/JsonPrimitive; │ :cond_a │ instance-of v4, v2, Lcom/google/gson/JsonNull; │ │ if-eqz v4, :cond_b │ │ - .line 121 │ + .line 141 │ sget-object v4, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ goto :goto_0 │ │ - .line 122 │ + .line 142 │ :cond_b │ sget-object v4, Lcom/google/gson/internal/bind/JsonTreeReader;->SENTINEL_CLOSED:Ljava/lang/Object; │ │ if-ne v2, v4, :cond_c │ │ - .line 123 │ + .line 143 │ new-instance v4, Ljava/lang/IllegalStateException; │ │ const-string v5, "JsonReader is closed" │ │ invoke-direct {v4, v5}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V │ │ throw v4 │ │ - .line 125 │ + .line 145 │ :cond_c │ new-instance v4, Ljava/lang/AssertionError; │ │ invoke-direct {v4}, Ljava/lang/AssertionError;->()V │ │ throw v4 │ .end method │ │ .method public promoteNameToValue()V │ - .locals 5 │ + .locals 4 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 220 │ + .line 272 │ sget-object v2, Lcom/google/gson/stream/JsonToken;->NAME:Lcom/google/gson/stream/JsonToken; │ │ invoke-direct {p0, v2}, Lcom/google/gson/internal/bind/JsonTreeReader;->expect(Lcom/google/gson/stream/JsonToken;)V │ │ - .line 221 │ + .line 273 │ invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peekStack()Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Ljava/util/Iterator; │ │ - .line 222 │ + .line 274 │ .local v1, "i":Ljava/util/Iterator;, "Ljava/util/Iterator<*>;" │ invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/util/Map$Entry; │ │ - .line 223 │ + .line 275 │ .local v0, "entry":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry<**>;" │ - iget-object v2, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:Ljava/util/List; │ - │ invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; │ │ - move-result-object v3 │ - │ - invoke-interface {v2, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + move-result-object v2 │ │ - .line 224 │ - iget-object v3, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stack:Ljava/util/List; │ + invoke-direct {p0, v2}, Lcom/google/gson/internal/bind/JsonTreeReader;->push(Ljava/lang/Object;)V │ │ - new-instance v4, Lcom/google/gson/JsonPrimitive; │ + .line 276 │ + new-instance v3, Lcom/google/gson/JsonPrimitive; │ │ invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Ljava/lang/String; │ │ - invoke-direct {v4, v2}, Lcom/google/gson/JsonPrimitive;->(Ljava/lang/String;)V │ + invoke-direct {v3, v2}, Lcom/google/gson/JsonPrimitive;->(Ljava/lang/String;)V │ │ - invoke-interface {v3, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-direct {p0, v3}, Lcom/google/gson/internal/bind/JsonTreeReader;->push(Ljava/lang/Object;)V │ │ - .line 225 │ + .line 277 │ return-void │ .end method │ │ .method public skipValue()V │ - .locals 2 │ + .locals 3 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 208 │ + .line 257 │ invoke-virtual {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v0 │ │ sget-object v1, Lcom/google/gson/stream/JsonToken;->NAME:Lcom/google/gson/stream/JsonToken; │ │ if-ne v0, v1, :cond_0 │ │ - .line 209 │ + .line 258 │ invoke-virtual {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->nextName()Ljava/lang/String; │ │ - .line 213 │ + .line 259 │ + iget-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathNames:[Ljava/lang/String; │ + │ + iget v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + add-int/lit8 v1, v1, -0x2 │ + │ + const-string v2, "null" │ + │ + aput-object v2, v0, v1 │ + │ + .line 264 │ :goto_0 │ + iget-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathIndices:[I │ + │ + iget v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + add-int/lit8 v1, v1, -0x1 │ + │ + aget v2, v0, v1 │ + │ + add-int/lit8 v2, v2, 0x1 │ + │ + aput v2, v0, v1 │ + │ + .line 265 │ return-void │ │ - .line 211 │ + .line 261 │ :cond_0 │ invoke-direct {p0}, Lcom/google/gson/internal/bind/JsonTreeReader;->popStack()Ljava/lang/Object; │ │ + .line 262 │ + iget-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->pathNames:[Ljava/lang/String; │ + │ + iget v1, p0, Lcom/google/gson/internal/bind/JsonTreeReader;->stackSize:I │ + │ + add-int/lit8 v1, v1, -0x1 │ + │ + const-string v2, "null" │ + │ + aput-object v2, v0, v1 │ + │ goto :goto_0 │ .end method │ │ .method public toString()Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 216 │ + .line 268 │ invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ move-result-object v0 │ │ invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String; │ │ move-result-object v0 ├── smali/com/google/gson/internal/bind/MapTypeAdapterFactory$Adapter.smali │ @@ -221,15 +221,14 @@ │ throw v1 │ .end method │ │ │ # virtual methods │ .method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ @@ -454,28 +453,25 @@ │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->endObject()V │ │ goto/16 :goto_0 │ .end method │ │ .method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ .line 145 │ .local p0, "this":Lcom/google/gson/internal/bind/MapTypeAdapterFactory$Adapter;, "Lcom/google/gson/internal/bind/MapTypeAdapterFactory$Adapter;" │ check-cast p2, Ljava/util/Map; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/MapTypeAdapterFactory$Adapter;->write(Lcom/google/gson/stream/JsonWriter;Ljava/util/Map;)V │ │ return-void │ .end method │ │ .method public write(Lcom/google/gson/stream/JsonWriter;Ljava/util/Map;)V │ .locals 9 │ @@ -506,44 +502,40 @@ │ │ .line 243 │ :goto_0 │ return-void │ │ .line 204 │ :cond_0 │ - iget-object v7, p0, Lcom/google/gson/internal/bind/MapTypeAdapterFactory$Adapter;->this$0:Lcom/google/gson/internal/bind/MapTypeAdapterFactory; │ + iget-object v6, p0, Lcom/google/gson/internal/bind/MapTypeAdapterFactory$Adapter;->this$0:Lcom/google/gson/internal/bind/MapTypeAdapterFactory; │ │ - # getter for: Lcom/google/gson/internal/bind/MapTypeAdapterFactory;->complexMapKeySerialization:Z │ - invoke-static {v7}, Lcom/google/gson/internal/bind/MapTypeAdapterFactory;->access$000(Lcom/google/gson/internal/bind/MapTypeAdapterFactory;)Z │ + iget-boolean v6, v6, Lcom/google/gson/internal/bind/MapTypeAdapterFactory;->complexMapKeySerialization:Z │ │ - move-result v7 │ - │ - if-nez v7, :cond_2 │ + if-nez v6, :cond_2 │ │ .line 205 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->beginObject()Lcom/google/gson/stream/JsonWriter; │ │ .line 206 │ invoke-interface {p2}, Ljava/util/Map;->entrySet()Ljava/util/Set; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - invoke-interface {v7}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ + invoke-interface {v6}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ │ - move-result-object v3 │ + move-result-object v6 │ │ - .local v3, "i$":Ljava/util/Iterator; │ :goto_1 │ - invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v7 │ │ if-eqz v7, :cond_1 │ │ - invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/util/Map$Entry; │ │ .line 207 │ .local v0, "entry":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry;" │ @@ -572,153 +564,151 @@ │ .end local v0 # "entry":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry;" │ :cond_1 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->endObject()Lcom/google/gson/stream/JsonWriter; │ │ goto :goto_0 │ │ .line 214 │ - .end local v3 # "i$":Ljava/util/Iterator; │ :cond_2 │ const/4 v1, 0x0 │ │ .line 215 │ .local v1, "hasComplexKeys":Z │ - new-instance v5, Ljava/util/ArrayList; │ + new-instance v4, Ljava/util/ArrayList; │ │ invoke-interface {p2}, Ljava/util/Map;->size()I │ │ - move-result v7 │ + move-result v6 │ │ - invoke-direct {v5, v7}, Ljava/util/ArrayList;->(I)V │ + invoke-direct {v4, v6}, Ljava/util/ArrayList;->(I)V │ │ .line 217 │ - .local v5, "keys":Ljava/util/List;, "Ljava/util/List;" │ - new-instance v6, Ljava/util/ArrayList; │ + .local v4, "keys":Ljava/util/List;, "Ljava/util/List;" │ + new-instance v5, Ljava/util/ArrayList; │ │ invoke-interface {p2}, Ljava/util/Map;->size()I │ │ - move-result v7 │ + move-result v6 │ │ - invoke-direct {v6, v7}, Ljava/util/ArrayList;->(I)V │ + invoke-direct {v5, v6}, Ljava/util/ArrayList;->(I)V │ │ .line 218 │ - .local v6, "values":Ljava/util/List;, "Ljava/util/List;" │ + .local v5, "values":Ljava/util/List;, "Ljava/util/List;" │ invoke-interface {p2}, Ljava/util/Map;->entrySet()Ljava/util/Set; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - invoke-interface {v7}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ + invoke-interface {v6}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ │ - move-result-object v3 │ + move-result-object v7 │ │ - .restart local v3 # "i$":Ljava/util/Iterator; │ :goto_2 │ - invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v7}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v7 │ + move-result v6 │ │ - if-eqz v7, :cond_5 │ + if-eqz v6, :cond_5 │ │ - invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v7}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/util/Map$Entry; │ │ .line 219 │ .restart local v0 # "entry":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry;" │ - iget-object v7, p0, Lcom/google/gson/internal/bind/MapTypeAdapterFactory$Adapter;->keyTypeAdapter:Lcom/google/gson/TypeAdapter; │ + iget-object v6, p0, Lcom/google/gson/internal/bind/MapTypeAdapterFactory$Adapter;->keyTypeAdapter:Lcom/google/gson/TypeAdapter; │ │ invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; │ │ move-result-object v8 │ │ - invoke-virtual {v7, v8}, Lcom/google/gson/TypeAdapter;->toJsonTree(Ljava/lang/Object;)Lcom/google/gson/JsonElement; │ + invoke-virtual {v6, v8}, Lcom/google/gson/TypeAdapter;->toJsonTree(Ljava/lang/Object;)Lcom/google/gson/JsonElement; │ │ - move-result-object v4 │ + move-result-object v3 │ │ .line 220 │ - .local v4, "keyElement":Lcom/google/gson/JsonElement; │ - invoke-interface {v5, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + .local v3, "keyElement":Lcom/google/gson/JsonElement; │ + invoke-interface {v4, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 221 │ invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v5, v6}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 222 │ - invoke-virtual {v4}, Lcom/google/gson/JsonElement;->isJsonArray()Z │ + invoke-virtual {v3}, Lcom/google/gson/JsonElement;->isJsonArray()Z │ │ - move-result v7 │ + move-result v6 │ │ - if-nez v7, :cond_3 │ + if-nez v6, :cond_3 │ │ - invoke-virtual {v4}, Lcom/google/gson/JsonElement;->isJsonObject()Z │ + invoke-virtual {v3}, Lcom/google/gson/JsonElement;->isJsonObject()Z │ │ - move-result v7 │ + move-result v6 │ │ - if-eqz v7, :cond_4 │ + if-eqz v6, :cond_4 │ │ :cond_3 │ - const/4 v7, 0x1 │ + const/4 v6, 0x1 │ │ :goto_3 │ - or-int/2addr v1, v7 │ + or-int/2addr v1, v6 │ │ .line 223 │ goto :goto_2 │ │ .line 222 │ :cond_4 │ - const/4 v7, 0x0 │ + const/4 v6, 0x0 │ │ goto :goto_3 │ │ .line 225 │ .end local v0 # "entry":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry;" │ - .end local v4 # "keyElement":Lcom/google/gson/JsonElement; │ + .end local v3 # "keyElement":Lcom/google/gson/JsonElement; │ :cond_5 │ if-eqz v1, :cond_7 │ │ .line 226 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->beginArray()Lcom/google/gson/stream/JsonWriter; │ │ .line 227 │ const/4 v2, 0x0 │ │ .local v2, "i":I │ :goto_4 │ - invoke-interface {v5}, Ljava/util/List;->size()I │ + invoke-interface {v4}, Ljava/util/List;->size()I │ │ - move-result v7 │ + move-result v6 │ │ - if-ge v2, v7, :cond_6 │ + if-ge v2, v6, :cond_6 │ │ .line 228 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->beginArray()Lcom/google/gson/stream/JsonWriter; │ │ .line 229 │ - invoke-interface {v5, v2}, Ljava/util/List;->get(I)Ljava/lang/Object; │ + invoke-interface {v4, v2}, Ljava/util/List;->get(I)Ljava/lang/Object; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - check-cast v7, Lcom/google/gson/JsonElement; │ + check-cast v6, Lcom/google/gson/JsonElement; │ │ - invoke-static {v7, p1}, Lcom/google/gson/internal/Streams;->write(Lcom/google/gson/JsonElement;Lcom/google/gson/stream/JsonWriter;)V │ + invoke-static {v6, p1}, Lcom/google/gson/internal/Streams;->write(Lcom/google/gson/JsonElement;Lcom/google/gson/stream/JsonWriter;)V │ │ .line 230 │ - iget-object v7, p0, Lcom/google/gson/internal/bind/MapTypeAdapterFactory$Adapter;->valueTypeAdapter:Lcom/google/gson/TypeAdapter; │ + iget-object v6, p0, Lcom/google/gson/internal/bind/MapTypeAdapterFactory$Adapter;->valueTypeAdapter:Lcom/google/gson/TypeAdapter; │ │ - invoke-interface {v6, v2}, Ljava/util/List;->get(I)Ljava/lang/Object; │ + invoke-interface {v5, v2}, Ljava/util/List;->get(I)Ljava/lang/Object; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - invoke-virtual {v7, p1, v8}, Lcom/google/gson/TypeAdapter;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ + invoke-virtual {v6, p1, v7}, Lcom/google/gson/TypeAdapter;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ │ .line 231 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->endArray()Lcom/google/gson/stream/JsonWriter; │ │ .line 227 │ add-int/lit8 v2, v2, 0x1 │ │ @@ -736,49 +726,49 @@ │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->beginObject()Lcom/google/gson/stream/JsonWriter; │ │ .line 236 │ const/4 v2, 0x0 │ │ .restart local v2 # "i":I │ :goto_5 │ - invoke-interface {v5}, Ljava/util/List;->size()I │ + invoke-interface {v4}, Ljava/util/List;->size()I │ │ - move-result v7 │ + move-result v6 │ │ - if-ge v2, v7, :cond_8 │ + if-ge v2, v6, :cond_8 │ │ .line 237 │ - invoke-interface {v5, v2}, Ljava/util/List;->get(I)Ljava/lang/Object; │ + invoke-interface {v4, v2}, Ljava/util/List;->get(I)Ljava/lang/Object; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - check-cast v4, Lcom/google/gson/JsonElement; │ + check-cast v3, Lcom/google/gson/JsonElement; │ │ .line 238 │ - .restart local v4 # "keyElement":Lcom/google/gson/JsonElement; │ - invoke-direct {p0, v4}, Lcom/google/gson/internal/bind/MapTypeAdapterFactory$Adapter;->keyToString(Lcom/google/gson/JsonElement;)Ljava/lang/String; │ + .restart local v3 # "keyElement":Lcom/google/gson/JsonElement; │ + invoke-direct {p0, v3}, Lcom/google/gson/internal/bind/MapTypeAdapterFactory$Adapter;->keyToString(Lcom/google/gson/JsonElement;)Ljava/lang/String; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - invoke-virtual {p1, v7}, Lcom/google/gson/stream/JsonWriter;->name(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ + invoke-virtual {p1, v6}, Lcom/google/gson/stream/JsonWriter;->name(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ │ .line 239 │ - iget-object v7, p0, Lcom/google/gson/internal/bind/MapTypeAdapterFactory$Adapter;->valueTypeAdapter:Lcom/google/gson/TypeAdapter; │ + iget-object v6, p0, Lcom/google/gson/internal/bind/MapTypeAdapterFactory$Adapter;->valueTypeAdapter:Lcom/google/gson/TypeAdapter; │ │ - invoke-interface {v6, v2}, Ljava/util/List;->get(I)Ljava/lang/Object; │ + invoke-interface {v5, v2}, Ljava/util/List;->get(I)Ljava/lang/Object; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - invoke-virtual {v7, p1, v8}, Lcom/google/gson/TypeAdapter;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ + invoke-virtual {v6, p1, v7}, Lcom/google/gson/TypeAdapter;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ │ .line 236 │ add-int/lit8 v2, v2, 0x1 │ │ goto :goto_5 │ │ .line 241 │ - .end local v4 # "keyElement":Lcom/google/gson/JsonElement; │ + .end local v3 # "keyElement":Lcom/google/gson/JsonElement; │ :cond_8 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->endObject()Lcom/google/gson/stream/JsonWriter; │ │ goto/16 :goto_0 │ .end method ├── smali/com/google/gson/internal/bind/JsonTreeWriter.smali │ @@ -253,41 +253,41 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 195 │ + .line 203 │ iget-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeWriter;->stack:Ljava/util/List; │ │ invoke-interface {v0}, Ljava/util/List;->isEmpty()Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ - .line 196 │ + .line 204 │ new-instance v0, Ljava/io/IOException; │ │ const-string v1, "Incomplete document" │ │ invoke-direct {v0, v1}, Ljava/io/IOException;->(Ljava/lang/String;)V │ │ throw v0 │ │ - .line 198 │ + .line 206 │ :cond_0 │ iget-object v0, p0, Lcom/google/gson/internal/bind/JsonTreeWriter;->stack:Ljava/util/List; │ │ sget-object v1, Lcom/google/gson/internal/bind/JsonTreeWriter;->SENTINEL_CLOSED:Lcom/google/gson/JsonPrimitive; │ │ invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ - .line 199 │ + .line 207 │ return-void │ .end method │ │ .method public endArray()Lcom/google/gson/stream/JsonWriter; │ .locals 3 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ @@ -426,15 +426,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 192 │ + .line 200 │ return-void │ .end method │ │ .method public get()Lcom/google/gson/JsonElement; │ .locals 3 │ │ .prologue │ @@ -563,15 +563,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 163 │ + .line 171 │ invoke-virtual {p0}, Lcom/google/gson/internal/bind/JsonTreeWriter;->isLenient()Z │ │ move-result v0 │ │ if-nez v0, :cond_1 │ │ invoke-static {p1, p2}, Ljava/lang/Double;->isNaN(D)Z │ @@ -582,15 +582,15 @@ │ │ invoke-static {p1, p2}, Ljava/lang/Double;->isInfinite(D)Z │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ - .line 164 │ + .line 172 │ :cond_0 │ new-instance v0, Ljava/lang/IllegalArgumentException; │ │ new-instance v1, Ljava/lang/StringBuilder; │ │ invoke-direct {v1}, Ljava/lang/StringBuilder;->()V │ │ @@ -608,107 +608,142 @@ │ │ move-result-object v1 │ │ invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ throw v0 │ │ - .line 166 │ + .line 174 │ :cond_1 │ new-instance v0, Lcom/google/gson/JsonPrimitive; │ │ invoke-static {p1, p2}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double; │ │ move-result-object v1 │ │ invoke-direct {v0, v1}, Lcom/google/gson/JsonPrimitive;->(Ljava/lang/Number;)V │ │ invoke-direct {p0, v0}, Lcom/google/gson/internal/bind/JsonTreeWriter;->put(Lcom/google/gson/JsonElement;)V │ │ - .line 167 │ + .line 175 │ return-object p0 │ .end method │ │ .method public value(J)Lcom/google/gson/stream/JsonWriter; │ .locals 3 │ .param p1, "value" # J │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 171 │ + .line 179 │ new-instance v0, Lcom/google/gson/JsonPrimitive; │ │ invoke-static {p1, p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ │ move-result-object v1 │ │ invoke-direct {v0, v1}, Lcom/google/gson/JsonPrimitive;->(Ljava/lang/Number;)V │ │ invoke-direct {p0, v0}, Lcom/google/gson/internal/bind/JsonTreeWriter;->put(Lcom/google/gson/JsonElement;)V │ │ - .line 172 │ + .line 180 │ return-object p0 │ .end method │ │ +.method public value(Ljava/lang/Boolean;)Lcom/google/gson/stream/JsonWriter; │ + .locals 1 │ + .param p1, "value" # Ljava/lang/Boolean; │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/io/IOException; │ + } │ + .end annotation │ + │ + .prologue │ + .line 163 │ + if-nez p1, :cond_0 │ + │ + .line 164 │ + invoke-virtual {p0}, Lcom/google/gson/internal/bind/JsonTreeWriter;->nullValue()Lcom/google/gson/stream/JsonWriter; │ + │ + move-result-object p0 │ + │ + .line 167 │ + .end local p0 # "this":Lcom/google/gson/internal/bind/JsonTreeWriter; │ + :goto_0 │ + return-object p0 │ + │ + .line 166 │ + .restart local p0 # "this":Lcom/google/gson/internal/bind/JsonTreeWriter; │ + :cond_0 │ + new-instance v0, Lcom/google/gson/JsonPrimitive; │ + │ + invoke-direct {v0, p1}, Lcom/google/gson/JsonPrimitive;->(Ljava/lang/Boolean;)V │ + │ + invoke-direct {p0, v0}, Lcom/google/gson/internal/bind/JsonTreeWriter;->put(Lcom/google/gson/JsonElement;)V │ + │ + goto :goto_0 │ +.end method │ + │ .method public value(Ljava/lang/Number;)Lcom/google/gson/stream/JsonWriter; │ .locals 5 │ .param p1, "value" # Ljava/lang/Number; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 176 │ + .line 184 │ if-nez p1, :cond_0 │ │ - .line 177 │ + .line 185 │ invoke-virtual {p0}, Lcom/google/gson/internal/bind/JsonTreeWriter;->nullValue()Lcom/google/gson/stream/JsonWriter; │ │ move-result-object p0 │ │ - .line 188 │ + .line 196 │ .end local p0 # "this":Lcom/google/gson/internal/bind/JsonTreeWriter; │ :goto_0 │ return-object p0 │ │ - .line 180 │ + .line 188 │ .restart local p0 # "this":Lcom/google/gson/internal/bind/JsonTreeWriter; │ :cond_0 │ invoke-virtual {p0}, Lcom/google/gson/internal/bind/JsonTreeWriter;->isLenient()Z │ │ move-result v2 │ │ if-nez v2, :cond_2 │ │ - .line 181 │ + .line 189 │ invoke-virtual {p1}, Ljava/lang/Number;->doubleValue()D │ │ move-result-wide v0 │ │ - .line 182 │ + .line 190 │ .local v0, "d":D │ invoke-static {v0, v1}, Ljava/lang/Double;->isNaN(D)Z │ │ move-result v2 │ │ if-nez v2, :cond_1 │ │ invoke-static {v0, v1}, Ljava/lang/Double;->isInfinite(D)Z │ │ move-result v2 │ │ if-eqz v2, :cond_2 │ │ - .line 183 │ + .line 191 │ :cond_1 │ new-instance v2, Ljava/lang/IllegalArgumentException; │ │ new-instance v3, Ljava/lang/StringBuilder; │ │ invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ @@ -726,15 +761,15 @@ │ │ move-result-object v3 │ │ invoke-direct {v2, v3}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ throw v2 │ │ - .line 187 │ + .line 195 │ .end local v0 # "d":D │ :cond_2 │ new-instance v2, Lcom/google/gson/JsonPrimitive; │ │ invoke-direct {v2, p1}, Lcom/google/gson/JsonPrimitive;->(Ljava/lang/Number;)V │ │ invoke-direct {p0, v2}, Lcom/google/gson/internal/bind/JsonTreeWriter;->put(Lcom/google/gson/JsonElement;)V ├── smali/com/google/gson/internal/bind/MapTypeAdapterFactory.smali │ @@ -11,15 +11,15 @@ │ value = { │ Lcom/google/gson/internal/bind/MapTypeAdapterFactory$Adapter; │ } │ .end annotation │ │ │ # instance fields │ -.field private final complexMapKeySerialization:Z │ +.field final complexMapKeySerialization:Z │ │ .field private final constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor; │ │ │ # direct methods │ .method public constructor (Lcom/google/gson/internal/ConstructorConstructor;Z)V │ .locals 0 │ @@ -36,25 +36,14 @@ │ .line 112 │ iput-boolean p2, p0, Lcom/google/gson/internal/bind/MapTypeAdapterFactory;->complexMapKeySerialization:Z │ │ .line 113 │ return-void │ .end method │ │ -.method static synthetic access$000(Lcom/google/gson/internal/bind/MapTypeAdapterFactory;)Z │ - .locals 1 │ - .param p0, "x0" # Lcom/google/gson/internal/bind/MapTypeAdapterFactory; │ - │ - .prologue │ - .line 105 │ - iget-boolean v0, p0, Lcom/google/gson/internal/bind/MapTypeAdapterFactory;->complexMapKeySerialization:Z │ - │ - return v0 │ -.end method │ - │ .method private getKeyAdapter(Lcom/google/gson/Gson;Ljava/lang/reflect/Type;)Lcom/google/gson/TypeAdapter; │ .locals 1 │ .param p1, "context" # Lcom/google/gson/Gson; │ .param p2, "keyType" # Ljava/lang/reflect/Type; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ @@ -75,14 +64,15 @@ │ const-class v0, Ljava/lang/Boolean; │ │ if-ne p2, v0, :cond_1 │ │ :cond_0 │ sget-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->BOOLEAN_AS_STRING:Lcom/google/gson/TypeAdapter; │ │ + .line 142 │ :goto_0 │ return-object v0 │ │ :cond_1 │ invoke-static {p2}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken; │ │ move-result-object v0 ├── smali/com/google/gson/internal/bind/ObjectTypeAdapter$1.smali │ @@ -27,15 +27,15 @@ │ │ return-void │ .end method │ │ │ # virtual methods │ .method public create(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ - .locals 3 │ + .locals 2 │ .param p1, "gson" # Lcom/google/gson/Gson; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Lcom/google/gson/Gson;", │ @@ -43,33 +43,31 @@ │ ";)", │ "Lcom/google/gson/TypeAdapter", │ ";" │ } │ .end annotation │ │ .prologue │ - .local p2, "type":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken;" │ - const/4 v1, 0x0 │ - │ .line 41 │ + .local p2, "type":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken;" │ invoke-virtual {p2}, Lcom/google/gson/reflect/TypeToken;->getRawType()Ljava/lang/Class; │ │ move-result-object v0 │ │ - const-class v2, Ljava/lang/Object; │ + const-class v1, Ljava/lang/Object; │ │ - if-ne v0, v2, :cond_0 │ + if-ne v0, v1, :cond_0 │ │ .line 42 │ new-instance v0, Lcom/google/gson/internal/bind/ObjectTypeAdapter; │ │ - invoke-direct {v0, p1, v1}, Lcom/google/gson/internal/bind/ObjectTypeAdapter;->(Lcom/google/gson/Gson;Lcom/google/gson/internal/bind/ObjectTypeAdapter$1;)V │ + invoke-direct {v0, p1}, Lcom/google/gson/internal/bind/ObjectTypeAdapter;->(Lcom/google/gson/Gson;)V │ │ .line 44 │ :goto_0 │ return-object v0 │ │ :cond_0 │ - move-object v0, v1 │ + const/4 v0, 0x0 │ │ goto :goto_0 │ .end method ├── smali/com/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1.smali │ @@ -13,68 +13,52 @@ │ name = null │ .end annotation │ │ │ # instance fields │ .field final synthetic this$0:Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory; │ │ -.field final typeAdapter:Lcom/google/gson/TypeAdapter; │ - .annotation system Ldalvik/annotation/Signature; │ - value = { │ - "Lcom/google/gson/TypeAdapter", │ - "<*>;" │ - } │ - .end annotation │ -.end field │ - │ .field final synthetic val$context:Lcom/google/gson/Gson; │ │ .field final synthetic val$field:Ljava/lang/reflect/Field; │ │ .field final synthetic val$fieldType:Lcom/google/gson/reflect/TypeToken; │ │ .field final synthetic val$isPrimitive:Z │ │ +.field final synthetic val$jsonAdapterPresent:Z │ + │ +.field final synthetic val$typeAdapter:Lcom/google/gson/TypeAdapter; │ + │ │ # direct methods │ -.method constructor (Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;Ljava/lang/String;ZZLcom/google/gson/Gson;Ljava/lang/reflect/Field;Lcom/google/gson/reflect/TypeToken;Z)V │ - .locals 4 │ - .param p2, "x0" # Ljava/lang/String; │ - .param p3, "x1" # Z │ - .param p4, "x2" # Z │ +.method constructor (Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;Ljava/lang/String;ZZLjava/lang/reflect/Field;ZLcom/google/gson/TypeAdapter;Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;Z)V │ + .locals 0 │ + .param p1, "this$0" # Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory; │ + .param p2, "name" # Ljava/lang/String; │ + .param p3, "serialized" # Z │ + .param p4, "deserialized" # Z │ │ .prologue │ - .line 91 │ + .line 118 │ iput-object p1, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->this$0:Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory; │ │ - iput-object p5, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$context:Lcom/google/gson/Gson; │ + iput-object p5, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$field:Ljava/lang/reflect/Field; │ │ - iput-object p6, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$field:Ljava/lang/reflect/Field; │ + iput-boolean p6, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$jsonAdapterPresent:Z │ │ - iput-object p7, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$fieldType:Lcom/google/gson/reflect/TypeToken; │ + iput-object p7, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$typeAdapter:Lcom/google/gson/TypeAdapter; │ │ - iput-boolean p8, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$isPrimitive:Z │ - │ - invoke-direct {p0, p2, p3, p4}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField;->(Ljava/lang/String;ZZ)V │ + iput-object p8, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$context:Lcom/google/gson/Gson; │ │ - .line 92 │ - iget-object v0, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->this$0:Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory; │ + iput-object p9, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$fieldType:Lcom/google/gson/reflect/TypeToken; │ │ - iget-object v1, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$context:Lcom/google/gson/Gson; │ + iput-boolean p10, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$isPrimitive:Z │ │ - iget-object v2, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$field:Ljava/lang/reflect/Field; │ - │ - iget-object v3, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$fieldType:Lcom/google/gson/reflect/TypeToken; │ - │ - # invokes: Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->getFieldAdapter(Lcom/google/gson/Gson;Ljava/lang/reflect/Field;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ - invoke-static {v0, v1, v2, v3}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->access$100(Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;Lcom/google/gson/Gson;Ljava/lang/reflect/Field;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ - │ - move-result-object v0 │ - │ - iput-object v0, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->typeAdapter:Lcom/google/gson/TypeAdapter; │ + invoke-direct {p0, p2, p3, p4}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField;->(Ljava/lang/String;ZZ)V │ │ return-void │ .end method │ │ │ # virtual methods │ .method read(Lcom/google/gson/stream/JsonReader;Ljava/lang/Object;)V │ @@ -85,36 +69,36 @@ │ value = { │ Ljava/io/IOException;, │ Ljava/lang/IllegalAccessException; │ } │ .end annotation │ │ .prologue │ - .line 103 │ - iget-object v1, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->typeAdapter:Lcom/google/gson/TypeAdapter; │ + .line 129 │ + iget-object v1, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$typeAdapter:Lcom/google/gson/TypeAdapter; │ │ invoke-virtual {v1, p1}, Lcom/google/gson/TypeAdapter;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ │ move-result-object v0 │ │ - .line 104 │ + .line 130 │ .local v0, "fieldValue":Ljava/lang/Object; │ if-nez v0, :cond_0 │ │ iget-boolean v1, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$isPrimitive:Z │ │ if-nez v1, :cond_1 │ │ - .line 105 │ + .line 131 │ :cond_0 │ iget-object v1, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$field:Ljava/lang/reflect/Field; │ │ invoke-virtual {v1, p2, v0}, Ljava/lang/reflect/Field;->set(Ljava/lang/Object;Ljava/lang/Object;)V │ │ - .line 107 │ + .line 133 │ :cond_1 │ return-void │ .end method │ │ .method write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 5 │ .param p1, "writer" # Lcom/google/gson/stream/JsonWriter; │ @@ -123,43 +107,56 @@ │ value = { │ Ljava/io/IOException;, │ Ljava/lang/IllegalAccessException; │ } │ .end annotation │ │ .prologue │ - .line 96 │ + .line 122 │ iget-object v2, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$field:Ljava/lang/reflect/Field; │ │ invoke-virtual {v2, p2}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v0 │ │ - .line 97 │ + .line 123 │ .local v0, "fieldValue":Ljava/lang/Object; │ + iget-boolean v2, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$jsonAdapterPresent:Z │ + │ + if-eqz v2, :cond_0 │ + │ + iget-object v1, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$typeAdapter:Lcom/google/gson/TypeAdapter; │ + │ + .line 125 │ + .local v1, "t":Lcom/google/gson/TypeAdapter; │ + :goto_0 │ + invoke-virtual {v1, p1, v0}, Lcom/google/gson/TypeAdapter;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ + │ + .line 126 │ + return-void │ + │ + .line 123 │ + .end local v1 # "t":Lcom/google/gson/TypeAdapter; │ + :cond_0 │ new-instance v1, Lcom/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper; │ │ iget-object v2, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$context:Lcom/google/gson/Gson; │ │ - iget-object v3, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->typeAdapter:Lcom/google/gson/TypeAdapter; │ + iget-object v3, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$typeAdapter:Lcom/google/gson/TypeAdapter; │ │ iget-object v4, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$fieldType:Lcom/google/gson/reflect/TypeToken; │ │ + .line 124 │ invoke-virtual {v4}, Lcom/google/gson/reflect/TypeToken;->getType()Ljava/lang/reflect/Type; │ │ move-result-object v4 │ │ invoke-direct {v1, v2, v3, v4}, Lcom/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper;->(Lcom/google/gson/Gson;Lcom/google/gson/TypeAdapter;Ljava/lang/reflect/Type;)V │ │ - .line 99 │ - .local v1, "t":Lcom/google/gson/TypeAdapter; │ - invoke-virtual {v1, p1, v0}, Lcom/google/gson/TypeAdapter;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ - │ - .line 100 │ - return-void │ + goto :goto_0 │ .end method │ │ .method public writeField(Ljava/lang/Object;)Z │ .locals 3 │ .param p1, "value" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ @@ -167,33 +164,33 @@ │ Ljava/lang/IllegalAccessException; │ } │ .end annotation │ │ .prologue │ const/4 v1, 0x0 │ │ - .line 109 │ + .line 135 │ iget-boolean v2, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->serialized:Z │ │ if-nez v2, :cond_1 │ │ - .line 111 │ + .line 137 │ :cond_0 │ :goto_0 │ return v1 │ │ - .line 110 │ + .line 136 │ :cond_1 │ iget-object v2, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$field:Ljava/lang/reflect/Field; │ │ invoke-virtual {v2, p1}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v0 │ │ - .line 111 │ + .line 137 │ .local v0, "fieldValue":Ljava/lang/Object; │ if-eq v0, p1, :cond_0 │ │ const/4 v1, 0x1 │ │ goto :goto_0 │ .end method ├── smali/com/google/gson/internal/bind/ObjectTypeAdapter.smali │ @@ -1,19 +1,13 @@ │ .class public final Lcom/google/gson/internal/bind/ObjectTypeAdapter; │ .super Lcom/google/gson/TypeAdapter; │ .source "ObjectTypeAdapter.java" │ │ │ # annotations │ -.annotation system Ldalvik/annotation/MemberClasses; │ - value = { │ - Lcom/google/gson/internal/bind/ObjectTypeAdapter$2; │ - } │ -.end annotation │ - │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Lcom/google/gson/TypeAdapter", │ "<", │ "Ljava/lang/Object;", │ ">;" │ } │ @@ -39,41 +33,29 @@ │ invoke-direct {v0}, Lcom/google/gson/internal/bind/ObjectTypeAdapter$1;->()V │ │ sput-object v0, Lcom/google/gson/internal/bind/ObjectTypeAdapter;->FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ return-void │ .end method │ │ -.method private constructor (Lcom/google/gson/Gson;)V │ +.method constructor (Lcom/google/gson/Gson;)V │ .locals 0 │ .param p1, "gson" # Lcom/google/gson/Gson; │ │ .prologue │ .line 50 │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ .line 51 │ iput-object p1, p0, Lcom/google/gson/internal/bind/ObjectTypeAdapter;->gson:Lcom/google/gson/Gson; │ │ .line 52 │ return-void │ .end method │ │ -.method synthetic constructor (Lcom/google/gson/Gson;Lcom/google/gson/internal/bind/ObjectTypeAdapter$1;)V │ - .locals 0 │ - .param p1, "x0" # Lcom/google/gson/Gson; │ - .param p2, "x1" # Lcom/google/gson/internal/bind/ObjectTypeAdapter$1; │ - │ - .prologue │ - .line 37 │ - invoke-direct {p0, p1}, Lcom/google/gson/internal/bind/ObjectTypeAdapter;->(Lcom/google/gson/Gson;)V │ - │ - return-void │ -.end method │ - │ │ # virtual methods │ .method public read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 6 │ .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { ├── smali/com/google/gson/internal/bind/ReflectiveTypeAdapterFactory$Adapter.smali │ @@ -44,15 +44,15 @@ │ ";" │ } │ .end annotation │ .end field │ │ │ # direct methods │ -.method private constructor (Lcom/google/gson/internal/ObjectConstructor;Ljava/util/Map;)V │ +.method constructor (Lcom/google/gson/internal/ObjectConstructor;Ljava/util/Map;)V │ .locals 0 │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Lcom/google/gson/internal/ObjectConstructor", │ ";", │ "Ljava/util/Map", │ @@ -60,41 +60,27 @@ │ "Ljava/lang/String;", │ "Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField;", │ ">;)V" │ } │ .end annotation │ │ .prologue │ - .line 175 │ + .line 199 │ .local p0, "this":Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$Adapter;, "Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$Adapter;" │ .local p1, "constructor":Lcom/google/gson/internal/ObjectConstructor;, "Lcom/google/gson/internal/ObjectConstructor;" │ .local p2, "boundFields":Ljava/util/Map;, "Ljava/util/Map;" │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ - .line 176 │ + .line 200 │ iput-object p1, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$Adapter;->constructor:Lcom/google/gson/internal/ObjectConstructor; │ │ - .line 177 │ + .line 201 │ iput-object p2, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$Adapter;->boundFields:Ljava/util/Map; │ │ - .line 178 │ - return-void │ -.end method │ - │ -.method synthetic constructor (Lcom/google/gson/internal/ObjectConstructor;Ljava/util/Map;Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;)V │ - .locals 0 │ - .param p1, "x0" # Lcom/google/gson/internal/ObjectConstructor; │ - .param p2, "x1" # Ljava/util/Map; │ - .param p3, "x2" # Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1; │ - │ - .prologue │ - .line 171 │ - .local p0, "this":Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$Adapter;, "Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$Adapter;" │ - invoke-direct {p0, p1, p2}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$Adapter;->(Lcom/google/gson/internal/ObjectConstructor;Ljava/util/Map;)V │ - │ + .line 202 │ return-void │ .end method │ │ │ # virtual methods │ .method public read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 6 │ @@ -110,129 +96,129 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 181 │ + .line 205 │ .local p0, "this":Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$Adapter;, "Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$Adapter;" │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v4 │ │ sget-object v5, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ if-ne v4, v5, :cond_0 │ │ - .line 182 │ + .line 206 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ │ - .line 183 │ + .line 207 │ const/4 v2, 0x0 │ │ - .line 205 │ + .line 229 │ :goto_0 │ return-object v2 │ │ - .line 186 │ + .line 210 │ :cond_0 │ iget-object v4, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$Adapter;->constructor:Lcom/google/gson/internal/ObjectConstructor; │ │ invoke-interface {v4}, Lcom/google/gson/internal/ObjectConstructor;->construct()Ljava/lang/Object; │ │ move-result-object v2 │ │ - .line 189 │ + .line 213 │ .local v2, "instance":Ljava/lang/Object;, "TT;" │ :try_start_0 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->beginObject()V │ │ - .line 190 │ + .line 214 │ :goto_1 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->hasNext()Z │ │ move-result v4 │ │ if-eqz v4, :cond_3 │ │ - .line 191 │ + .line 215 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextName()Ljava/lang/String; │ │ move-result-object v3 │ │ - .line 192 │ + .line 216 │ .local v3, "name":Ljava/lang/String; │ iget-object v4, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$Adapter;->boundFields:Ljava/util/Map; │ │ invoke-interface {v4, v3}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField; │ │ - .line 193 │ + .line 217 │ .local v1, "field":Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField; │ if-eqz v1, :cond_1 │ │ iget-boolean v4, v1, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField;->deserialized:Z │ │ if-nez v4, :cond_2 │ │ - .line 194 │ + .line 218 │ :cond_1 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->skipValue()V │ :try_end_0 │ .catch Ljava/lang/IllegalStateException; {:try_start_0 .. :try_end_0} :catch_0 │ .catch Ljava/lang/IllegalAccessException; {:try_start_0 .. :try_end_0} :catch_1 │ │ goto :goto_1 │ │ - .line 199 │ + .line 223 │ .end local v1 # "field":Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField; │ .end local v3 # "name":Ljava/lang/String; │ :catch_0 │ move-exception v0 │ │ - .line 200 │ + .line 224 │ .local v0, "e":Ljava/lang/IllegalStateException; │ new-instance v4, Lcom/google/gson/JsonSyntaxException; │ │ invoke-direct {v4, v0}, Lcom/google/gson/JsonSyntaxException;->(Ljava/lang/Throwable;)V │ │ throw v4 │ │ - .line 196 │ + .line 220 │ .end local v0 # "e":Ljava/lang/IllegalStateException; │ .restart local v1 # "field":Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField; │ .restart local v3 # "name":Ljava/lang/String; │ :cond_2 │ :try_start_1 │ invoke-virtual {v1, p1, v2}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField;->read(Lcom/google/gson/stream/JsonReader;Ljava/lang/Object;)V │ :try_end_1 │ .catch Ljava/lang/IllegalStateException; {:try_start_1 .. :try_end_1} :catch_0 │ .catch Ljava/lang/IllegalAccessException; {:try_start_1 .. :try_end_1} :catch_1 │ │ goto :goto_1 │ │ - .line 201 │ + .line 225 │ .end local v1 # "field":Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField; │ .end local v3 # "name":Ljava/lang/String; │ :catch_1 │ move-exception v0 │ │ - .line 202 │ + .line 226 │ .local v0, "e":Ljava/lang/IllegalAccessException; │ new-instance v4, Ljava/lang/AssertionError; │ │ invoke-direct {v4, v0}, Ljava/lang/AssertionError;->(Ljava/lang/Object;)V │ │ throw v4 │ │ - .line 204 │ + .line 228 │ .end local v0 # "e":Ljava/lang/IllegalAccessException; │ :cond_3 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->endObject()V │ │ goto :goto_0 │ .end method │ │ @@ -250,92 +236,89 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 209 │ + .line 233 │ .local p0, "this":Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$Adapter;, "Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$Adapter;" │ .local p2, "value":Ljava/lang/Object;, "TT;" │ if-nez p2, :cond_0 │ │ - .line 210 │ + .line 234 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->nullValue()Lcom/google/gson/stream/JsonWriter; │ │ - .line 226 │ + .line 250 │ :goto_0 │ return-void │ │ - .line 214 │ + .line 238 │ :cond_0 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->beginObject()Lcom/google/gson/stream/JsonWriter; │ │ - .line 216 │ + .line 240 │ :try_start_0 │ - iget-object v3, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$Adapter;->boundFields:Ljava/util/Map; │ + iget-object v2, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$Adapter;->boundFields:Ljava/util/Map; │ │ - invoke-interface {v3}, Ljava/util/Map;->values()Ljava/util/Collection; │ + invoke-interface {v2}, Ljava/util/Map;->values()Ljava/util/Collection; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - invoke-interface {v3}, Ljava/util/Collection;->iterator()Ljava/util/Iterator; │ + invoke-interface {v2}, Ljava/util/Collection;->iterator()Ljava/util/Iterator; │ │ move-result-object v2 │ │ - .local v2, "i$":Ljava/util/Iterator; │ :cond_1 │ :goto_1 │ invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v3 │ │ if-eqz v3, :cond_2 │ │ invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField; │ │ - .line 217 │ + .line 241 │ .local v0, "boundField":Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField; │ invoke-virtual {v0, p2}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField;->writeField(Ljava/lang/Object;)Z │ │ move-result v3 │ │ if-eqz v3, :cond_1 │ │ - .line 218 │ + .line 242 │ iget-object v3, v0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField;->name:Ljava/lang/String; │ │ invoke-virtual {p1, v3}, Lcom/google/gson/stream/JsonWriter;->name(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ │ - .line 219 │ + .line 243 │ invoke-virtual {v0, p1, p2}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ :try_end_0 │ .catch Ljava/lang/IllegalAccessException; {:try_start_0 .. :try_end_0} :catch_0 │ │ goto :goto_1 │ │ - .line 222 │ + .line 246 │ .end local v0 # "boundField":Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField; │ - .end local v2 # "i$":Ljava/util/Iterator; │ :catch_0 │ move-exception v1 │ │ - .line 223 │ + .line 247 │ .local v1, "e":Ljava/lang/IllegalAccessException; │ - new-instance v3, Ljava/lang/AssertionError; │ + new-instance v2, Ljava/lang/AssertionError; │ │ - invoke-direct {v3}, Ljava/lang/AssertionError;->()V │ + invoke-direct {v2, v1}, Ljava/lang/AssertionError;->(Ljava/lang/Object;)V │ │ - throw v3 │ + throw v2 │ │ - .line 225 │ + .line 249 │ .end local v1 # "e":Ljava/lang/IllegalAccessException; │ - .restart local v2 # "i$":Ljava/util/Iterator; │ :cond_2 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->endObject()Lcom/google/gson/stream/JsonWriter; │ │ goto :goto_0 │ .end method ├── smali/com/google/gson/internal/bind/ReflectiveTypeAdapterFactory.smali │ @@ -18,57 +18,47 @@ │ # instance fields │ .field private final constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor; │ │ .field private final excluder:Lcom/google/gson/internal/Excluder; │ │ .field private final fieldNamingPolicy:Lcom/google/gson/FieldNamingStrategy; │ │ +.field private final jsonAdapterFactory:Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory; │ + │ │ # direct methods │ -.method public constructor (Lcom/google/gson/internal/ConstructorConstructor;Lcom/google/gson/FieldNamingStrategy;Lcom/google/gson/internal/Excluder;)V │ +.method public constructor (Lcom/google/gson/internal/ConstructorConstructor;Lcom/google/gson/FieldNamingStrategy;Lcom/google/gson/internal/Excluder;Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory;)V │ .locals 0 │ .param p1, "constructorConstructor" # Lcom/google/gson/internal/ConstructorConstructor; │ .param p2, "fieldNamingPolicy" # Lcom/google/gson/FieldNamingStrategy; │ .param p3, "excluder" # Lcom/google/gson/internal/Excluder; │ + .param p4, "jsonAdapterFactory" # Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory; │ │ .prologue │ - .line 52 │ + .line 55 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 53 │ + .line 56 │ iput-object p1, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor; │ │ - .line 54 │ + .line 57 │ iput-object p2, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->fieldNamingPolicy:Lcom/google/gson/FieldNamingStrategy; │ │ - .line 55 │ + .line 58 │ iput-object p3, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->excluder:Lcom/google/gson/internal/Excluder; │ │ - .line 56 │ - return-void │ -.end method │ - │ -.method static synthetic access$100(Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;Lcom/google/gson/Gson;Ljava/lang/reflect/Field;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ - .locals 1 │ - .param p0, "x0" # Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory; │ - .param p1, "x1" # Lcom/google/gson/Gson; │ - .param p2, "x2" # Ljava/lang/reflect/Field; │ - .param p3, "x3" # Lcom/google/gson/reflect/TypeToken; │ - │ - .prologue │ - .line 46 │ - invoke-direct {p0, p1, p2, p3}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->getFieldAdapter(Lcom/google/gson/Gson;Ljava/lang/reflect/Field;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ - │ - move-result-object v0 │ + .line 59 │ + iput-object p4, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->jsonAdapterFactory:Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory; │ │ - return-object v0 │ + .line 60 │ + return-void │ .end method │ │ .method private createBoundField(Lcom/google/gson/Gson;Ljava/lang/reflect/Field;Ljava/lang/String;Lcom/google/gson/reflect/TypeToken;ZZ)Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField; │ - .locals 9 │ + .locals 14 │ .param p1, "context" # Lcom/google/gson/Gson; │ .param p2, "field" # Ljava/lang/reflect/Field; │ .param p3, "name" # Ljava/lang/String; │ .param p5, "serialize" # Z │ .param p6, "deserialize" # Z │ .annotation system Ldalvik/annotation/Signature; │ value = { │ @@ -79,55 +69,115 @@ │ "Lcom/google/gson/reflect/TypeToken", │ "<*>;ZZ)", │ "Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField;" │ } │ .end annotation │ │ .prologue │ - .line 89 │ + .line 106 │ .local p4, "fieldType":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken<*>;" │ - invoke-virtual {p4}, Lcom/google/gson/reflect/TypeToken;->getRawType()Ljava/lang/Class; │ + invoke-virtual/range {p4 .. p4}, Lcom/google/gson/reflect/TypeToken;->getRawType()Ljava/lang/Class; │ │ - move-result-object v0 │ + move-result-object v1 │ │ - invoke-static {v0}, Lcom/google/gson/internal/Primitives;->isPrimitive(Ljava/lang/reflect/Type;)Z │ + invoke-static {v1}, Lcom/google/gson/internal/Primitives;->isPrimitive(Ljava/lang/reflect/Type;)Z │ │ - move-result v8 │ + move-result v11 │ + │ + .line 108 │ + .local v11, "isPrimitive":Z │ + const-class v1, Lcom/google/gson/annotations/JsonAdapter; │ + │ + move-object/from16 v0, p2 │ + │ + invoke-virtual {v0, v1}, Ljava/lang/reflect/Field;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; │ │ - .line 91 │ - .local v8, "isPrimitive":Z │ - new-instance v0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1; │ + move-result-object v12 │ + │ + check-cast v12, Lcom/google/gson/annotations/JsonAdapter; │ + │ + .line 109 │ + .local v12, "annotation":Lcom/google/gson/annotations/JsonAdapter; │ + const/4 v13, 0x0 │ + │ + .line 110 │ + .local v13, "mapped":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<*>;" │ + if-eqz v12, :cond_0 │ + │ + .line 111 │ + iget-object v1, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->jsonAdapterFactory:Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory; │ + │ + iget-object v2, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor; │ + │ + move-object/from16 v0, p4 │ + │ + invoke-virtual {v1, v2, p1, v0, v12}, Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory;->getTypeAdapter(Lcom/google/gson/internal/ConstructorConstructor;Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;Lcom/google/gson/annotations/JsonAdapter;)Lcom/google/gson/TypeAdapter; │ + │ + move-result-object v13 │ │ - move-object v1, p0 │ + .line 114 │ + :cond_0 │ + if-eqz v13, :cond_2 │ + │ + const/4 v7, 0x1 │ + │ + .line 115 │ + .local v7, "jsonAdapterPresent":Z │ + :goto_0 │ + if-nez v13, :cond_1 │ + │ + move-object/from16 v0, p4 │ + │ + invoke-virtual {p1, v0}, Lcom/google/gson/Gson;->getAdapter(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ │ - move-object v2, p3 │ + move-result-object v13 │ + │ + .line 117 │ + :cond_1 │ + move-object v8, v13 │ + │ + .line 118 │ + .local v8, "typeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<*>;" │ + new-instance v1, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1; │ │ - move v3, p5 │ + move-object v2, p0 │ │ - move v4, p6 │ + move-object/from16 v3, p3 │ │ - move-object v5, p1 │ + move/from16 v4, p5 │ │ - move-object v6, p2 │ + move/from16 v5, p6 │ │ - move-object v7, p4 │ + move-object/from16 v6, p2 │ │ - invoke-direct/range {v0 .. v8}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->(Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;Ljava/lang/String;ZZLcom/google/gson/Gson;Ljava/lang/reflect/Field;Lcom/google/gson/reflect/TypeToken;Z)V │ + move-object v9, p1 │ │ - return-object v0 │ + move-object/from16 v10, p4 │ + │ + invoke-direct/range {v1 .. v11}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->(Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;Ljava/lang/String;ZZLjava/lang/reflect/Field;ZLcom/google/gson/TypeAdapter;Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;Z)V │ + │ + return-object v1 │ + │ + .line 114 │ + .end local v7 # "jsonAdapterPresent":Z │ + .end local v8 # "typeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<*>;" │ + :cond_2 │ + const/4 v7, 0x0 │ + │ + goto :goto_0 │ .end method │ │ .method static excludeField(Ljava/lang/reflect/Field;ZLcom/google/gson/internal/Excluder;)Z │ .locals 1 │ .param p0, "f" # Ljava/lang/reflect/Field; │ .param p1, "serialize" # Z │ .param p2, "excluder" # Lcom/google/gson/internal/Excluder; │ │ .prologue │ - .line 63 │ + .line 67 │ invoke-virtual {p0}, Ljava/lang/reflect/Field;->getType()Ljava/lang/Class; │ │ move-result-object v0 │ │ invoke-virtual {p2, v0, p1}, Lcom/google/gson/internal/Excluder;->excludeClass(Ljava/lang/Class;Z)Z │ │ move-result v0 │ @@ -148,15 +198,15 @@ │ :cond_0 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method private getBoundFields(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;Ljava/lang/Class;)Ljava/util/Map; │ - .locals 17 │ + .locals 20 │ .param p1, "context" # Lcom/google/gson/Gson; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Lcom/google/gson/Gson;", │ "Lcom/google/gson/reflect/TypeToken", │ "<*>;", │ @@ -167,332 +217,386 @@ │ "Ljava/lang/String;", │ "Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 126 │ + .line 143 │ .local p2, "type":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken<*>;" │ .local p3, "raw":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ - new-instance v16, Ljava/util/LinkedHashMap; │ + new-instance v17, Ljava/util/LinkedHashMap; │ │ - invoke-direct/range {v16 .. v16}, Ljava/util/LinkedHashMap;->()V │ + invoke-direct/range {v17 .. v17}, Ljava/util/LinkedHashMap;->()V │ │ - .line 127 │ - .local v16, "result":Ljava/util/Map;, "Ljava/util/Map;" │ + .line 144 │ + .local v17, "result":Ljava/util/Map;, "Ljava/util/Map;" │ invoke-virtual/range {p3 .. p3}, Ljava/lang/Class;->isInterface()Z │ │ - move-result v1 │ + move-result v2 │ │ - if-eqz v1, :cond_1 │ + if-eqz v2, :cond_1 │ │ - .line 153 │ + .line 177 │ :cond_0 │ - return-object v16 │ + return-object v17 │ │ - .line 131 │ + .line 148 │ :cond_1 │ invoke-virtual/range {p2 .. p2}, Lcom/google/gson/reflect/TypeToken;->getType()Ljava/lang/reflect/Type; │ │ move-result-object v10 │ │ - .line 132 │ + .line 149 │ .local v10, "declaredType":Ljava/lang/reflect/Type; │ :goto_0 │ - const-class v1, Ljava/lang/Object; │ + const-class v2, Ljava/lang/Object; │ │ move-object/from16 v0, p3 │ │ - if-eq v0, v1, :cond_0 │ + if-eq v0, v2, :cond_0 │ │ - .line 133 │ + .line 150 │ invoke-virtual/range {p3 .. p3}, Ljava/lang/Class;->getDeclaredFields()[Ljava/lang/reflect/Field; │ │ - move-result-object v12 │ + move-result-object v13 │ + │ + .line 151 │ + .local v13, "fields":[Ljava/lang/reflect/Field; │ + array-length v0, v13 │ │ - .line 134 │ - .local v12, "fields":[Ljava/lang/reflect/Field; │ - move-object v8, v12 │ + move/from16 v19, v0 │ │ - .local v8, "arr$":[Ljava/lang/reflect/Field; │ - array-length v14, v8 │ + const/4 v2, 0x0 │ │ - .local v14, "len$":I │ - const/4 v13, 0x0 │ + move/from16 v18, v2 │ │ - .local v13, "i$":I │ :goto_1 │ - if-ge v13, v14, :cond_4 │ + move/from16 v0, v18 │ │ - aget-object v3, v8, v13 │ + move/from16 v1, v19 │ │ - .line 135 │ - .local v3, "field":Ljava/lang/reflect/Field; │ - const/4 v1, 0x1 │ + if-ge v0, v1, :cond_7 │ + │ + aget-object v4, v13, v18 │ + │ + .line 152 │ + .local v4, "field":Ljava/lang/reflect/Field; │ + const/4 v2, 0x1 │ │ move-object/from16 v0, p0 │ │ - invoke-virtual {v0, v3, v1}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->excludeField(Ljava/lang/reflect/Field;Z)Z │ + invoke-virtual {v0, v4, v2}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->excludeField(Ljava/lang/reflect/Field;Z)Z │ │ - move-result v6 │ + move-result v7 │ │ - .line 136 │ - .local v6, "serialize":Z │ - const/4 v1, 0x0 │ + .line 153 │ + .local v7, "serialize":Z │ + const/4 v2, 0x0 │ │ move-object/from16 v0, p0 │ │ - invoke-virtual {v0, v3, v1}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->excludeField(Ljava/lang/reflect/Field;Z)Z │ - │ - move-result v7 │ + invoke-virtual {v0, v4, v2}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->excludeField(Ljava/lang/reflect/Field;Z)Z │ │ - .line 137 │ - .local v7, "deserialize":Z │ - if-nez v6, :cond_3 │ + move-result v8 │ │ + .line 154 │ + .local v8, "deserialize":Z │ if-nez v7, :cond_3 │ │ - .line 134 │ + if-nez v8, :cond_3 │ + │ + .line 151 │ :cond_2 │ - add-int/lit8 v13, v13, 0x1 │ + add-int/lit8 v2, v18, 0x1 │ + │ + move/from16 v18, v2 │ │ goto :goto_1 │ │ - .line 140 │ + .line 157 │ :cond_3 │ - const/4 v1, 0x1 │ + const/4 v2, 0x1 │ │ - invoke-virtual {v3, v1}, Ljava/lang/reflect/Field;->setAccessible(Z)V │ + invoke-virtual {v4, v2}, Ljava/lang/reflect/Field;->setAccessible(Z)V │ │ - .line 141 │ + .line 158 │ invoke-virtual/range {p2 .. p2}, Lcom/google/gson/reflect/TypeToken;->getType()Ljava/lang/reflect/Type; │ │ - move-result-object v1 │ + move-result-object v2 │ │ - invoke-virtual {v3}, Ljava/lang/reflect/Field;->getGenericType()Ljava/lang/reflect/Type; │ + invoke-virtual {v4}, Ljava/lang/reflect/Field;->getGenericType()Ljava/lang/reflect/Type; │ │ - move-result-object v2 │ + move-result-object v3 │ │ move-object/from16 v0, p3 │ │ - invoke-static {v1, v0, v2}, Lcom/google/gson/internal/$Gson$Types;->resolve(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type; │ + invoke-static {v2, v0, v3}, Lcom/google/gson/internal/$Gson$Types;->resolve(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type; │ │ - move-result-object v11 │ + move-result-object v12 │ │ - .line 142 │ - .local v11, "fieldType":Ljava/lang/reflect/Type; │ + .line 159 │ + .local v12, "fieldType":Ljava/lang/reflect/Type; │ move-object/from16 v0, p0 │ │ - invoke-direct {v0, v3}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->getFieldName(Ljava/lang/reflect/Field;)Ljava/lang/String; │ + invoke-direct {v0, v4}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->getFieldNames(Ljava/lang/reflect/Field;)Ljava/util/List; │ │ - move-result-object v4 │ + move-result-object v11 │ + │ + .line 160 │ + .local v11, "fieldNames":Ljava/util/List;, "Ljava/util/List;" │ + const/4 v15, 0x0 │ + │ + .line 161 │ + .local v15, "previous":Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField; │ + const/4 v14, 0x0 │ + │ + .local v14, "i":I │ + :goto_2 │ + invoke-interface {v11}, Ljava/util/List;->size()I │ + │ + move-result v2 │ │ - invoke-static {v11}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken; │ + if-ge v14, v2, :cond_6 │ + │ + .line 162 │ + invoke-interface {v11, v14}, Ljava/util/List;->get(I)Ljava/lang/Object; │ │ move-result-object v5 │ │ - move-object/from16 v1, p0 │ + check-cast v5, Ljava/lang/String; │ │ - move-object/from16 v2, p1 │ + .line 163 │ + .local v5, "name":Ljava/lang/String; │ + if-eqz v14, :cond_4 │ │ - invoke-direct/range {v1 .. v7}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->createBoundField(Lcom/google/gson/Gson;Ljava/lang/reflect/Field;Ljava/lang/String;Lcom/google/gson/reflect/TypeToken;ZZ)Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField; │ + const/4 v7, 0x0 │ + │ + .line 165 │ + :cond_4 │ + invoke-static {v12}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken; │ + │ + move-result-object v6 │ + │ + move-object/from16 v2, p0 │ + │ + move-object/from16 v3, p1 │ + │ + .line 164 │ + invoke-direct/range {v2 .. v8}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->createBoundField(Lcom/google/gson/Gson;Ljava/lang/reflect/Field;Ljava/lang/String;Lcom/google/gson/reflect/TypeToken;ZZ)Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField; │ │ move-result-object v9 │ │ - .line 144 │ + .line 166 │ .local v9, "boundField":Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField; │ - iget-object v1, v9, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField;->name:Ljava/lang/String; │ + move-object/from16 v0, v17 │ │ - move-object/from16 v0, v16 │ + invoke-interface {v0, v5, v9}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ - invoke-interface {v0, v1, v9}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + move-result-object v16 │ │ - move-result-object v15 │ + check-cast v16, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField; │ │ - check-cast v15, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField; │ + .line 167 │ + .local v16, "replaced":Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField; │ + if-nez v15, :cond_5 │ │ - .line 145 │ - .local v15, "previous":Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField; │ + move-object/from16 v15, v16 │ + │ + .line 161 │ + :cond_5 │ + add-int/lit8 v14, v14, 0x1 │ + │ + goto :goto_2 │ + │ + .line 169 │ + .end local v5 # "name":Ljava/lang/String; │ + .end local v9 # "boundField":Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField; │ + .end local v16 # "replaced":Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField; │ + :cond_6 │ if-eqz v15, :cond_2 │ │ - .line 146 │ - new-instance v1, Ljava/lang/IllegalArgumentException; │ + .line 170 │ + new-instance v2, Ljava/lang/IllegalArgumentException; │ │ - new-instance v2, Ljava/lang/StringBuilder; │ + new-instance v3, Ljava/lang/StringBuilder; │ │ - invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ - invoke-virtual {v2, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ + invoke-virtual {v3, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ - move-result-object v2 │ + move-result-object v3 │ │ - const-string v4, " declares multiple JSON fields named " │ + const-string v6, " declares multiple JSON fields named " │ │ - invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v2 │ + move-result-object v3 │ │ - iget-object v4, v15, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField;->name:Ljava/lang/String; │ + iget-object v6, v15, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField;->name:Ljava/lang/String; │ │ - invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v2 │ + move-result-object v3 │ │ - invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v2 │ + move-result-object v3 │ │ - invoke-direct {v1, v2}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ + invoke-direct {v2, v3}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ - throw v1 │ + throw v2 │ │ - .line 150 │ - .end local v3 # "field":Ljava/lang/reflect/Field; │ - .end local v6 # "serialize":Z │ - .end local v7 # "deserialize":Z │ - .end local v9 # "boundField":Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField; │ - .end local v11 # "fieldType":Ljava/lang/reflect/Type; │ + .line 174 │ + .end local v4 # "field":Ljava/lang/reflect/Field; │ + .end local v7 # "serialize":Z │ + .end local v8 # "deserialize":Z │ + .end local v11 # "fieldNames":Ljava/util/List;, "Ljava/util/List;" │ + .end local v12 # "fieldType":Ljava/lang/reflect/Type; │ + .end local v14 # "i":I │ .end local v15 # "previous":Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField; │ - :cond_4 │ + :cond_7 │ invoke-virtual/range {p2 .. p2}, Lcom/google/gson/reflect/TypeToken;->getType()Ljava/lang/reflect/Type; │ │ - move-result-object v1 │ + move-result-object v2 │ │ invoke-virtual/range {p3 .. p3}, Ljava/lang/Class;->getGenericSuperclass()Ljava/lang/reflect/Type; │ │ - move-result-object v2 │ + move-result-object v3 │ │ move-object/from16 v0, p3 │ │ - invoke-static {v1, v0, v2}, Lcom/google/gson/internal/$Gson$Types;->resolve(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type; │ + invoke-static {v2, v0, v3}, Lcom/google/gson/internal/$Gson$Types;->resolve(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type; │ │ - move-result-object v1 │ + move-result-object v2 │ │ - invoke-static {v1}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken; │ + invoke-static {v2}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken; │ │ move-result-object p2 │ │ - .line 151 │ + .line 175 │ invoke-virtual/range {p2 .. p2}, Lcom/google/gson/reflect/TypeToken;->getRawType()Ljava/lang/Class; │ │ move-result-object p3 │ │ - .line 152 │ + .line 176 │ goto/16 :goto_0 │ .end method │ │ -.method private getFieldAdapter(Lcom/google/gson/Gson;Ljava/lang/reflect/Field;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ - .locals 3 │ - .param p1, "gson" # Lcom/google/gson/Gson; │ - .param p2, "field" # Ljava/lang/reflect/Field; │ +.method private getFieldNames(Ljava/lang/reflect/Field;)Ljava/util/List; │ + .locals 8 │ + .param p1, "f" # Ljava/lang/reflect/Field; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ - "Lcom/google/gson/Gson;", │ "Ljava/lang/reflect/Field;", │ - "Lcom/google/gson/reflect/TypeToken", │ - "<*>;)", │ - "Lcom/google/gson/TypeAdapter", │ - "<*>;" │ + ")", │ + "Ljava/util/List", │ + "<", │ + "Ljava/lang/String;", │ + ">;" │ } │ .end annotation │ │ .prologue │ - .line 117 │ - .local p3, "fieldType":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken<*>;" │ - const-class v2, Lcom/google/gson/annotations/JsonAdapter; │ + .line 72 │ + const-class v6, Lcom/google/gson/annotations/SerializedName; │ │ - invoke-virtual {p2, v2}, Ljava/lang/reflect/Field;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; │ + invoke-virtual {p1, v6}, Ljava/lang/reflect/Field;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; │ │ - move-result-object v1 │ + move-result-object v2 │ │ - check-cast v1, Lcom/google/gson/annotations/JsonAdapter; │ + check-cast v2, Lcom/google/gson/annotations/SerializedName; │ │ - .line 118 │ - .local v1, "annotation":Lcom/google/gson/annotations/JsonAdapter; │ - if-eqz v1, :cond_0 │ + .line 73 │ + .local v2, "annotation":Lcom/google/gson/annotations/SerializedName; │ + if-nez v2, :cond_1 │ │ - .line 119 │ - iget-object v2, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor; │ + .line 74 │ + iget-object v6, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->fieldNamingPolicy:Lcom/google/gson/FieldNamingStrategy; │ │ - invoke-static {v2, p1, p3, v1}, Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory;->getTypeAdapter(Lcom/google/gson/internal/ConstructorConstructor;Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;Lcom/google/gson/annotations/JsonAdapter;)Lcom/google/gson/TypeAdapter; │ + invoke-interface {v6, p1}, Lcom/google/gson/FieldNamingStrategy;->translateName(Ljava/lang/reflect/Field;)Ljava/lang/String; │ │ - move-result-object v0 │ + move-result-object v4 │ │ - .line 120 │ - .local v0, "adapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<*>;" │ - if-eqz v0, :cond_0 │ + .line 75 │ + .local v4, "name":Ljava/lang/String; │ + invoke-static {v4}, Ljava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List; │ │ - .line 122 │ - .end local v0 # "adapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<*>;" │ - :goto_0 │ - return-object v0 │ + move-result-object v3 │ │ + .line 89 │ + .end local v4 # "name":Ljava/lang/String; │ :cond_0 │ - invoke-virtual {p1, p3}, Lcom/google/gson/Gson;->getAdapter(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ + :goto_0 │ + return-object v3 │ │ - move-result-object v0 │ + .line 78 │ + :cond_1 │ + invoke-interface {v2}, Lcom/google/gson/annotations/SerializedName;->value()Ljava/lang/String; │ │ - goto :goto_0 │ -.end method │ + move-result-object v5 │ │ -.method static getFieldName(Lcom/google/gson/FieldNamingStrategy;Ljava/lang/reflect/Field;)Ljava/lang/String; │ - .locals 2 │ - .param p0, "fieldNamingPolicy" # Lcom/google/gson/FieldNamingStrategy; │ - .param p1, "f" # Ljava/lang/reflect/Field; │ + .line 79 │ + .local v5, "serializedName":Ljava/lang/String; │ + invoke-interface {v2}, Lcom/google/gson/annotations/SerializedName;->alternate()[Ljava/lang/String; │ │ - .prologue │ - .line 71 │ - const-class v1, Lcom/google/gson/annotations/SerializedName; │ + move-result-object v1 │ │ - invoke-virtual {p1, v1}, Ljava/lang/reflect/Field;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; │ + .line 80 │ + .local v1, "alternates":[Ljava/lang/String; │ + array-length v6, v1 │ │ - move-result-object v0 │ + if-nez v6, :cond_2 │ │ - check-cast v0, Lcom/google/gson/annotations/SerializedName; │ + .line 81 │ + invoke-static {v5}, Ljava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List; │ │ - .line 72 │ - .local v0, "serializedName":Lcom/google/gson/annotations/SerializedName; │ - if-nez v0, :cond_0 │ + move-result-object v3 │ │ - invoke-interface {p0, p1}, Lcom/google/gson/FieldNamingStrategy;->translateName(Ljava/lang/reflect/Field;)Ljava/lang/String; │ + goto :goto_0 │ │ - move-result-object v1 │ + .line 84 │ + :cond_2 │ + new-instance v3, Ljava/util/ArrayList; │ │ - :goto_0 │ - return-object v1 │ + array-length v6, v1 │ │ - :cond_0 │ - invoke-interface {v0}, Lcom/google/gson/annotations/SerializedName;->value()Ljava/lang/String; │ + add-int/lit8 v6, v6, 0x1 │ │ - move-result-object v1 │ + invoke-direct {v3, v6}, Ljava/util/ArrayList;->(I)V │ │ - goto :goto_0 │ -.end method │ + .line 85 │ + .local v3, "fieldNames":Ljava/util/List;, "Ljava/util/List;" │ + invoke-interface {v3, v5}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ -.method private getFieldName(Ljava/lang/reflect/Field;)Ljava/lang/String; │ - .locals 1 │ - .param p1, "f" # Ljava/lang/reflect/Field; │ + .line 86 │ + array-length v7, v1 │ │ - .prologue │ - .line 67 │ - iget-object v0, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->fieldNamingPolicy:Lcom/google/gson/FieldNamingStrategy; │ + const/4 v6, 0x0 │ │ - invoke-static {v0, p1}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->getFieldName(Lcom/google/gson/FieldNamingStrategy;Ljava/lang/reflect/Field;)Ljava/lang/String; │ + :goto_1 │ + if-ge v6, v7, :cond_0 │ │ - move-result-object v0 │ + aget-object v0, v1, v6 │ + │ + .line 87 │ + .local v0, "alternate":Ljava/lang/String; │ + invoke-interface {v3, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ - return-object v0 │ + .line 86 │ + add-int/lit8 v6, v6, 0x1 │ + │ + goto :goto_1 │ .end method │ │ │ # virtual methods │ .method public create(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ - .locals 5 │ + .locals 4 │ .param p1, "gson" # Lcom/google/gson/Gson; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Lcom/google/gson/Gson;", │ @@ -500,66 +604,65 @@ │ ";)", │ "Lcom/google/gson/TypeAdapter", │ ";" │ } │ .end annotation │ │ .prologue │ + .line 93 │ .local p2, "type":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken;" │ - const/4 v2, 0x0 │ - │ - .line 76 │ invoke-virtual {p2}, Lcom/google/gson/reflect/TypeToken;->getRawType()Ljava/lang/Class; │ │ move-result-object v1 │ │ - .line 78 │ + .line 95 │ .local v1, "raw":Ljava/lang/Class;, "Ljava/lang/Class<-TT;>;" │ - const-class v3, Ljava/lang/Object; │ + const-class v2, Ljava/lang/Object; │ │ - invoke-virtual {v3, v1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z │ + invoke-virtual {v2, v1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z │ │ - move-result v3 │ + move-result v2 │ │ - if-nez v3, :cond_0 │ + if-nez v2, :cond_0 │ + │ + .line 96 │ + const/4 v2, 0x0 │ │ - .line 83 │ + .line 100 │ :goto_0 │ return-object v2 │ │ - .line 82 │ + .line 99 │ :cond_0 │ - iget-object v3, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor; │ + iget-object v2, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor; │ │ - invoke-virtual {v3, p2}, Lcom/google/gson/internal/ConstructorConstructor;->get(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/internal/ObjectConstructor; │ + invoke-virtual {v2, p2}, Lcom/google/gson/internal/ConstructorConstructor;->get(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/internal/ObjectConstructor; │ │ move-result-object v0 │ │ - .line 83 │ + .line 100 │ .local v0, "constructor":Lcom/google/gson/internal/ObjectConstructor;, "Lcom/google/gson/internal/ObjectConstructor;" │ - new-instance v3, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$Adapter; │ + new-instance v2, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$Adapter; │ │ invoke-direct {p0, p1, p2, v1}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->getBoundFields(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;Ljava/lang/Class;)Ljava/util/Map; │ │ - move-result-object v4 │ - │ - invoke-direct {v3, v0, v4, v2}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$Adapter;->(Lcom/google/gson/internal/ObjectConstructor;Ljava/util/Map;Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;)V │ + move-result-object v3 │ │ - move-object v2, v3 │ + invoke-direct {v2, v0, v3}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$Adapter;->(Lcom/google/gson/internal/ObjectConstructor;Ljava/util/Map;)V │ │ goto :goto_0 │ .end method │ │ .method public excludeField(Ljava/lang/reflect/Field;Z)Z │ .locals 1 │ .param p1, "f" # Ljava/lang/reflect/Field; │ .param p2, "serialize" # Z │ │ .prologue │ - .line 59 │ + .line 63 │ iget-object v0, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->excluder:Lcom/google/gson/internal/Excluder; │ │ invoke-static {p1, p2, v0}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->excludeField(Ljava/lang/reflect/Field;ZLcom/google/gson/internal/Excluder;)Z │ │ move-result v0 │ │ return v0 ├── smali/com/google/gson/internal/bind/SqlDateTypeAdapter.smali │ @@ -56,15 +56,14 @@ │ return-void │ .end method │ │ │ # virtual methods │ .method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ @@ -164,27 +163,24 @@ │ monitor-exit p0 │ │ throw v1 │ .end method │ │ .method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ .line 38 │ check-cast p2, Ljava/sql/Date; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/SqlDateTypeAdapter;->write(Lcom/google/gson/stream/JsonWriter;Ljava/sql/Date;)V │ │ return-void │ .end method │ │ .method public declared-synchronized write(Lcom/google/gson/stream/JsonWriter;Ljava/sql/Date;)V │ .locals 1 ├── smali/com/google/gson/internal/bind/TimeTypeAdapter.smali │ @@ -56,15 +56,14 @@ │ return-void │ .end method │ │ │ # virtual methods │ .method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ @@ -164,27 +163,24 @@ │ monitor-exit p0 │ │ throw v2 │ .end method │ │ .method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ .line 40 │ check-cast p2, Ljava/sql/Time; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TimeTypeAdapter;->write(Lcom/google/gson/stream/JsonWriter;Ljava/sql/Time;)V │ │ return-void │ .end method │ │ .method public declared-synchronized write(Lcom/google/gson/stream/JsonWriter;Ljava/sql/Time;)V │ .locals 1 ├── smali/com/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper.smali │ @@ -43,39 +43,39 @@ │ ";", │ "Ljava/lang/reflect/Type;", │ ")V" │ } │ .end annotation │ │ .prologue │ - .line 32 │ + .line 33 │ .local p0, "this":Lcom/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper;, "Lcom/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper;" │ .local p2, "delegate":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ - .line 33 │ + .line 34 │ iput-object p1, p0, Lcom/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper;->context:Lcom/google/gson/Gson; │ │ - .line 34 │ + .line 35 │ iput-object p2, p0, Lcom/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper;->delegate:Lcom/google/gson/TypeAdapter; │ │ - .line 35 │ + .line 36 │ iput-object p3, p0, Lcom/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper;->type:Ljava/lang/reflect/Type; │ │ - .line 36 │ + .line 37 │ return-void │ .end method │ │ .method private getRuntimeTypeIfMoreSpecific(Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/reflect/Type; │ .locals 1 │ .param p1, "type" # Ljava/lang/reflect/Type; │ .param p2, "value" # Ljava/lang/Object; │ │ .prologue │ - .line 75 │ + .line 76 │ .local p0, "this":Lcom/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper;, "Lcom/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper;" │ if-eqz p2, :cond_1 │ │ const-class v0, Ljava/lang/Object; │ │ if-eq p1, v0, :cond_0 │ │ @@ -83,21 +83,21 @@ │ │ if-nez v0, :cond_0 │ │ instance-of v0, p1, Ljava/lang/Class; │ │ if-eqz v0, :cond_1 │ │ - .line 77 │ + .line 78 │ :cond_0 │ invoke-virtual {p2}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ move-result-object p1 │ │ - .line 79 │ + .line 80 │ :cond_1 │ return-object p1 │ .end method │ │ │ # virtual methods │ .method public read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ @@ -114,15 +114,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 40 │ + .line 41 │ .local p0, "this":Lcom/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper;, "Lcom/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper;" │ iget-object v0, p0, Lcom/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper;->delegate:Lcom/google/gson/TypeAdapter; │ │ invoke-virtual {v0, p1}, Lcom/google/gson/TypeAdapter;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ │ move-result-object v0 │ │ @@ -143,75 +143,75 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 52 │ + .line 53 │ .local p0, "this":Lcom/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper;, "Lcom/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper;" │ .local p2, "value":Ljava/lang/Object;, "TT;" │ iget-object v0, p0, Lcom/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper;->delegate:Lcom/google/gson/TypeAdapter; │ │ - .line 53 │ + .line 54 │ .local v0, "chosen":Lcom/google/gson/TypeAdapter; │ iget-object v3, p0, Lcom/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper;->type:Ljava/lang/reflect/Type; │ │ invoke-direct {p0, v3, p2}, Lcom/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper;->getRuntimeTypeIfMoreSpecific(Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/reflect/Type; │ │ move-result-object v1 │ │ - .line 54 │ + .line 55 │ .local v1, "runtimeType":Ljava/lang/reflect/Type; │ iget-object v3, p0, Lcom/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper;->type:Ljava/lang/reflect/Type; │ │ if-eq v1, v3, :cond_0 │ │ - .line 55 │ + .line 56 │ iget-object v3, p0, Lcom/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper;->context:Lcom/google/gson/Gson; │ │ invoke-static {v1}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken; │ │ move-result-object v4 │ │ invoke-virtual {v3, v4}, Lcom/google/gson/Gson;->getAdapter(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ │ move-result-object v2 │ │ - .line 56 │ + .line 57 │ .local v2, "runtimeTypeAdapter":Lcom/google/gson/TypeAdapter; │ instance-of v3, v2, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$Adapter; │ │ if-nez v3, :cond_1 │ │ - .line 58 │ + .line 59 │ move-object v0, v2 │ │ - .line 68 │ + .line 69 │ .end local v2 # "runtimeTypeAdapter":Lcom/google/gson/TypeAdapter; │ :cond_0 │ :goto_0 │ invoke-virtual {v0, p1, p2}, Lcom/google/gson/TypeAdapter;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ │ - .line 69 │ + .line 70 │ return-void │ │ - .line 59 │ + .line 60 │ .restart local v2 # "runtimeTypeAdapter":Lcom/google/gson/TypeAdapter; │ :cond_1 │ iget-object v3, p0, Lcom/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper;->delegate:Lcom/google/gson/TypeAdapter; │ │ instance-of v3, v3, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$Adapter; │ │ if-nez v3, :cond_2 │ │ - .line 62 │ + .line 63 │ iget-object v0, p0, Lcom/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper;->delegate:Lcom/google/gson/TypeAdapter; │ │ goto :goto_0 │ │ - .line 65 │ + .line 66 │ :cond_2 │ move-object v0, v2 │ │ goto :goto_0 │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$10.smali │ @@ -13,122 +13,212 @@ │ name = null │ .end annotation │ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Lcom/google/gson/TypeAdapter", │ "<", │ - "Ljava/lang/Number;", │ + "Ljava/util/concurrent/atomic/AtomicIntegerArray;", │ ">;" │ } │ .end annotation │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 287 │ + .line 282 │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ -.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Number; │ - .locals 2 │ - .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ +.method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ + .locals 1 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 290 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ + .line 282 │ + invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$10;->read(Lcom/google/gson/stream/JsonReader;)Ljava/util/concurrent/atomic/AtomicIntegerArray; │ │ move-result-object v0 │ │ - sget-object v1, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ + return-object v0 │ +.end method │ │ - if-ne v0, v1, :cond_0 │ +.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/util/concurrent/atomic/AtomicIntegerArray; │ + .locals 7 │ + .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/io/IOException; │ + } │ + .end annotation │ │ - .line 291 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ + .prologue │ + .line 284 │ + new-instance v5, Ljava/util/ArrayList; │ │ - .line 292 │ - const/4 v0, 0x0 │ + invoke-direct {v5}, Ljava/util/ArrayList;->()V │ │ - .line 294 │ + .line 285 │ + .local v5, "list":Ljava/util/List;, "Ljava/util/List;" │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->beginArray()V │ + │ + .line 286 │ :goto_0 │ - return-object v0 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->hasNext()Z │ │ - :cond_0 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextDouble()D │ + move-result v6 │ │ - move-result-wide v0 │ + if-eqz v6, :cond_0 │ │ - invoke-static {v0, v1}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double; │ + .line 288 │ + :try_start_0 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextInt()I │ │ - move-result-object v0 │ + move-result v3 │ + │ + .line 289 │ + .local v3, "integer":I │ + invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ + │ + move-result-object v6 │ + │ + invoke-interface {v5, v6}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + :try_end_0 │ + .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 │ │ goto :goto_0 │ -.end method │ │ -.method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ - .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ - .annotation system Ldalvik/annotation/Throws; │ - value = { │ - Ljava/io/IOException; │ - } │ - .end annotation │ + .line 290 │ + .end local v3 # "integer":I │ + :catch_0 │ + move-exception v1 │ │ - .prologue │ - .line 287 │ - invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$10;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Number; │ + .line 291 │ + .local v1, "e":Ljava/lang/NumberFormatException; │ + new-instance v6, Lcom/google/gson/JsonSyntaxException; │ │ - move-result-object v0 │ + invoke-direct {v6, v1}, Lcom/google/gson/JsonSyntaxException;->(Ljava/lang/Throwable;)V │ + │ + throw v6 │ │ + .line 294 │ + .end local v1 # "e":Ljava/lang/NumberFormatException; │ + :cond_0 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->endArray()V │ + │ + .line 295 │ + invoke-interface {v5}, Ljava/util/List;->size()I │ + │ + move-result v4 │ + │ + .line 296 │ + .local v4, "length":I │ + new-instance v0, Ljava/util/concurrent/atomic/AtomicIntegerArray; │ + │ + invoke-direct {v0, v4}, Ljava/util/concurrent/atomic/AtomicIntegerArray;->(I)V │ + │ + .line 297 │ + .local v0, "array":Ljava/util/concurrent/atomic/AtomicIntegerArray; │ + const/4 v2, 0x0 │ + │ + .local v2, "i":I │ + :goto_1 │ + if-ge v2, v4, :cond_1 │ + │ + .line 298 │ + invoke-interface {v5, v2}, Ljava/util/List;->get(I)Ljava/lang/Object; │ + │ + move-result-object v6 │ + │ + check-cast v6, Ljava/lang/Integer; │ + │ + invoke-virtual {v6}, Ljava/lang/Integer;->intValue()I │ + │ + move-result v6 │ + │ + invoke-virtual {v0, v2, v6}, Ljava/util/concurrent/atomic/AtomicIntegerArray;->set(II)V │ + │ + .line 297 │ + add-int/lit8 v2, v2, 0x1 │ + │ + goto :goto_1 │ + │ + .line 300 │ + :cond_1 │ return-object v0 │ .end method │ │ -.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Number;)V │ +.method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "value" # Ljava/lang/Number; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 298 │ - invoke-virtual {p1, p2}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/Number;)Lcom/google/gson/stream/JsonWriter; │ + .line 282 │ + check-cast p2, Ljava/util/concurrent/atomic/AtomicIntegerArray; │ + │ + invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$10;->write(Lcom/google/gson/stream/JsonWriter;Ljava/util/concurrent/atomic/AtomicIntegerArray;)V │ │ - .line 299 │ return-void │ .end method │ │ -.method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ - .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ +.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/util/concurrent/atomic/AtomicIntegerArray;)V │ + .locals 4 │ + .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ + .param p2, "value" # Ljava/util/concurrent/atomic/AtomicIntegerArray; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 287 │ - check-cast p2, Ljava/lang/Number; │ + .line 303 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->beginArray()Lcom/google/gson/stream/JsonWriter; │ + │ + .line 304 │ + const/4 v0, 0x0 │ + │ + .local v0, "i":I │ + invoke-virtual {p2}, Ljava/util/concurrent/atomic/AtomicIntegerArray;->length()I │ + │ + move-result v1 │ + │ + .local v1, "length":I │ + :goto_0 │ + if-ge v0, v1, :cond_0 │ + │ + .line 305 │ + invoke-virtual {p2, v0}, Ljava/util/concurrent/atomic/AtomicIntegerArray;->get(I)I │ + │ + move-result v2 │ + │ + int-to-long v2, v2 │ + │ + invoke-virtual {p1, v2, v3}, Lcom/google/gson/stream/JsonWriter;->value(J)Lcom/google/gson/stream/JsonWriter; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ - invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$10;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Number;)V │ + .line 304 │ + add-int/lit8 v0, v0, 0x1 │ + │ + goto :goto_0 │ + │ + .line 307 │ + :cond_0 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->endArray()Lcom/google/gson/stream/JsonWriter; │ │ + .line 308 │ return-void │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$11.smali │ @@ -24,15 +24,15 @@ │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 302 │ + .line 313 │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ @@ -42,102 +42,70 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 305 │ + .line 316 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ - move-result-object v0 │ - │ - .line 306 │ - .local v0, "jsonToken":Lcom/google/gson/stream/JsonToken; │ - sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters$32;->$SwitchMap$com$google$gson$stream$JsonToken:[I │ - │ - invoke-virtual {v0}, Lcom/google/gson/stream/JsonToken;->ordinal()I │ - │ - move-result v2 │ - │ - aget v1, v1, v2 │ - │ - packed-switch v1, :pswitch_data_0 │ - │ - .line 313 │ - :pswitch_0 │ - new-instance v1, Lcom/google/gson/JsonSyntaxException; │ - │ - new-instance v2, Ljava/lang/StringBuilder; │ - │ - invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ - │ - const-string v3, "Expecting number, got: " │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + move-result-object v1 │ │ - move-result-object v2 │ + sget-object v2, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ - invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ + if-ne v1, v2, :cond_0 │ │ - move-result-object v2 │ - │ - invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ - │ - move-result-object v2 │ - │ - invoke-direct {v1, v2}, Lcom/google/gson/JsonSyntaxException;->(Ljava/lang/String;)V │ - │ - throw v1 │ - │ - .line 308 │ - :pswitch_1 │ + .line 317 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ │ - .line 309 │ + .line 318 │ const/4 v1, 0x0 │ │ - .line 311 │ + .line 321 │ :goto_0 │ return-object v1 │ │ - :pswitch_2 │ - new-instance v1, Lcom/google/gson/internal/LazilyParsedNumber; │ + :cond_0 │ + :try_start_0 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextLong()J │ │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextString()Ljava/lang/String; │ + move-result-wide v2 │ │ - move-result-object v2 │ + invoke-static {v2, v3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ + :try_end_0 │ + .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - invoke-direct {v1, v2}, Lcom/google/gson/internal/LazilyParsedNumber;->(Ljava/lang/String;)V │ + move-result-object v1 │ │ goto :goto_0 │ │ - .line 306 │ - nop │ + .line 322 │ + :catch_0 │ + move-exception v0 │ │ - :pswitch_data_0 │ - .packed-switch 0x1 │ - :pswitch_2 │ - :pswitch_0 │ - :pswitch_0 │ - :pswitch_1 │ - .end packed-switch │ + .line 323 │ + .local v0, "e":Ljava/lang/NumberFormatException; │ + new-instance v1, Lcom/google/gson/JsonSyntaxException; │ + │ + invoke-direct {v1, v0}, Lcom/google/gson/JsonSyntaxException;->(Ljava/lang/Throwable;)V │ + │ + throw v1 │ .end method │ │ .method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 302 │ + .line 313 │ invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$11;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Number; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ @@ -148,33 +116,30 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 318 │ + .line 328 │ invoke-virtual {p1, p2}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/Number;)Lcom/google/gson/stream/JsonWriter; │ │ - .line 319 │ + .line 329 │ return-void │ .end method │ │ .method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 302 │ + .line 313 │ check-cast p2, Ljava/lang/Number; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$11;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Number;)V │ │ return-void │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$12.smali │ @@ -13,179 +13,120 @@ │ name = null │ .end annotation │ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Lcom/google/gson/TypeAdapter", │ "<", │ - "Ljava/lang/Character;", │ + "Ljava/lang/Number;", │ ">;" │ } │ .end annotation │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 324 │ + .line 332 │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ -.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Character; │ - .locals 4 │ +.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Number; │ + .locals 2 │ .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 327 │ + .line 335 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - sget-object v2, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ + sget-object v1, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ - if-ne v1, v2, :cond_0 │ + if-ne v0, v1, :cond_0 │ │ - .line 328 │ + .line 336 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ │ - .line 329 │ - const/4 v1, 0x0 │ + .line 337 │ + const/4 v0, 0x0 │ │ - .line 335 │ + .line 339 │ :goto_0 │ - return-object v1 │ + return-object v0 │ │ - .line 331 │ :cond_0 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextString()Ljava/lang/String; │ - │ - move-result-object v0 │ - │ - .line 332 │ - .local v0, "str":Ljava/lang/String; │ - invoke-virtual {v0}, Ljava/lang/String;->length()I │ - │ - move-result v1 │ - │ - const/4 v2, 0x1 │ - │ - if-eq v1, v2, :cond_1 │ - │ - .line 333 │ - new-instance v1, Lcom/google/gson/JsonSyntaxException; │ - │ - new-instance v2, Ljava/lang/StringBuilder; │ - │ - invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ - │ - const-string v3, "Expecting character, got: " │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextDouble()D │ │ - move-result-object v2 │ + move-result-wide v0 │ │ - invoke-direct {v1, v2}, Lcom/google/gson/JsonSyntaxException;->(Ljava/lang/String;)V │ + double-to-float v0, v0 │ │ - throw v1 │ + invoke-static {v0}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float; │ │ - .line 335 │ - :cond_1 │ - const/4 v1, 0x0 │ - │ - invoke-virtual {v0, v1}, Ljava/lang/String;->charAt(I)C │ - │ - move-result v1 │ - │ - invoke-static {v1}, Ljava/lang/Character;->valueOf(C)Ljava/lang/Character; │ - │ - move-result-object v1 │ + move-result-object v0 │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 324 │ - invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$12;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Character; │ + .line 332 │ + invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$12;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Number; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ -.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Character;)V │ - .locals 1 │ +.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Number;)V │ + .locals 0 │ .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "value" # Ljava/lang/Character; │ + .param p2, "value" # Ljava/lang/Number; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 339 │ - if-nez p2, :cond_0 │ - │ - const/4 v0, 0x0 │ - │ - :goto_0 │ - invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ + .line 343 │ + invoke-virtual {p1, p2}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/Number;)Lcom/google/gson/stream/JsonWriter; │ │ - .line 340 │ + .line 344 │ return-void │ - │ - .line 339 │ - :cond_0 │ - invoke-static {p2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String; │ - │ - move-result-object v0 │ - │ - goto :goto_0 │ .end method │ │ .method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 324 │ - check-cast p2, Ljava/lang/Character; │ + .line 332 │ + check-cast p2, Ljava/lang/Number; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ - invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$12;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Character;)V │ + invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$12;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Number;)V │ │ return-void │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$13.smali │ @@ -13,138 +13,118 @@ │ name = null │ .end annotation │ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Lcom/google/gson/TypeAdapter", │ "<", │ - "Ljava/lang/String;", │ + "Ljava/lang/Number;", │ ">;" │ } │ .end annotation │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 346 │ + .line 347 │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ -.method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ - .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ - .annotation system Ldalvik/annotation/Throws; │ - value = { │ - Ljava/io/IOException; │ - } │ - .end annotation │ - │ - .prologue │ - .line 346 │ - invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$13;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/String; │ - │ - move-result-object v0 │ - │ - return-object v0 │ -.end method │ - │ -.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/String; │ +.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Number; │ .locals 2 │ .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 349 │ + .line 350 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v0 │ │ - .line 350 │ - .local v0, "peek":Lcom/google/gson/stream/JsonToken; │ sget-object v1, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ if-ne v0, v1, :cond_0 │ │ .line 351 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ │ .line 352 │ - const/4 v1, 0x0 │ + const/4 v0, 0x0 │ │ - .line 358 │ + .line 354 │ :goto_0 │ - return-object v1 │ + return-object v0 │ │ - .line 355 │ :cond_0 │ - sget-object v1, Lcom/google/gson/stream/JsonToken;->BOOLEAN:Lcom/google/gson/stream/JsonToken; │ - │ - if-ne v0, v1, :cond_1 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextDouble()D │ │ - .line 356 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextBoolean()Z │ + move-result-wide v0 │ │ - move-result v1 │ + invoke-static {v0, v1}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double; │ │ - invoke-static {v1}, Ljava/lang/Boolean;->toString(Z)Ljava/lang/String; │ - │ - move-result-object v1 │ + move-result-object v0 │ │ goto :goto_0 │ +.end method │ │ - .line 358 │ - :cond_1 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextString()Ljava/lang/String; │ +.method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ + .locals 1 │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/io/IOException; │ + } │ + .end annotation │ │ - move-result-object v1 │ + .prologue │ + .line 347 │ + invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$13;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Number; │ │ - goto :goto_0 │ + move-result-object v0 │ + │ + return-object v0 │ .end method │ │ -.method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ +.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Number;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ + .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ + .param p2, "value" # Ljava/lang/Number; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 346 │ - check-cast p2, Ljava/lang/String; │ - │ - .end local p2 # "x1":Ljava/lang/Object; │ - invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$13;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/String;)V │ + .line 358 │ + invoke-virtual {p1, p2}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/Number;)Lcom/google/gson/stream/JsonWriter; │ │ + .line 359 │ return-void │ .end method │ │ -.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/String;)V │ +.method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "value" # Ljava/lang/String; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 362 │ - invoke-virtual {p1, p2}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ + .line 347 │ + check-cast p2, Ljava/lang/Number; │ + │ + invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$13;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Number;)V │ │ - .line 363 │ return-void │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$14.smali │ @@ -13,137 +13,164 @@ │ name = null │ .end annotation │ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Lcom/google/gson/TypeAdapter", │ "<", │ - "Ljava/math/BigDecimal;", │ + "Ljava/lang/Number;", │ ">;" │ } │ .end annotation │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 366 │ + .line 362 │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ -.method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ - .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ +.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Number; │ + .locals 4 │ + .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 366 │ - invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$14;->read(Lcom/google/gson/stream/JsonReader;)Ljava/math/BigDecimal; │ + .line 365 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v0 │ │ - return-object v0 │ -.end method │ + .line 366 │ + .local v0, "jsonToken":Lcom/google/gson/stream/JsonToken; │ + sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters$36;->$SwitchMap$com$google$gson$stream$JsonToken:[I │ │ -.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/math/BigDecimal; │ - .locals 3 │ - .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ - .annotation system Ldalvik/annotation/Throws; │ - value = { │ - Ljava/io/IOException; │ - } │ - .end annotation │ + invoke-virtual {v0}, Lcom/google/gson/stream/JsonToken;->ordinal()I │ │ - .prologue │ - .line 368 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ + move-result v2 │ + │ + aget v1, v1, v2 │ + │ + packed-switch v1, :pswitch_data_0 │ │ - move-result-object v1 │ + .line 373 │ + :pswitch_0 │ + new-instance v1, Lcom/google/gson/JsonSyntaxException; │ │ - sget-object v2, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ + new-instance v2, Ljava/lang/StringBuilder; │ │ - if-ne v1, v2, :cond_0 │ + invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ │ - .line 369 │ + const-string v3, "Expecting number, got: " │ + │ + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + │ + move-result-object v2 │ + │ + invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ + │ + move-result-object v2 │ + │ + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + │ + move-result-object v2 │ + │ + invoke-direct {v1, v2}, Lcom/google/gson/JsonSyntaxException;->(Ljava/lang/String;)V │ + │ + throw v1 │ + │ + .line 368 │ + :pswitch_1 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ │ - .line 370 │ + .line 369 │ const/4 v1, 0x0 │ │ - .line 373 │ + .line 371 │ :goto_0 │ return-object v1 │ │ - :cond_0 │ - :try_start_0 │ - new-instance v1, Ljava/math/BigDecimal; │ + :pswitch_2 │ + new-instance v1, Lcom/google/gson/internal/LazilyParsedNumber; │ │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextString()Ljava/lang/String; │ │ move-result-object v2 │ │ - invoke-direct {v1, v2}, Ljava/math/BigDecimal;->(Ljava/lang/String;)V │ - :try_end_0 │ - .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 │ + invoke-direct {v1, v2}, Lcom/google/gson/internal/LazilyParsedNumber;->(Ljava/lang/String;)V │ │ goto :goto_0 │ │ - .line 374 │ - :catch_0 │ - move-exception v0 │ + .line 366 │ + nop │ + │ + :pswitch_data_0 │ + .packed-switch 0x1 │ + :pswitch_2 │ + :pswitch_0 │ + :pswitch_0 │ + :pswitch_1 │ + .end packed-switch │ +.end method │ │ - .line 375 │ - .local v0, "e":Ljava/lang/NumberFormatException; │ - new-instance v1, Lcom/google/gson/JsonSyntaxException; │ +.method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ + .locals 1 │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/io/IOException; │ + } │ + .end annotation │ │ - invoke-direct {v1, v0}, Lcom/google/gson/JsonSyntaxException;->(Ljava/lang/Throwable;)V │ + .prologue │ + .line 362 │ + invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$14;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Number; │ │ - throw v1 │ + move-result-object v0 │ + │ + return-object v0 │ .end method │ │ -.method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ +.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Number;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ + .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ + .param p2, "value" # Ljava/lang/Number; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 366 │ - check-cast p2, Ljava/math/BigDecimal; │ - │ - .end local p2 # "x1":Ljava/lang/Object; │ - invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$14;->write(Lcom/google/gson/stream/JsonWriter;Ljava/math/BigDecimal;)V │ + .line 378 │ + invoke-virtual {p1, p2}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/Number;)Lcom/google/gson/stream/JsonWriter; │ │ + .line 379 │ return-void │ .end method │ │ -.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/math/BigDecimal;)V │ +.method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "value" # Ljava/math/BigDecimal; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 380 │ - invoke-virtual {p1, p2}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/Number;)Lcom/google/gson/stream/JsonWriter; │ + .line 362 │ + check-cast p2, Ljava/lang/Number; │ + │ + invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$14;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Number;)V │ │ - .line 381 │ return-void │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$15.smali │ @@ -13,15 +13,15 @@ │ name = null │ .end annotation │ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Lcom/google/gson/TypeAdapter", │ "<", │ - "Ljava/math/BigInteger;", │ + "Ljava/lang/Character;", │ ">;" │ } │ .end annotation │ │ │ # direct methods │ .method constructor ()V │ @@ -32,118 +32,156 @@ │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ -.method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ - .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ - .annotation system Ldalvik/annotation/Throws; │ - value = { │ - Ljava/io/IOException; │ - } │ - .end annotation │ - │ - .prologue │ - .line 384 │ - invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$15;->read(Lcom/google/gson/stream/JsonReader;)Ljava/math/BigInteger; │ - │ - move-result-object v0 │ - │ - return-object v0 │ -.end method │ - │ -.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/math/BigInteger; │ - .locals 3 │ +.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Character; │ + .locals 4 │ .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 386 │ + .line 387 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v1 │ │ sget-object v2, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ if-ne v1, v2, :cond_0 │ │ - .line 387 │ + .line 388 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ │ - .line 388 │ + .line 389 │ const/4 v1, 0x0 │ │ - .line 391 │ + .line 395 │ :goto_0 │ return-object v1 │ │ + .line 391 │ :cond_0 │ - :try_start_0 │ - new-instance v1, Ljava/math/BigInteger; │ - │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextString()Ljava/lang/String; │ │ - move-result-object v2 │ + move-result-object v0 │ │ - invoke-direct {v1, v2}, Ljava/math/BigInteger;->(Ljava/lang/String;)V │ - :try_end_0 │ - .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 │ + .line 392 │ + .local v0, "str":Ljava/lang/String; │ + invoke-virtual {v0}, Ljava/lang/String;->length()I │ │ - goto :goto_0 │ + move-result v1 │ │ - .line 392 │ - :catch_0 │ - move-exception v0 │ + const/4 v2, 0x1 │ + │ + if-eq v1, v2, :cond_1 │ │ .line 393 │ - .local v0, "e":Ljava/lang/NumberFormatException; │ new-instance v1, Lcom/google/gson/JsonSyntaxException; │ │ - invoke-direct {v1, v0}, Lcom/google/gson/JsonSyntaxException;->(Ljava/lang/Throwable;)V │ + new-instance v2, Ljava/lang/StringBuilder; │ + │ + invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ + │ + const-string v3, "Expecting character, got: " │ + │ + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + │ + move-result-object v2 │ + │ + invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + │ + move-result-object v2 │ + │ + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + │ + move-result-object v2 │ + │ + invoke-direct {v1, v2}, Lcom/google/gson/JsonSyntaxException;->(Ljava/lang/String;)V │ │ throw v1 │ + │ + .line 395 │ + :cond_1 │ + const/4 v1, 0x0 │ + │ + invoke-virtual {v0, v1}, Ljava/lang/String;->charAt(I)C │ + │ + move-result v1 │ + │ + invoke-static {v1}, Ljava/lang/Character;->valueOf(C)Ljava/lang/Character; │ + │ + move-result-object v1 │ + │ + goto :goto_0 │ .end method │ │ -.method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ - .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ +.method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ + .locals 1 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ .line 384 │ - check-cast p2, Ljava/math/BigInteger; │ + invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$15;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Character; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ - invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$15;->write(Lcom/google/gson/stream/JsonWriter;Ljava/math/BigInteger;)V │ + move-result-object v0 │ │ - return-void │ + return-object v0 │ .end method │ │ -.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/math/BigInteger;)V │ - .locals 0 │ +.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Character;)V │ + .locals 1 │ .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "value" # Ljava/math/BigInteger; │ + .param p2, "value" # Ljava/lang/Character; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 398 │ - invoke-virtual {p1, p2}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/Number;)Lcom/google/gson/stream/JsonWriter; │ + .line 399 │ + if-nez p2, :cond_0 │ + │ + const/4 v0, 0x0 │ + │ + :goto_0 │ + invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ + │ + .line 400 │ + return-void │ │ .line 399 │ + :cond_0 │ + invoke-static {p2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String; │ + │ + move-result-object v0 │ + │ + goto :goto_0 │ +.end method │ + │ +.method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ + .locals 0 │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/io/IOException; │ + } │ + .end annotation │ + │ + .prologue │ + .line 384 │ + check-cast p2, Ljava/lang/Character; │ + │ + invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$15;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Character;)V │ + │ return-void │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$16.smali │ @@ -13,135 +13,134 @@ │ name = null │ .end annotation │ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Lcom/google/gson/TypeAdapter", │ "<", │ - "Ljava/lang/StringBuilder;", │ + "Ljava/lang/String;", │ ">;" │ } │ .end annotation │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 404 │ + .line 406 │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 404 │ - invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$16;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/StringBuilder; │ + .line 406 │ + invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$16;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/String; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ -.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/StringBuilder; │ +.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/String; │ .locals 2 │ .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 407 │ + .line 409 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v0 │ │ + .line 410 │ + .local v0, "peek":Lcom/google/gson/stream/JsonToken; │ sget-object v1, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ if-ne v0, v1, :cond_0 │ │ - .line 408 │ + .line 411 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ │ - .line 409 │ - const/4 v0, 0x0 │ + .line 412 │ + const/4 v1, 0x0 │ │ - .line 411 │ + .line 418 │ :goto_0 │ - return-object v0 │ + return-object v1 │ │ + .line 415 │ :cond_0 │ - new-instance v0, Ljava/lang/StringBuilder; │ + sget-object v1, Lcom/google/gson/stream/JsonToken;->BOOLEAN:Lcom/google/gson/stream/JsonToken; │ │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextString()Ljava/lang/String; │ + if-ne v0, v1, :cond_1 │ + │ + .line 416 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextBoolean()Z │ + │ + move-result v1 │ + │ + invoke-static {v1}, Ljava/lang/Boolean;->toString(Z)Ljava/lang/String; │ │ move-result-object v1 │ │ - invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V │ + goto :goto_0 │ + │ + .line 418 │ + :cond_1 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextString()Ljava/lang/String; │ + │ + move-result-object v1 │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 404 │ - check-cast p2, Ljava/lang/StringBuilder; │ + .line 406 │ + check-cast p2, Ljava/lang/String; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ - invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$16;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/StringBuilder;)V │ + invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$16;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/String;)V │ │ return-void │ .end method │ │ -.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/StringBuilder;)V │ - .locals 1 │ +.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/String;)V │ + .locals 0 │ .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "value" # Ljava/lang/StringBuilder; │ + .param p2, "value" # Ljava/lang/String; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 415 │ - if-nez p2, :cond_0 │ + .line 422 │ + invoke-virtual {p1, p2}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ │ - const/4 v0, 0x0 │ - │ - :goto_0 │ - invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ - │ - .line 416 │ + .line 423 │ return-void │ - │ - .line 415 │ - :cond_0 │ - invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ - │ - move-result-object v0 │ - │ - goto :goto_0 │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$17.smali │ @@ -13,135 +13,133 @@ │ name = null │ .end annotation │ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Lcom/google/gson/TypeAdapter", │ "<", │ - "Ljava/lang/StringBuffer;", │ + "Ljava/math/BigDecimal;", │ ">;" │ } │ .end annotation │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 422 │ + .line 426 │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 422 │ - invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$17;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/StringBuffer; │ + .line 426 │ + invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$17;->read(Lcom/google/gson/stream/JsonReader;)Ljava/math/BigDecimal; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ -.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/StringBuffer; │ - .locals 2 │ +.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/math/BigDecimal; │ + .locals 3 │ .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 425 │ + .line 428 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ - move-result-object v0 │ + move-result-object v1 │ │ - sget-object v1, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ + sget-object v2, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ - if-ne v0, v1, :cond_0 │ + if-ne v1, v2, :cond_0 │ │ - .line 426 │ + .line 429 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ │ - .line 427 │ - const/4 v0, 0x0 │ + .line 430 │ + const/4 v1, 0x0 │ │ - .line 429 │ + .line 433 │ :goto_0 │ - return-object v0 │ + return-object v1 │ │ :cond_0 │ - new-instance v0, Ljava/lang/StringBuffer; │ + :try_start_0 │ + new-instance v1, Ljava/math/BigDecimal; │ │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextString()Ljava/lang/String; │ │ - move-result-object v1 │ + move-result-object v2 │ │ - invoke-direct {v0, v1}, Ljava/lang/StringBuffer;->(Ljava/lang/String;)V │ + invoke-direct {v1, v2}, Ljava/math/BigDecimal;->(Ljava/lang/String;)V │ + :try_end_0 │ + .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 │ │ goto :goto_0 │ + │ + .line 434 │ + :catch_0 │ + move-exception v0 │ + │ + .line 435 │ + .local v0, "e":Ljava/lang/NumberFormatException; │ + new-instance v1, Lcom/google/gson/JsonSyntaxException; │ + │ + invoke-direct {v1, v0}, Lcom/google/gson/JsonSyntaxException;->(Ljava/lang/Throwable;)V │ + │ + throw v1 │ .end method │ │ .method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 422 │ - check-cast p2, Ljava/lang/StringBuffer; │ + .line 426 │ + check-cast p2, Ljava/math/BigDecimal; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ - invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$17;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/StringBuffer;)V │ + invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$17;->write(Lcom/google/gson/stream/JsonWriter;Ljava/math/BigDecimal;)V │ │ return-void │ .end method │ │ -.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/StringBuffer;)V │ - .locals 1 │ +.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/math/BigDecimal;)V │ + .locals 0 │ .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "value" # Ljava/lang/StringBuffer; │ + .param p2, "value" # Ljava/math/BigDecimal; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 433 │ - if-nez p2, :cond_0 │ + .line 440 │ + invoke-virtual {p1, p2}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/Number;)Lcom/google/gson/stream/JsonWriter; │ │ - const/4 v0, 0x0 │ - │ - :goto_0 │ - invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ - │ - .line 434 │ + .line 441 │ return-void │ - │ - .line 433 │ - :cond_0 │ - invoke-virtual {p2}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String; │ - │ - move-result-object v0 │ - │ - goto :goto_0 │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$18.smali │ @@ -13,146 +13,133 @@ │ name = null │ .end annotation │ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Lcom/google/gson/TypeAdapter", │ "<", │ - "Ljava/net/URL;", │ + "Ljava/math/BigInteger;", │ ">;" │ } │ .end annotation │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 440 │ + .line 444 │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 440 │ - invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$18;->read(Lcom/google/gson/stream/JsonReader;)Ljava/net/URL; │ + .line 444 │ + invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$18;->read(Lcom/google/gson/stream/JsonReader;)Ljava/math/BigInteger; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ -.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/net/URL; │ - .locals 4 │ +.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/math/BigInteger; │ + .locals 3 │ .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - const/4 v1, 0x0 │ - │ - .line 443 │ + .line 446 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - sget-object v3, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ + sget-object v2, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ - if-ne v2, v3, :cond_1 │ + if-ne v1, v2, :cond_0 │ │ - .line 444 │ + .line 447 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ │ .line 448 │ - :cond_0 │ + const/4 v1, 0x0 │ + │ + .line 451 │ :goto_0 │ return-object v1 │ │ - .line 447 │ - :cond_1 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextString()Ljava/lang/String; │ + :cond_0 │ + :try_start_0 │ + new-instance v1, Ljava/math/BigInteger; │ │ - move-result-object v0 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextString()Ljava/lang/String; │ │ - .line 448 │ - .local v0, "nextString":Ljava/lang/String; │ - const-string v2, "null" │ + move-result-object v2 │ │ - invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + invoke-direct {v1, v2}, Ljava/math/BigInteger;->(Ljava/lang/String;)V │ + :try_end_0 │ + .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - move-result v2 │ + goto :goto_0 │ │ - if-nez v2, :cond_0 │ + .line 452 │ + :catch_0 │ + move-exception v0 │ │ - new-instance v1, Ljava/net/URL; │ + .line 453 │ + .local v0, "e":Ljava/lang/NumberFormatException; │ + new-instance v1, Lcom/google/gson/JsonSyntaxException; │ │ - invoke-direct {v1, v0}, Ljava/net/URL;->(Ljava/lang/String;)V │ + invoke-direct {v1, v0}, Lcom/google/gson/JsonSyntaxException;->(Ljava/lang/Throwable;)V │ │ - goto :goto_0 │ + throw v1 │ .end method │ │ .method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 440 │ - check-cast p2, Ljava/net/URL; │ + .line 444 │ + check-cast p2, Ljava/math/BigInteger; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ - invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$18;->write(Lcom/google/gson/stream/JsonWriter;Ljava/net/URL;)V │ + invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$18;->write(Lcom/google/gson/stream/JsonWriter;Ljava/math/BigInteger;)V │ │ return-void │ .end method │ │ -.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/net/URL;)V │ - .locals 1 │ +.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/math/BigInteger;)V │ + .locals 0 │ .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "value" # Ljava/net/URL; │ + .param p2, "value" # Ljava/math/BigInteger; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 452 │ - if-nez p2, :cond_0 │ - │ - const/4 v0, 0x0 │ - │ - :goto_0 │ - invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ + .line 458 │ + invoke-virtual {p1, p2}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/Number;)Lcom/google/gson/stream/JsonWriter; │ │ - .line 453 │ + .line 459 │ return-void │ - │ - .line 452 │ - :cond_0 │ - invoke-virtual {p2}, Ljava/net/URL;->toExternalForm()Ljava/lang/String; │ - │ - move-result-object v0 │ - │ - goto :goto_0 │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$19.smali │ @@ -13,162 +13,131 @@ │ name = null │ .end annotation │ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Lcom/google/gson/TypeAdapter", │ "<", │ - "Ljava/net/URI;", │ + "Ljava/lang/StringBuilder;", │ ">;" │ } │ .end annotation │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 458 │ + .line 464 │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 458 │ - invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$19;->read(Lcom/google/gson/stream/JsonReader;)Ljava/net/URI; │ + .line 464 │ + invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$19;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/StringBuilder; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ -.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/net/URI; │ - .locals 5 │ +.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/StringBuilder; │ + .locals 2 │ .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - const/4 v2, 0x0 │ - │ - .line 461 │ + .line 467 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ - move-result-object v3 │ + move-result-object v0 │ │ - sget-object v4, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ + sget-object v1, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ - if-ne v3, v4, :cond_1 │ + if-ne v0, v1, :cond_0 │ │ - .line 462 │ + .line 468 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ │ - .line 467 │ - :cond_0 │ + .line 469 │ + const/4 v0, 0x0 │ + │ + .line 471 │ :goto_0 │ - return-object v2 │ + return-object v0 │ + │ + :cond_0 │ + new-instance v0, Ljava/lang/StringBuilder; │ │ - .line 466 │ - :cond_1 │ - :try_start_0 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextString()Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 467 │ - .local v1, "nextString":Ljava/lang/String; │ - const-string v3, "null" │ - │ - invoke-virtual {v3, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ - │ - move-result v3 │ - │ - if-nez v3, :cond_0 │ - │ - new-instance v2, Ljava/net/URI; │ - │ - invoke-direct {v2, v1}, Ljava/net/URI;->(Ljava/lang/String;)V │ - :try_end_0 │ - .catch Ljava/net/URISyntaxException; {:try_start_0 .. :try_end_0} :catch_0 │ + invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V │ │ goto :goto_0 │ - │ - .line 468 │ - .end local v1 # "nextString":Ljava/lang/String; │ - :catch_0 │ - move-exception v0 │ - │ - .line 469 │ - .local v0, "e":Ljava/net/URISyntaxException; │ - new-instance v2, Lcom/google/gson/JsonIOException; │ - │ - invoke-direct {v2, v0}, Lcom/google/gson/JsonIOException;->(Ljava/lang/Throwable;)V │ - │ - throw v2 │ .end method │ │ .method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 458 │ - check-cast p2, Ljava/net/URI; │ + .line 464 │ + check-cast p2, Ljava/lang/StringBuilder; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ - invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$19;->write(Lcom/google/gson/stream/JsonWriter;Ljava/net/URI;)V │ + invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$19;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/StringBuilder;)V │ │ return-void │ .end method │ │ -.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/net/URI;)V │ +.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/StringBuilder;)V │ .locals 1 │ .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "value" # Ljava/net/URI; │ + .param p2, "value" # Ljava/lang/StringBuilder; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 474 │ + .line 475 │ if-nez p2, :cond_0 │ │ const/4 v0, 0x0 │ │ :goto_0 │ invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ │ - .line 475 │ + .line 476 │ return-void │ │ - .line 474 │ + .line 475 │ :cond_0 │ - invoke-virtual {p2}, Ljava/net/URI;->toASCIIString()Ljava/lang/String; │ + invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ goto :goto_0 │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$1.smali │ @@ -24,15 +24,15 @@ │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 61 │ + .line 69 │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ @@ -42,53 +42,52 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 73 │ + .line 81 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v0 │ │ sget-object v1, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ if-ne v0, v1, :cond_0 │ │ - .line 74 │ + .line 82 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ │ - .line 75 │ + .line 83 │ const/4 v0, 0x0 │ │ return-object v0 │ │ - .line 77 │ + .line 85 │ :cond_0 │ new-instance v0, Ljava/lang/UnsupportedOperationException; │ │ const-string v1, "Attempted to deserialize a java.lang.Class. Forgot to register a type adapter?" │ │ invoke-direct {v0, v1}, Ljava/lang/UnsupportedOperationException;->(Ljava/lang/String;)V │ │ throw v0 │ .end method │ │ .method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 61 │ + .line 69 │ invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$1;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Class; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ @@ -99,37 +98,38 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 64 │ + .line 72 │ if-nez p2, :cond_0 │ │ - .line 65 │ + .line 73 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->nullValue()Lcom/google/gson/stream/JsonWriter; │ │ - .line 70 │ + .line 78 │ return-void │ │ - .line 67 │ + .line 75 │ :cond_0 │ new-instance v0, Ljava/lang/UnsupportedOperationException; │ │ new-instance v1, Ljava/lang/StringBuilder; │ │ invoke-direct {v1}, Ljava/lang/StringBuilder;->()V │ │ const-string v2, "Attempted to serialize java.lang.Class: " │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ + .line 76 │ invoke-virtual {p2}, Ljava/lang/Class;->getName()Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ @@ -147,24 +147,21 @@ │ invoke-direct {v0, v1}, Ljava/lang/UnsupportedOperationException;->(Ljava/lang/String;)V │ │ throw v0 │ .end method │ │ .method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 61 │ + .line 69 │ check-cast p2, Ljava/lang/Class; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$1;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Class;)V │ │ return-void │ .end method ├── smali/com/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField.smali │ @@ -26,27 +26,27 @@ │ .method protected constructor (Ljava/lang/String;ZZ)V │ .locals 0 │ .param p1, "name" # Ljava/lang/String; │ .param p2, "serialized" # Z │ .param p3, "deserialized" # Z │ │ .prologue │ - .line 161 │ + .line 185 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 162 │ + .line 186 │ iput-object p1, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField;->name:Ljava/lang/String; │ │ - .line 163 │ + .line 187 │ iput-boolean p2, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField;->serialized:Z │ │ - .line 164 │ + .line 188 │ iput-boolean p3, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField;->deserialized:Z │ │ - .line 165 │ + .line 189 │ return-void │ .end method │ │ │ # virtual methods │ .method abstract read(Lcom/google/gson/stream/JsonReader;Ljava/lang/Object;)V │ .annotation system Ldalvik/annotation/Throws; ├── smali/com/google/gson/internal/bind/TypeAdapters$21.smali │ @@ -13,135 +13,142 @@ │ name = null │ .end annotation │ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Lcom/google/gson/TypeAdapter", │ "<", │ - "Ljava/util/UUID;", │ + "Ljava/net/URL;", │ ">;" │ } │ .end annotation │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 499 │ + .line 500 │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 499 │ - invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$21;->read(Lcom/google/gson/stream/JsonReader;)Ljava/util/UUID; │ + .line 500 │ + invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$21;->read(Lcom/google/gson/stream/JsonReader;)Ljava/net/URL; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ -.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/util/UUID; │ - .locals 2 │ +.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/net/URL; │ + .locals 4 │ .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 502 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ + const/4 v1, 0x0 │ │ - move-result-object v0 │ + .line 503 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ - sget-object v1, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ + move-result-object v2 │ │ - if-ne v0, v1, :cond_0 │ + sget-object v3, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ - .line 503 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ + if-ne v2, v3, :cond_1 │ │ .line 504 │ - const/4 v0, 0x0 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ │ - .line 506 │ + .line 508 │ + :cond_0 │ :goto_0 │ - return-object v0 │ + return-object v1 │ │ - :cond_0 │ + .line 507 │ + :cond_1 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextString()Ljava/lang/String; │ │ move-result-object v0 │ │ - invoke-static {v0}, Ljava/util/UUID;->fromString(Ljava/lang/String;)Ljava/util/UUID; │ + .line 508 │ + .local v0, "nextString":Ljava/lang/String; │ + const-string v2, "null" │ │ - move-result-object v0 │ + invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + │ + move-result v2 │ + │ + if-nez v2, :cond_0 │ + │ + new-instance v1, Ljava/net/URL; │ + │ + invoke-direct {v1, v0}, Ljava/net/URL;->(Ljava/lang/String;)V │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 499 │ - check-cast p2, Ljava/util/UUID; │ + .line 500 │ + check-cast p2, Ljava/net/URL; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ - invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$21;->write(Lcom/google/gson/stream/JsonWriter;Ljava/util/UUID;)V │ + invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$21;->write(Lcom/google/gson/stream/JsonWriter;Ljava/net/URL;)V │ │ return-void │ .end method │ │ -.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/util/UUID;)V │ +.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/net/URL;)V │ .locals 1 │ .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "value" # Ljava/util/UUID; │ + .param p2, "value" # Ljava/net/URL; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 510 │ + .line 512 │ if-nez p2, :cond_0 │ │ const/4 v0, 0x0 │ │ :goto_0 │ invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ │ - .line 511 │ + .line 513 │ return-void │ │ - .line 510 │ + .line 512 │ :cond_0 │ - invoke-virtual {p2}, Ljava/util/UUID;->toString()Ljava/lang/String; │ + invoke-virtual {p2}, Ljava/net/URL;->toExternalForm()Ljava/lang/String; │ │ move-result-object v0 │ │ goto :goto_0 │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$20.smali │ @@ -13,135 +13,131 @@ │ name = null │ .end annotation │ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Lcom/google/gson/TypeAdapter", │ "<", │ - "Ljava/net/InetAddress;", │ + "Ljava/lang/StringBuffer;", │ ">;" │ } │ .end annotation │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 480 │ + .line 482 │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 480 │ - invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$20;->read(Lcom/google/gson/stream/JsonReader;)Ljava/net/InetAddress; │ + .line 482 │ + invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$20;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/StringBuffer; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ -.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/net/InetAddress; │ +.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/StringBuffer; │ .locals 2 │ .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 483 │ + .line 485 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v0 │ │ sget-object v1, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ if-ne v0, v1, :cond_0 │ │ - .line 484 │ + .line 486 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ │ - .line 485 │ + .line 487 │ const/4 v0, 0x0 │ │ - .line 488 │ + .line 489 │ :goto_0 │ return-object v0 │ │ :cond_0 │ + new-instance v0, Ljava/lang/StringBuffer; │ + │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextString()Ljava/lang/String; │ │ - move-result-object v0 │ + move-result-object v1 │ │ - invoke-static {v0}, Ljava/net/InetAddress;->getByName(Ljava/lang/String;)Ljava/net/InetAddress; │ - │ - move-result-object v0 │ + invoke-direct {v0, v1}, Ljava/lang/StringBuffer;->(Ljava/lang/String;)V │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 480 │ - check-cast p2, Ljava/net/InetAddress; │ + .line 482 │ + check-cast p2, Ljava/lang/StringBuffer; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ - invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$20;->write(Lcom/google/gson/stream/JsonWriter;Ljava/net/InetAddress;)V │ + invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$20;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/StringBuffer;)V │ │ return-void │ .end method │ │ -.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/net/InetAddress;)V │ +.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/StringBuffer;)V │ .locals 1 │ .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "value" # Ljava/net/InetAddress; │ + .param p2, "value" # Ljava/lang/StringBuffer; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 492 │ + .line 493 │ if-nez p2, :cond_0 │ │ const/4 v0, 0x0 │ │ :goto_0 │ invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ │ - .line 493 │ + .line 494 │ return-void │ │ - .line 492 │ + .line 493 │ :cond_0 │ - invoke-virtual {p2}, Ljava/net/InetAddress;->getHostAddress()Ljava/lang/String; │ + invoke-virtual {p2}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ goto :goto_0 │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$22.smali │ @@ -1,82 +1,170 @@ │ .class final Lcom/google/gson/internal/bind/TypeAdapters$22; │ -.super Ljava/lang/Object; │ +.super Lcom/google/gson/TypeAdapter; │ .source "TypeAdapters.java" │ │ -# interfaces │ -.implements Lcom/google/gson/TypeAdapterFactory; │ - │ │ # annotations │ .annotation system Ldalvik/annotation/EnclosingClass; │ value = Lcom/google/gson/internal/bind/TypeAdapters; │ .end annotation │ │ .annotation system Ldalvik/annotation/InnerClass; │ accessFlags = 0x8 │ name = null │ .end annotation │ │ +.annotation system Ldalvik/annotation/Signature; │ + value = { │ + "Lcom/google/gson/TypeAdapter", │ + "<", │ + "Ljava/net/URI;", │ + ">;" │ + } │ +.end annotation │ + │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 516 │ - invoke-direct {p0}, Ljava/lang/Object;->()V │ + .line 518 │ + invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ -.method public create(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ - .locals 3 │ - .param p1, "gson" # Lcom/google/gson/Gson; │ - .annotation system Ldalvik/annotation/Signature; │ +.method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ + .locals 1 │ + .annotation system Ldalvik/annotation/Throws; │ value = { │ - "(", │ - "Lcom/google/gson/Gson;", │ - "Lcom/google/gson/reflect/TypeToken", │ - ";)", │ - "Lcom/google/gson/TypeAdapter", │ - ";" │ + Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 519 │ - .local p2, "typeToken":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken;" │ - invoke-virtual {p2}, Lcom/google/gson/reflect/TypeToken;->getRawType()Ljava/lang/Class; │ + .line 518 │ + invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$22;->read(Lcom/google/gson/stream/JsonReader;)Ljava/net/URI; │ │ - move-result-object v1 │ + move-result-object v0 │ + │ + return-object v0 │ +.end method │ │ - const-class v2, Ljava/sql/Timestamp; │ +.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/net/URI; │ + .locals 5 │ + .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/io/IOException; │ + } │ + .end annotation │ │ - if-eq v1, v2, :cond_0 │ + .prologue │ + const/4 v2, 0x0 │ │ - .line 520 │ - const/4 v1, 0x0 │ + .line 521 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ - .line 524 │ - :goto_0 │ - return-object v1 │ + move-result-object v3 │ + │ + sget-object v4, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ + │ + if-ne v3, v4, :cond_1 │ │ - .line 523 │ + .line 522 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ + │ + .line 527 │ :cond_0 │ - const-class v1, Ljava/util/Date; │ + :goto_0 │ + return-object v2 │ │ - invoke-virtual {p1, v1}, Lcom/google/gson/Gson;->getAdapter(Ljava/lang/Class;)Lcom/google/gson/TypeAdapter; │ + .line 526 │ + :cond_1 │ + :try_start_0 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextString()Ljava/lang/String; │ │ - move-result-object v0 │ + move-result-object v1 │ + │ + .line 527 │ + .local v1, "nextString":Ljava/lang/String; │ + const-string v3, "null" │ + │ + invoke-virtual {v3, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + │ + move-result v3 │ + │ + if-nez v3, :cond_0 │ + │ + new-instance v2, Ljava/net/URI; │ + │ + invoke-direct {v2, v1}, Ljava/net/URI;->(Ljava/lang/String;)V │ + :try_end_0 │ + .catch Ljava/net/URISyntaxException; {:try_start_0 .. :try_end_0} :catch_0 │ + │ + goto :goto_0 │ + │ + .line 528 │ + .end local v1 # "nextString":Ljava/lang/String; │ + :catch_0 │ + move-exception v0 │ + │ + .line 529 │ + .local v0, "e":Ljava/net/URISyntaxException; │ + new-instance v2, Lcom/google/gson/JsonIOException; │ │ - .line 524 │ - .local v0, "dateTypeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ - new-instance v1, Lcom/google/gson/internal/bind/TypeAdapters$22$1; │ + invoke-direct {v2, v0}, Lcom/google/gson/JsonIOException;->(Ljava/lang/Throwable;)V │ │ - invoke-direct {v1, p0, v0}, Lcom/google/gson/internal/bind/TypeAdapters$22$1;->(Lcom/google/gson/internal/bind/TypeAdapters$22;Lcom/google/gson/TypeAdapter;)V │ + throw v2 │ +.end method │ + │ +.method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ + .locals 0 │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/io/IOException; │ + } │ + .end annotation │ + │ + .prologue │ + .line 518 │ + check-cast p2, Ljava/net/URI; │ + │ + invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$22;->write(Lcom/google/gson/stream/JsonWriter;Ljava/net/URI;)V │ + │ + return-void │ +.end method │ + │ +.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/net/URI;)V │ + .locals 1 │ + .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ + .param p2, "value" # Ljava/net/URI; │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/io/IOException; │ + } │ + .end annotation │ + │ + .prologue │ + .line 534 │ + if-nez p2, :cond_0 │ + │ + const/4 v0, 0x0 │ + │ + :goto_0 │ + invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ + │ + .line 535 │ + return-void │ + │ + .line 534 │ + :cond_0 │ + invoke-virtual {p2}, Ljava/net/URI;->toASCIIString()Ljava/lang/String; │ + │ + move-result-object v0 │ │ goto :goto_0 │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$23.smali │ @@ -13,387 +13,131 @@ │ name = null │ .end annotation │ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Lcom/google/gson/TypeAdapter", │ "<", │ - "Ljava/util/Calendar;", │ + "Ljava/net/InetAddress;", │ ">;" │ } │ .end annotation │ │ │ -# static fields │ -.field private static final DAY_OF_MONTH:Ljava/lang/String; = "dayOfMonth" │ - │ -.field private static final HOUR_OF_DAY:Ljava/lang/String; = "hourOfDay" │ - │ -.field private static final MINUTE:Ljava/lang/String; = "minute" │ - │ -.field private static final MONTH:Ljava/lang/String; = "month" │ - │ -.field private static final SECOND:Ljava/lang/String; = "second" │ - │ -.field private static final YEAR:Ljava/lang/String; = "year" │ - │ - │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 537 │ + .line 540 │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 537 │ - invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$23;->read(Lcom/google/gson/stream/JsonReader;)Ljava/util/Calendar; │ + .line 540 │ + invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$23;->read(Lcom/google/gson/stream/JsonReader;)Ljava/net/InetAddress; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ -.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/util/Calendar; │ - .locals 10 │ +.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/net/InetAddress; │ + .locals 2 │ .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 547 │ + .line 543 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v0 │ │ - sget-object v9, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ + sget-object v1, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ - if-ne v0, v9, :cond_0 │ + if-ne v0, v1, :cond_0 │ │ - .line 548 │ + .line 544 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ │ - .line 549 │ + .line 545 │ const/4 v0, 0x0 │ │ - .line 576 │ + .line 548 │ :goto_0 │ return-object v0 │ │ - .line 551 │ :cond_0 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->beginObject()V │ - │ - .line 552 │ - const/4 v1, 0x0 │ - │ - .line 553 │ - .local v1, "year":I │ - const/4 v2, 0x0 │ - │ - .line 554 │ - .local v2, "month":I │ - const/4 v3, 0x0 │ - │ - .line 555 │ - .local v3, "dayOfMonth":I │ - const/4 v4, 0x0 │ - │ - .line 556 │ - .local v4, "hourOfDay":I │ - const/4 v5, 0x0 │ - │ - .line 557 │ - .local v5, "minute":I │ - const/4 v6, 0x0 │ - │ - .line 558 │ - .local v6, "second":I │ - :cond_1 │ - :goto_1 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextString()Ljava/lang/String; │ │ move-result-object v0 │ │ - sget-object v9, Lcom/google/gson/stream/JsonToken;->END_OBJECT:Lcom/google/gson/stream/JsonToken; │ - │ - if-eq v0, v9, :cond_7 │ - │ - .line 559 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextName()Ljava/lang/String; │ - │ - move-result-object v7 │ - │ - .line 560 │ - .local v7, "name":Ljava/lang/String; │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextInt()I │ - │ - move-result v8 │ - │ - .line 561 │ - .local v8, "value":I │ - const-string v0, "year" │ - │ - invoke-virtual {v0, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ - │ - move-result v0 │ - │ - if-eqz v0, :cond_2 │ - │ - .line 562 │ - move v1, v8 │ - │ - goto :goto_1 │ - │ - .line 563 │ - :cond_2 │ - const-string v0, "month" │ - │ - invoke-virtual {v0, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ - │ - move-result v0 │ - │ - if-eqz v0, :cond_3 │ - │ - .line 564 │ - move v2, v8 │ - │ - goto :goto_1 │ - │ - .line 565 │ - :cond_3 │ - const-string v0, "dayOfMonth" │ - │ - invoke-virtual {v0, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ - │ - move-result v0 │ - │ - if-eqz v0, :cond_4 │ - │ - .line 566 │ - move v3, v8 │ - │ - goto :goto_1 │ - │ - .line 567 │ - :cond_4 │ - const-string v0, "hourOfDay" │ - │ - invoke-virtual {v0, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ - │ - move-result v0 │ - │ - if-eqz v0, :cond_5 │ - │ - .line 568 │ - move v4, v8 │ - │ - goto :goto_1 │ - │ - .line 569 │ - :cond_5 │ - const-string v0, "minute" │ - │ - invoke-virtual {v0, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ - │ - move-result v0 │ - │ - if-eqz v0, :cond_6 │ - │ - .line 570 │ - move v5, v8 │ - │ - goto :goto_1 │ - │ - .line 571 │ - :cond_6 │ - const-string v0, "second" │ - │ - invoke-virtual {v0, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ - │ - move-result v0 │ - │ - if-eqz v0, :cond_1 │ + invoke-static {v0}, Ljava/net/InetAddress;->getByName(Ljava/lang/String;)Ljava/net/InetAddress; │ │ - .line 572 │ - move v6, v8 │ - │ - goto :goto_1 │ - │ - .line 575 │ - .end local v7 # "name":Ljava/lang/String; │ - .end local v8 # "value":I │ - :cond_7 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->endObject()V │ - │ - .line 576 │ - new-instance v0, Ljava/util/GregorianCalendar; │ - │ - invoke-direct/range {v0 .. v6}, Ljava/util/GregorianCalendar;->(IIIIII)V │ + move-result-object v0 │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 537 │ - check-cast p2, Ljava/util/Calendar; │ + .line 540 │ + check-cast p2, Ljava/net/InetAddress; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ - invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$23;->write(Lcom/google/gson/stream/JsonWriter;Ljava/util/Calendar;)V │ + invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$23;->write(Lcom/google/gson/stream/JsonWriter;Ljava/net/InetAddress;)V │ │ return-void │ .end method │ │ -.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/util/Calendar;)V │ - .locals 2 │ +.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/net/InetAddress;)V │ + .locals 1 │ .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "value" # Ljava/util/Calendar; │ + .param p2, "value" # Ljava/net/InetAddress; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 581 │ + .line 552 │ if-nez p2, :cond_0 │ │ - .line 582 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->nullValue()Lcom/google/gson/stream/JsonWriter; │ + const/4 v0, 0x0 │ │ - .line 599 │ :goto_0 │ + invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ + │ + .line 553 │ return-void │ │ - .line 585 │ + .line 552 │ :cond_0 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->beginObject()Lcom/google/gson/stream/JsonWriter; │ - │ - .line 586 │ - const-string v0, "year" │ - │ - invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->name(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ - │ - .line 587 │ - const/4 v0, 0x1 │ - │ - invoke-virtual {p2, v0}, Ljava/util/Calendar;->get(I)I │ - │ - move-result v0 │ - │ - int-to-long v0, v0 │ - │ - invoke-virtual {p1, v0, v1}, Lcom/google/gson/stream/JsonWriter;->value(J)Lcom/google/gson/stream/JsonWriter; │ - │ - .line 588 │ - const-string v0, "month" │ - │ - invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->name(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ - │ - .line 589 │ - const/4 v0, 0x2 │ - │ - invoke-virtual {p2, v0}, Ljava/util/Calendar;->get(I)I │ - │ - move-result v0 │ - │ - int-to-long v0, v0 │ - │ - invoke-virtual {p1, v0, v1}, Lcom/google/gson/stream/JsonWriter;->value(J)Lcom/google/gson/stream/JsonWriter; │ - │ - .line 590 │ - const-string v0, "dayOfMonth" │ - │ - invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->name(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ + invoke-virtual {p2}, Ljava/net/InetAddress;->getHostAddress()Ljava/lang/String; │ │ - .line 591 │ - const/4 v0, 0x5 │ - │ - invoke-virtual {p2, v0}, Ljava/util/Calendar;->get(I)I │ - │ - move-result v0 │ - │ - int-to-long v0, v0 │ - │ - invoke-virtual {p1, v0, v1}, Lcom/google/gson/stream/JsonWriter;->value(J)Lcom/google/gson/stream/JsonWriter; │ - │ - .line 592 │ - const-string v0, "hourOfDay" │ - │ - invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->name(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ - │ - .line 593 │ - const/16 v0, 0xb │ - │ - invoke-virtual {p2, v0}, Ljava/util/Calendar;->get(I)I │ - │ - move-result v0 │ - │ - int-to-long v0, v0 │ - │ - invoke-virtual {p1, v0, v1}, Lcom/google/gson/stream/JsonWriter;->value(J)Lcom/google/gson/stream/JsonWriter; │ - │ - .line 594 │ - const-string v0, "minute" │ - │ - invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->name(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ - │ - .line 595 │ - const/16 v0, 0xc │ - │ - invoke-virtual {p2, v0}, Ljava/util/Calendar;->get(I)I │ - │ - move-result v0 │ - │ - int-to-long v0, v0 │ - │ - invoke-virtual {p1, v0, v1}, Lcom/google/gson/stream/JsonWriter;->value(J)Lcom/google/gson/stream/JsonWriter; │ - │ - .line 596 │ - const-string v0, "second" │ - │ - invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->name(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ - │ - .line 597 │ - const/16 v0, 0xd │ - │ - invoke-virtual {p2, v0}, Ljava/util/Calendar;->get(I)I │ - │ - move-result v0 │ - │ - int-to-long v0, v0 │ - │ - invoke-virtual {p1, v0, v1}, Lcom/google/gson/stream/JsonWriter;->value(J)Lcom/google/gson/stream/JsonWriter; │ - │ - .line 598 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->endObject()Lcom/google/gson/stream/JsonWriter; │ + move-result-object v0 │ │ goto :goto_0 │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$24.smali │ @@ -13,221 +13,131 @@ │ name = null │ .end annotation │ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Lcom/google/gson/TypeAdapter", │ "<", │ - "Ljava/util/Locale;", │ + "Ljava/util/UUID;", │ ">;" │ } │ .end annotation │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 605 │ + .line 559 │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 605 │ - invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$24;->read(Lcom/google/gson/stream/JsonReader;)Ljava/util/Locale; │ + .line 559 │ + invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$24;->read(Lcom/google/gson/stream/JsonReader;)Ljava/util/UUID; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ -.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/util/Locale; │ - .locals 7 │ +.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/util/UUID; │ + .locals 2 │ .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 608 │ + .line 562 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ - move-result-object v5 │ + move-result-object v0 │ │ - sget-object v6, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ + sget-object v1, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ - if-ne v5, v6, :cond_0 │ + if-ne v0, v1, :cond_0 │ │ - .line 609 │ + .line 563 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ │ - .line 610 │ - const/4 v5, 0x0 │ + .line 564 │ + const/4 v0, 0x0 │ │ - .line 631 │ + .line 566 │ :goto_0 │ - return-object v5 │ + return-object v0 │ │ - .line 612 │ :cond_0 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextString()Ljava/lang/String; │ │ - move-result-object v2 │ - │ - .line 613 │ - .local v2, "locale":Ljava/lang/String; │ - new-instance v3, Ljava/util/StringTokenizer; │ - │ - const-string v5, "_" │ - │ - invoke-direct {v3, v2, v5}, Ljava/util/StringTokenizer;->(Ljava/lang/String;Ljava/lang/String;)V │ - │ - .line 614 │ - .local v3, "tokenizer":Ljava/util/StringTokenizer; │ - const/4 v1, 0x0 │ - │ - .line 615 │ - .local v1, "language":Ljava/lang/String; │ - const/4 v0, 0x0 │ - │ - .line 616 │ - .local v0, "country":Ljava/lang/String; │ - const/4 v4, 0x0 │ - │ - .line 617 │ - .local v4, "variant":Ljava/lang/String; │ - invoke-virtual {v3}, Ljava/util/StringTokenizer;->hasMoreElements()Z │ - │ - move-result v5 │ - │ - if-eqz v5, :cond_1 │ - │ - .line 618 │ - invoke-virtual {v3}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String; │ - │ - move-result-object v1 │ - │ - .line 620 │ - :cond_1 │ - invoke-virtual {v3}, Ljava/util/StringTokenizer;->hasMoreElements()Z │ - │ - move-result v5 │ - │ - if-eqz v5, :cond_2 │ - │ - .line 621 │ - invoke-virtual {v3}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String; │ - │ move-result-object v0 │ │ - .line 623 │ - :cond_2 │ - invoke-virtual {v3}, Ljava/util/StringTokenizer;->hasMoreElements()Z │ - │ - move-result v5 │ - │ - if-eqz v5, :cond_3 │ - │ - .line 624 │ - invoke-virtual {v3}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String; │ - │ - move-result-object v4 │ - │ - .line 626 │ - :cond_3 │ - if-nez v0, :cond_4 │ - │ - if-nez v4, :cond_4 │ - │ - .line 627 │ - new-instance v5, Ljava/util/Locale; │ - │ - invoke-direct {v5, v1}, Ljava/util/Locale;->(Ljava/lang/String;)V │ + invoke-static {v0}, Ljava/util/UUID;->fromString(Ljava/lang/String;)Ljava/util/UUID; │ │ - goto :goto_0 │ - │ - .line 628 │ - :cond_4 │ - if-nez v4, :cond_5 │ - │ - .line 629 │ - new-instance v5, Ljava/util/Locale; │ - │ - invoke-direct {v5, v1, v0}, Ljava/util/Locale;->(Ljava/lang/String;Ljava/lang/String;)V │ - │ - goto :goto_0 │ - │ - .line 631 │ - :cond_5 │ - new-instance v5, Ljava/util/Locale; │ - │ - invoke-direct {v5, v1, v0, v4}, Ljava/util/Locale;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ + move-result-object v0 │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 605 │ - check-cast p2, Ljava/util/Locale; │ + .line 559 │ + check-cast p2, Ljava/util/UUID; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ - invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$24;->write(Lcom/google/gson/stream/JsonWriter;Ljava/util/Locale;)V │ + invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$24;->write(Lcom/google/gson/stream/JsonWriter;Ljava/util/UUID;)V │ │ return-void │ .end method │ │ -.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/util/Locale;)V │ +.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/util/UUID;)V │ .locals 1 │ .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "value" # Ljava/util/Locale; │ + .param p2, "value" # Ljava/util/UUID; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 636 │ + .line 570 │ if-nez p2, :cond_0 │ │ const/4 v0, 0x0 │ │ :goto_0 │ invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ │ - .line 637 │ + .line 571 │ return-void │ │ - .line 636 │ + .line 570 │ :cond_0 │ - invoke-virtual {p2}, Ljava/util/Locale;->toString()Ljava/lang/String; │ + invoke-virtual {p2}, Ljava/util/UUID;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ goto :goto_0 │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$27.smali │ @@ -1,79 +1,395 @@ │ .class final Lcom/google/gson/internal/bind/TypeAdapters$27; │ -.super Ljava/lang/Object; │ +.super Lcom/google/gson/TypeAdapter; │ .source "TypeAdapters.java" │ │ -# interfaces │ -.implements Lcom/google/gson/TypeAdapterFactory; │ - │ │ # annotations │ -.annotation system Ldalvik/annotation/EnclosingMethod; │ - value = Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Lcom/google/gson/reflect/TypeToken;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ +.annotation system Ldalvik/annotation/EnclosingClass; │ + value = Lcom/google/gson/internal/bind/TypeAdapters; │ .end annotation │ │ .annotation system Ldalvik/annotation/InnerClass; │ accessFlags = 0x8 │ name = null │ .end annotation │ │ +.annotation system Ldalvik/annotation/Signature; │ + value = { │ + "Lcom/google/gson/TypeAdapter", │ + "<", │ + "Ljava/util/Calendar;", │ + ">;" │ + } │ +.end annotation │ + │ + │ +# static fields │ +.field private static final DAY_OF_MONTH:Ljava/lang/String; = "dayOfMonth" │ + │ +.field private static final HOUR_OF_DAY:Ljava/lang/String; = "hourOfDay" │ │ -# instance fields │ -.field final synthetic val$type:Lcom/google/gson/reflect/TypeToken; │ +.field private static final MINUTE:Ljava/lang/String; = "minute" │ │ -.field final synthetic val$typeAdapter:Lcom/google/gson/TypeAdapter; │ +.field private static final MONTH:Ljava/lang/String; = "month" │ + │ +.field private static final SECOND:Ljava/lang/String; = "second" │ + │ +.field private static final YEAR:Ljava/lang/String; = "year" │ │ │ # direct methods │ -.method constructor (Lcom/google/gson/reflect/TypeToken;Lcom/google/gson/TypeAdapter;)V │ +.method constructor ()V │ .locals 0 │ │ .prologue │ - .line 765 │ - iput-object p1, p0, Lcom/google/gson/internal/bind/TypeAdapters$27;->val$type:Lcom/google/gson/reflect/TypeToken; │ - │ - iput-object p2, p0, Lcom/google/gson/internal/bind/TypeAdapters$27;->val$typeAdapter:Lcom/google/gson/TypeAdapter; │ - │ - invoke-direct {p0}, Ljava/lang/Object;->()V │ + .line 609 │ + invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ -.method public create(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ +.method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "gson" # Lcom/google/gson/Gson; │ - .annotation system Ldalvik/annotation/Signature; │ + .annotation system Ldalvik/annotation/Throws; │ value = { │ - "(", │ - "Lcom/google/gson/Gson;", │ - "Lcom/google/gson/reflect/TypeToken", │ - ";)", │ - "Lcom/google/gson/TypeAdapter", │ - ";" │ + Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 768 │ - .local p2, "typeToken":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken;" │ - iget-object v0, p0, Lcom/google/gson/internal/bind/TypeAdapters$27;->val$type:Lcom/google/gson/reflect/TypeToken; │ + .line 609 │ + invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$27;->read(Lcom/google/gson/stream/JsonReader;)Ljava/util/Calendar; │ │ - invoke-virtual {p2, v0}, Lcom/google/gson/reflect/TypeToken;->equals(Ljava/lang/Object;)Z │ + move-result-object v0 │ │ - move-result v0 │ + return-object v0 │ +.end method │ + │ +.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/util/Calendar; │ + .locals 10 │ + .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/io/IOException; │ + } │ + .end annotation │ + │ + .prologue │ + .line 619 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ + │ + move-result-object v0 │ + │ + sget-object v9, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ - if-eqz v0, :cond_0 │ + if-ne v0, v9, :cond_0 │ │ - iget-object v0, p0, Lcom/google/gson/internal/bind/TypeAdapters$27;->val$typeAdapter:Lcom/google/gson/TypeAdapter; │ + .line 620 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ │ + .line 621 │ + const/4 v0, 0x0 │ + │ + .line 648 │ :goto_0 │ return-object v0 │ │ + .line 623 │ :cond_0 │ - const/4 v0, 0x0 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->beginObject()V │ + │ + .line 624 │ + const/4 v1, 0x0 │ + │ + .line 625 │ + .local v1, "year":I │ + const/4 v2, 0x0 │ + │ + .line 626 │ + .local v2, "month":I │ + const/4 v3, 0x0 │ + │ + .line 627 │ + .local v3, "dayOfMonth":I │ + const/4 v4, 0x0 │ + │ + .line 628 │ + .local v4, "hourOfDay":I │ + const/4 v5, 0x0 │ + │ + .line 629 │ + .local v5, "minute":I │ + const/4 v6, 0x0 │ + │ + .line 630 │ + .local v6, "second":I │ + :cond_1 │ + :goto_1 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ + │ + move-result-object v0 │ + │ + sget-object v9, Lcom/google/gson/stream/JsonToken;->END_OBJECT:Lcom/google/gson/stream/JsonToken; │ + │ + if-eq v0, v9, :cond_7 │ + │ + .line 631 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextName()Ljava/lang/String; │ + │ + move-result-object v7 │ + │ + .line 632 │ + .local v7, "name":Ljava/lang/String; │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextInt()I │ + │ + move-result v8 │ + │ + .line 633 │ + .local v8, "value":I │ + const-string v0, "year" │ + │ + invoke-virtual {v0, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + │ + move-result v0 │ + │ + if-eqz v0, :cond_2 │ + │ + .line 634 │ + move v1, v8 │ + │ + goto :goto_1 │ + │ + .line 635 │ + :cond_2 │ + const-string v0, "month" │ + │ + invoke-virtual {v0, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + │ + move-result v0 │ + │ + if-eqz v0, :cond_3 │ + │ + .line 636 │ + move v2, v8 │ + │ + goto :goto_1 │ + │ + .line 637 │ + :cond_3 │ + const-string v0, "dayOfMonth" │ + │ + invoke-virtual {v0, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + │ + move-result v0 │ + │ + if-eqz v0, :cond_4 │ + │ + .line 638 │ + move v3, v8 │ + │ + goto :goto_1 │ + │ + .line 639 │ + :cond_4 │ + const-string v0, "hourOfDay" │ + │ + invoke-virtual {v0, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + │ + move-result v0 │ + │ + if-eqz v0, :cond_5 │ + │ + .line 640 │ + move v4, v8 │ + │ + goto :goto_1 │ + │ + .line 641 │ + :cond_5 │ + const-string v0, "minute" │ + │ + invoke-virtual {v0, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + │ + move-result v0 │ + │ + if-eqz v0, :cond_6 │ + │ + .line 642 │ + move v5, v8 │ + │ + goto :goto_1 │ + │ + .line 643 │ + :cond_6 │ + const-string v0, "second" │ + │ + invoke-virtual {v0, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + │ + move-result v0 │ + │ + if-eqz v0, :cond_1 │ + │ + .line 644 │ + move v6, v8 │ + │ + goto :goto_1 │ + │ + .line 647 │ + .end local v7 # "name":Ljava/lang/String; │ + .end local v8 # "value":I │ + :cond_7 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->endObject()V │ + │ + .line 648 │ + new-instance v0, Ljava/util/GregorianCalendar; │ + │ + invoke-direct/range {v0 .. v6}, Ljava/util/GregorianCalendar;->(IIIIII)V │ + │ + goto :goto_0 │ +.end method │ + │ +.method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ + .locals 0 │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/io/IOException; │ + } │ + .end annotation │ + │ + .prologue │ + .line 609 │ + check-cast p2, Ljava/util/Calendar; │ + │ + invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$27;->write(Lcom/google/gson/stream/JsonWriter;Ljava/util/Calendar;)V │ + │ + return-void │ +.end method │ + │ +.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/util/Calendar;)V │ + .locals 2 │ + .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ + .param p2, "value" # Ljava/util/Calendar; │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/io/IOException; │ + } │ + .end annotation │ + │ + .prologue │ + .line 653 │ + if-nez p2, :cond_0 │ + │ + .line 654 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->nullValue()Lcom/google/gson/stream/JsonWriter; │ + │ + .line 671 │ + :goto_0 │ + return-void │ + │ + .line 657 │ + :cond_0 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->beginObject()Lcom/google/gson/stream/JsonWriter; │ + │ + .line 658 │ + const-string v0, "year" │ + │ + invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->name(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ + │ + .line 659 │ + const/4 v0, 0x1 │ + │ + invoke-virtual {p2, v0}, Ljava/util/Calendar;->get(I)I │ + │ + move-result v0 │ + │ + int-to-long v0, v0 │ + │ + invoke-virtual {p1, v0, v1}, Lcom/google/gson/stream/JsonWriter;->value(J)Lcom/google/gson/stream/JsonWriter; │ + │ + .line 660 │ + const-string v0, "month" │ + │ + invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->name(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ + │ + .line 661 │ + const/4 v0, 0x2 │ + │ + invoke-virtual {p2, v0}, Ljava/util/Calendar;->get(I)I │ + │ + move-result v0 │ + │ + int-to-long v0, v0 │ + │ + invoke-virtual {p1, v0, v1}, Lcom/google/gson/stream/JsonWriter;->value(J)Lcom/google/gson/stream/JsonWriter; │ + │ + .line 662 │ + const-string v0, "dayOfMonth" │ + │ + invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->name(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ + │ + .line 663 │ + const/4 v0, 0x5 │ + │ + invoke-virtual {p2, v0}, Ljava/util/Calendar;->get(I)I │ + │ + move-result v0 │ + │ + int-to-long v0, v0 │ + │ + invoke-virtual {p1, v0, v1}, Lcom/google/gson/stream/JsonWriter;->value(J)Lcom/google/gson/stream/JsonWriter; │ + │ + .line 664 │ + const-string v0, "hourOfDay" │ + │ + invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->name(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ + │ + .line 665 │ + const/16 v0, 0xb │ + │ + invoke-virtual {p2, v0}, Ljava/util/Calendar;->get(I)I │ + │ + move-result v0 │ + │ + int-to-long v0, v0 │ + │ + invoke-virtual {p1, v0, v1}, Lcom/google/gson/stream/JsonWriter;->value(J)Lcom/google/gson/stream/JsonWriter; │ + │ + .line 666 │ + const-string v0, "minute" │ + │ + invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->name(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ + │ + .line 667 │ + const/16 v0, 0xc │ + │ + invoke-virtual {p2, v0}, Ljava/util/Calendar;->get(I)I │ + │ + move-result v0 │ + │ + int-to-long v0, v0 │ + │ + invoke-virtual {p1, v0, v1}, Lcom/google/gson/stream/JsonWriter;->value(J)Lcom/google/gson/stream/JsonWriter; │ + │ + .line 668 │ + const-string v0, "second" │ + │ + invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->name(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ + │ + .line 669 │ + const/16 v0, 0xd │ + │ + invoke-virtual {p2, v0}, Ljava/util/Calendar;->get(I)I │ + │ + move-result v0 │ + │ + int-to-long v0, v0 │ + │ + invoke-virtual {p1, v0, v1}, Lcom/google/gson/stream/JsonWriter;->value(J)Lcom/google/gson/stream/JsonWriter; │ + │ + .line 670 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->endObject()Lcom/google/gson/stream/JsonWriter; │ │ goto :goto_0 │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$25.smali │ @@ -13,473 +13,103 @@ │ name = null │ .end annotation │ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Lcom/google/gson/TypeAdapter", │ "<", │ - "Lcom/google/gson/JsonElement;", │ + "Ljava/util/Currency;", │ ">;" │ } │ .end annotation │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 642 │ + .line 576 │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ -.method public read(Lcom/google/gson/stream/JsonReader;)Lcom/google/gson/JsonElement; │ - .locals 5 │ - .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ +.method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ + .locals 1 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 644 │ - sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters$32;->$SwitchMap$com$google$gson$stream$JsonToken:[I │ - │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ - │ - move-result-object v4 │ - │ - invoke-virtual {v4}, Lcom/google/gson/stream/JsonToken;->ordinal()I │ - │ - move-result v4 │ - │ - aget v3, v3, v4 │ - │ - packed-switch v3, :pswitch_data_0 │ - │ - .line 676 │ - new-instance v3, Ljava/lang/IllegalArgumentException; │ - │ - invoke-direct {v3}, Ljava/lang/IllegalArgumentException;->()V │ + .line 576 │ + invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$25;->read(Lcom/google/gson/stream/JsonReader;)Ljava/util/Currency; │ │ - throw v3 │ - │ - .line 646 │ - :pswitch_0 │ - new-instance v0, Lcom/google/gson/JsonPrimitive; │ - │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextString()Ljava/lang/String; │ - │ - move-result-object v3 │ - │ - invoke-direct {v0, v3}, Lcom/google/gson/JsonPrimitive;->(Ljava/lang/String;)V │ + move-result-object v0 │ │ - .line 670 │ - :goto_0 │ return-object v0 │ - │ - .line 648 │ - :pswitch_1 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextString()Ljava/lang/String; │ - │ - move-result-object v1 │ - │ - .line 649 │ - .local v1, "number":Ljava/lang/String; │ - new-instance v0, Lcom/google/gson/JsonPrimitive; │ - │ - new-instance v3, Lcom/google/gson/internal/LazilyParsedNumber; │ - │ - invoke-direct {v3, v1}, Lcom/google/gson/internal/LazilyParsedNumber;->(Ljava/lang/String;)V │ - │ - invoke-direct {v0, v3}, Lcom/google/gson/JsonPrimitive;->(Ljava/lang/Number;)V │ - │ - goto :goto_0 │ - │ - .line 651 │ - .end local v1 # "number":Ljava/lang/String; │ - :pswitch_2 │ - new-instance v0, Lcom/google/gson/JsonPrimitive; │ - │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextBoolean()Z │ - │ - move-result v3 │ - │ - invoke-static {v3}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ - │ - move-result-object v3 │ - │ - invoke-direct {v0, v3}, Lcom/google/gson/JsonPrimitive;->(Ljava/lang/Boolean;)V │ - │ - goto :goto_0 │ - │ - .line 653 │ - :pswitch_3 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ - │ - .line 654 │ - sget-object v0, Lcom/google/gson/JsonNull;->INSTANCE:Lcom/google/gson/JsonNull; │ - │ - goto :goto_0 │ - │ - .line 656 │ - :pswitch_4 │ - new-instance v0, Lcom/google/gson/JsonArray; │ - │ - invoke-direct {v0}, Lcom/google/gson/JsonArray;->()V │ - │ - .line 657 │ - .local v0, "array":Lcom/google/gson/JsonArray; │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->beginArray()V │ - │ - .line 658 │ - :goto_1 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->hasNext()Z │ - │ - move-result v3 │ - │ - if-eqz v3, :cond_0 │ - │ - .line 659 │ - invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$25;->read(Lcom/google/gson/stream/JsonReader;)Lcom/google/gson/JsonElement; │ - │ - move-result-object v3 │ - │ - invoke-virtual {v0, v3}, Lcom/google/gson/JsonArray;->add(Lcom/google/gson/JsonElement;)V │ - │ - goto :goto_1 │ - │ - .line 661 │ - :cond_0 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->endArray()V │ - │ - goto :goto_0 │ - │ - .line 664 │ - .end local v0 # "array":Lcom/google/gson/JsonArray; │ - :pswitch_5 │ - new-instance v2, Lcom/google/gson/JsonObject; │ - │ - invoke-direct {v2}, Lcom/google/gson/JsonObject;->()V │ - │ - .line 665 │ - .local v2, "object":Lcom/google/gson/JsonObject; │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->beginObject()V │ - │ - .line 666 │ - :goto_2 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->hasNext()Z │ - │ - move-result v3 │ - │ - if-eqz v3, :cond_1 │ - │ - .line 667 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextName()Ljava/lang/String; │ - │ - move-result-object v3 │ - │ - invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$25;->read(Lcom/google/gson/stream/JsonReader;)Lcom/google/gson/JsonElement; │ - │ - move-result-object v4 │ - │ - invoke-virtual {v2, v3, v4}, Lcom/google/gson/JsonObject;->add(Ljava/lang/String;Lcom/google/gson/JsonElement;)V │ - │ - goto :goto_2 │ - │ - .line 669 │ - :cond_1 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->endObject()V │ - │ - move-object v0, v2 │ - │ - .line 670 │ - goto :goto_0 │ - │ - .line 644 │ - nop │ - │ - :pswitch_data_0 │ - .packed-switch 0x1 │ - :pswitch_1 │ - :pswitch_2 │ - :pswitch_0 │ - :pswitch_3 │ - :pswitch_4 │ - :pswitch_5 │ - .end packed-switch │ .end method │ │ -.method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ +.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/util/Currency; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ + .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 642 │ - invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$25;->read(Lcom/google/gson/stream/JsonReader;)Lcom/google/gson/JsonElement; │ + .line 579 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextString()Ljava/lang/String; │ + │ + move-result-object v0 │ + │ + invoke-static {v0}, Ljava/util/Currency;->getInstance(Ljava/lang/String;)Ljava/util/Currency; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ -.method public write(Lcom/google/gson/stream/JsonWriter;Lcom/google/gson/JsonElement;)V │ - .locals 7 │ - .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "value" # Lcom/google/gson/JsonElement; │ +.method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ + .locals 0 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 681 │ - if-eqz p2, :cond_0 │ + .line 576 │ + check-cast p2, Ljava/util/Currency; │ │ - invoke-virtual {p2}, Lcom/google/gson/JsonElement;->isJsonNull()Z │ + invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$25;->write(Lcom/google/gson/stream/JsonWriter;Ljava/util/Currency;)V │ │ - move-result v4 │ - │ - if-eqz v4, :cond_1 │ - │ - .line 682 │ - :cond_0 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->nullValue()Lcom/google/gson/stream/JsonWriter; │ - │ - .line 711 │ - :goto_0 │ return-void │ - │ - .line 683 │ - :cond_1 │ - invoke-virtual {p2}, Lcom/google/gson/JsonElement;->isJsonPrimitive()Z │ - │ - move-result v4 │ - │ - if-eqz v4, :cond_4 │ - │ - .line 684 │ - invoke-virtual {p2}, Lcom/google/gson/JsonElement;->getAsJsonPrimitive()Lcom/google/gson/JsonPrimitive; │ - │ - move-result-object v3 │ - │ - .line 685 │ - .local v3, "primitive":Lcom/google/gson/JsonPrimitive; │ - invoke-virtual {v3}, Lcom/google/gson/JsonPrimitive;->isNumber()Z │ - │ - move-result v4 │ - │ - if-eqz v4, :cond_2 │ - │ - .line 686 │ - invoke-virtual {v3}, Lcom/google/gson/JsonPrimitive;->getAsNumber()Ljava/lang/Number; │ - │ - move-result-object v4 │ - │ - invoke-virtual {p1, v4}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/Number;)Lcom/google/gson/stream/JsonWriter; │ - │ - goto :goto_0 │ - │ - .line 687 │ - :cond_2 │ - invoke-virtual {v3}, Lcom/google/gson/JsonPrimitive;->isBoolean()Z │ - │ - move-result v4 │ - │ - if-eqz v4, :cond_3 │ - │ - .line 688 │ - invoke-virtual {v3}, Lcom/google/gson/JsonPrimitive;->getAsBoolean()Z │ - │ - move-result v4 │ - │ - invoke-virtual {p1, v4}, Lcom/google/gson/stream/JsonWriter;->value(Z)Lcom/google/gson/stream/JsonWriter; │ - │ - goto :goto_0 │ - │ - .line 690 │ - :cond_3 │ - invoke-virtual {v3}, Lcom/google/gson/JsonPrimitive;->getAsString()Ljava/lang/String; │ - │ - move-result-object v4 │ - │ - invoke-virtual {p1, v4}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ - │ - goto :goto_0 │ - │ - .line 693 │ - .end local v3 # "primitive":Lcom/google/gson/JsonPrimitive; │ - :cond_4 │ - invoke-virtual {p2}, Lcom/google/gson/JsonElement;->isJsonArray()Z │ - │ - move-result v4 │ - │ - if-eqz v4, :cond_6 │ - │ - .line 694 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->beginArray()Lcom/google/gson/stream/JsonWriter; │ - │ - .line 695 │ - invoke-virtual {p2}, Lcom/google/gson/JsonElement;->getAsJsonArray()Lcom/google/gson/JsonArray; │ - │ - move-result-object v4 │ - │ - invoke-virtual {v4}, Lcom/google/gson/JsonArray;->iterator()Ljava/util/Iterator; │ - │ - move-result-object v2 │ - │ - .local v2, "i$":Ljava/util/Iterator; │ - :goto_1 │ - invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ - │ - move-result v4 │ - │ - if-eqz v4, :cond_5 │ - │ - invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ - │ - move-result-object v0 │ - │ - check-cast v0, Lcom/google/gson/JsonElement; │ - │ - .line 696 │ - .local v0, "e":Lcom/google/gson/JsonElement; │ - invoke-virtual {p0, p1, v0}, Lcom/google/gson/internal/bind/TypeAdapters$25;->write(Lcom/google/gson/stream/JsonWriter;Lcom/google/gson/JsonElement;)V │ - │ - goto :goto_1 │ - │ - .line 698 │ - .end local v0 # "e":Lcom/google/gson/JsonElement; │ - :cond_5 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->endArray()Lcom/google/gson/stream/JsonWriter; │ - │ - goto :goto_0 │ - │ - .line 700 │ - .end local v2 # "i$":Ljava/util/Iterator; │ - :cond_6 │ - invoke-virtual {p2}, Lcom/google/gson/JsonElement;->isJsonObject()Z │ - │ - move-result v4 │ - │ - if-eqz v4, :cond_8 │ - │ - .line 701 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->beginObject()Lcom/google/gson/stream/JsonWriter; │ - │ - .line 702 │ - invoke-virtual {p2}, Lcom/google/gson/JsonElement;->getAsJsonObject()Lcom/google/gson/JsonObject; │ - │ - move-result-object v4 │ - │ - invoke-virtual {v4}, Lcom/google/gson/JsonObject;->entrySet()Ljava/util/Set; │ - │ - move-result-object v4 │ - │ - invoke-interface {v4}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ - │ - move-result-object v2 │ - │ - .restart local v2 # "i$":Ljava/util/Iterator; │ - :goto_2 │ - invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ - │ - move-result v4 │ - │ - if-eqz v4, :cond_7 │ - │ - invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ - │ - move-result-object v1 │ - │ - check-cast v1, Ljava/util/Map$Entry; │ - │ - .line 703 │ - .local v1, "e":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry;" │ - invoke-interface {v1}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; │ - │ - move-result-object v4 │ - │ - check-cast v4, Ljava/lang/String; │ - │ - invoke-virtual {p1, v4}, Lcom/google/gson/stream/JsonWriter;->name(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ - │ - .line 704 │ - invoke-interface {v1}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; │ - │ - move-result-object v4 │ - │ - check-cast v4, Lcom/google/gson/JsonElement; │ - │ - invoke-virtual {p0, p1, v4}, Lcom/google/gson/internal/bind/TypeAdapters$25;->write(Lcom/google/gson/stream/JsonWriter;Lcom/google/gson/JsonElement;)V │ - │ - goto :goto_2 │ - │ - .line 706 │ - .end local v1 # "e":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry;" │ - :cond_7 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->endObject()Lcom/google/gson/stream/JsonWriter; │ - │ - goto/16 :goto_0 │ - │ - .line 709 │ - .end local v2 # "i$":Ljava/util/Iterator; │ - :cond_8 │ - new-instance v4, Ljava/lang/IllegalArgumentException; │ - │ - new-instance v5, Ljava/lang/StringBuilder; │ - │ - invoke-direct {v5}, Ljava/lang/StringBuilder;->()V │ - │ - const-string v6, "Couldn\'t write " │ - │ - invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v5 │ - │ - invoke-virtual {p2}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ - │ - move-result-object v6 │ - │ - invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ - │ - move-result-object v5 │ - │ - invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ - │ - move-result-object v5 │ - │ - invoke-direct {v4, v5}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ - │ - throw v4 │ .end method │ │ -.method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ - .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ +.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/util/Currency;)V │ + .locals 1 │ + .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ + .param p2, "value" # Ljava/util/Currency; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 642 │ - check-cast p2, Lcom/google/gson/JsonElement; │ + .line 583 │ + invoke-virtual {p2}, Ljava/util/Currency;->getCurrencyCode()Ljava/lang/String; │ + │ + move-result-object v0 │ │ - .end local p2 # "x1":Ljava/lang/Object; │ - invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$25;->write(Lcom/google/gson/stream/JsonWriter;Lcom/google/gson/JsonElement;)V │ + invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ │ + .line 584 │ return-void │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$26.smali │ @@ -18,24 +18,24 @@ │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 749 │ + .line 588 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public create(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ - .locals 2 │ + .locals 3 │ .param p1, "gson" # Lcom/google/gson/Gson; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Lcom/google/gson/Gson;", │ @@ -43,56 +43,40 @@ │ ";)", │ "Lcom/google/gson/TypeAdapter", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 752 │ + .line 591 │ .local p2, "typeToken":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken;" │ invoke-virtual {p2}, Lcom/google/gson/reflect/TypeToken;->getRawType()Ljava/lang/Class; │ │ - move-result-object v0 │ - │ - .line 753 │ - .local v0, "rawType":Ljava/lang/Class;, "Ljava/lang/Class<-TT;>;" │ - const-class v1, Ljava/lang/Enum; │ - │ - invoke-virtual {v1, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z │ - │ - move-result v1 │ - │ - if-eqz v1, :cond_0 │ + move-result-object v1 │ │ - const-class v1, Ljava/lang/Enum; │ + const-class v2, Ljava/sql/Timestamp; │ │ - if-ne v0, v1, :cond_1 │ + if-eq v1, v2, :cond_0 │ │ - .line 754 │ - :cond_0 │ + .line 592 │ const/4 v1, 0x0 │ │ - .line 759 │ + .line 596 │ :goto_0 │ return-object v1 │ │ - .line 756 │ - :cond_1 │ - invoke-virtual {v0}, Ljava/lang/Class;->isEnum()Z │ - │ - move-result v1 │ - │ - if-nez v1, :cond_2 │ + .line 595 │ + :cond_0 │ + const-class v1, Ljava/util/Date; │ │ - .line 757 │ - invoke-virtual {v0}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class; │ + invoke-virtual {p1, v1}, Lcom/google/gson/Gson;->getAdapter(Ljava/lang/Class;)Lcom/google/gson/TypeAdapter; │ │ move-result-object v0 │ │ - .line 759 │ - :cond_2 │ - new-instance v1, Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter; │ + .line 596 │ + .local v0, "dateTypeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ + new-instance v1, Lcom/google/gson/internal/bind/TypeAdapters$26$1; │ │ - invoke-direct {v1, v0}, Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter;->(Ljava/lang/Class;)V │ + invoke-direct {v1, p0, v0}, Lcom/google/gson/internal/bind/TypeAdapters$26$1;->(Lcom/google/gson/internal/bind/TypeAdapters$26;Lcom/google/gson/TypeAdapter;)V │ │ goto :goto_0 │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$28.smali │ @@ -1,129 +1,229 @@ │ .class final Lcom/google/gson/internal/bind/TypeAdapters$28; │ -.super Ljava/lang/Object; │ +.super Lcom/google/gson/TypeAdapter; │ .source "TypeAdapters.java" │ │ -# interfaces │ -.implements Lcom/google/gson/TypeAdapterFactory; │ - │ │ # annotations │ -.annotation system Ldalvik/annotation/EnclosingMethod; │ - value = Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ +.annotation system Ldalvik/annotation/EnclosingClass; │ + value = Lcom/google/gson/internal/bind/TypeAdapters; │ .end annotation │ │ .annotation system Ldalvik/annotation/InnerClass; │ accessFlags = 0x8 │ name = null │ .end annotation │ │ - │ -# instance fields │ -.field final synthetic val$type:Ljava/lang/Class; │ - │ -.field final synthetic val$typeAdapter:Lcom/google/gson/TypeAdapter; │ +.annotation system Ldalvik/annotation/Signature; │ + value = { │ + "Lcom/google/gson/TypeAdapter", │ + "<", │ + "Ljava/util/Locale;", │ + ">;" │ + } │ +.end annotation │ │ │ # direct methods │ -.method constructor (Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)V │ +.method constructor ()V │ .locals 0 │ │ .prologue │ - .line 775 │ - iput-object p1, p0, Lcom/google/gson/internal/bind/TypeAdapters$28;->val$type:Ljava/lang/Class; │ - │ - iput-object p2, p0, Lcom/google/gson/internal/bind/TypeAdapters$28;->val$typeAdapter:Lcom/google/gson/TypeAdapter; │ - │ - invoke-direct {p0}, Ljava/lang/Object;->()V │ + .line 677 │ + invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ -.method public create(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ - .locals 2 │ - .param p1, "gson" # Lcom/google/gson/Gson; │ - .annotation system Ldalvik/annotation/Signature; │ +.method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ + .locals 1 │ + .annotation system Ldalvik/annotation/Throws; │ value = { │ - "(", │ - "Lcom/google/gson/Gson;", │ - "Lcom/google/gson/reflect/TypeToken", │ - ";)", │ - "Lcom/google/gson/TypeAdapter", │ - ";" │ + Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 778 │ - .local p2, "typeToken":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken;" │ - invoke-virtual {p2}, Lcom/google/gson/reflect/TypeToken;->getRawType()Ljava/lang/Class; │ + .line 677 │ + invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$28;->read(Lcom/google/gson/stream/JsonReader;)Ljava/util/Locale; │ │ move-result-object v0 │ │ - iget-object v1, p0, Lcom/google/gson/internal/bind/TypeAdapters$28;->val$type:Ljava/lang/Class; │ + return-object v0 │ +.end method │ + │ +.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/util/Locale; │ + .locals 7 │ + .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/io/IOException; │ + } │ + .end annotation │ + │ + .prologue │ + .line 680 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ - if-ne v0, v1, :cond_0 │ + move-result-object v5 │ │ - iget-object v0, p0, Lcom/google/gson/internal/bind/TypeAdapters$28;->val$typeAdapter:Lcom/google/gson/TypeAdapter; │ + sget-object v6, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ + if-ne v5, v6, :cond_0 │ + │ + .line 681 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ + │ + .line 682 │ + const/4 v5, 0x0 │ + │ + .line 703 │ :goto_0 │ - return-object v0 │ + return-object v5 │ │ + .line 684 │ :cond_0 │ - const/4 v0, 0x0 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextString()Ljava/lang/String; │ │ - goto :goto_0 │ -.end method │ + move-result-object v2 │ │ -.method public toString()Ljava/lang/String; │ - .locals 2 │ + .line 685 │ + .local v2, "locale":Ljava/lang/String; │ + new-instance v3, Ljava/util/StringTokenizer; │ │ - .prologue │ - .line 781 │ - new-instance v0, Ljava/lang/StringBuilder; │ + const-string v5, "_" │ │ - invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v3, v2, v5}, Ljava/util/StringTokenizer;->(Ljava/lang/String;Ljava/lang/String;)V │ │ - const-string v1, "Factory[type=" │ + .line 686 │ + .local v3, "tokenizer":Ljava/util/StringTokenizer; │ + const/4 v1, 0x0 │ │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + .line 687 │ + .local v1, "language":Ljava/lang/String; │ + const/4 v0, 0x0 │ │ - move-result-object v0 │ + .line 688 │ + .local v0, "country":Ljava/lang/String; │ + const/4 v4, 0x0 │ + │ + .line 689 │ + .local v4, "variant":Ljava/lang/String; │ + invoke-virtual {v3}, Ljava/util/StringTokenizer;->hasMoreElements()Z │ │ - iget-object v1, p0, Lcom/google/gson/internal/bind/TypeAdapters$28;->val$type:Ljava/lang/Class; │ + move-result v5 │ │ - invoke-virtual {v1}, Ljava/lang/Class;->getName()Ljava/lang/String; │ + if-eqz v5, :cond_1 │ + │ + .line 690 │ + invoke-virtual {v3}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String; │ │ move-result-object v1 │ │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + .line 692 │ + :cond_1 │ + invoke-virtual {v3}, Ljava/util/StringTokenizer;->hasMoreElements()Z │ │ - move-result-object v0 │ + move-result v5 │ │ - const-string v1, ",adapter=" │ + if-eqz v5, :cond_2 │ │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + .line 693 │ + invoke-virtual {v3}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String; │ │ move-result-object v0 │ │ - iget-object v1, p0, Lcom/google/gson/internal/bind/TypeAdapters$28;->val$typeAdapter:Lcom/google/gson/TypeAdapter; │ + .line 695 │ + :cond_2 │ + invoke-virtual {v3}, Ljava/util/StringTokenizer;->hasMoreElements()Z │ │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ + move-result v5 │ │ - move-result-object v0 │ + if-eqz v5, :cond_3 │ │ - const-string v1, "]" │ + .line 696 │ + invoke-virtual {v3}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String; │ │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + move-result-object v4 │ │ - move-result-object v0 │ + .line 698 │ + :cond_3 │ + if-nez v0, :cond_4 │ + │ + if-nez v4, :cond_4 │ + │ + .line 699 │ + new-instance v5, Ljava/util/Locale; │ + │ + invoke-direct {v5, v1}, Ljava/util/Locale;->(Ljava/lang/String;)V │ + │ + goto :goto_0 │ + │ + .line 700 │ + :cond_4 │ + if-nez v4, :cond_5 │ │ - invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + .line 701 │ + new-instance v5, Ljava/util/Locale; │ + │ + invoke-direct {v5, v1, v0}, Ljava/util/Locale;->(Ljava/lang/String;Ljava/lang/String;)V │ + │ + goto :goto_0 │ + │ + .line 703 │ + :cond_5 │ + new-instance v5, Ljava/util/Locale; │ + │ + invoke-direct {v5, v1, v0, v4}, Ljava/util/Locale;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ + │ + goto :goto_0 │ +.end method │ + │ +.method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ + .locals 0 │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/io/IOException; │ + } │ + .end annotation │ + │ + .prologue │ + .line 677 │ + check-cast p2, Ljava/util/Locale; │ + │ + invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$28;->write(Lcom/google/gson/stream/JsonWriter;Ljava/util/Locale;)V │ + │ + return-void │ +.end method │ + │ +.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/util/Locale;)V │ + .locals 1 │ + .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ + .param p2, "value" # Ljava/util/Locale; │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/io/IOException; │ + } │ + .end annotation │ + │ + .prologue │ + .line 708 │ + if-nez p2, :cond_0 │ + │ + const/4 v0, 0x0 │ + │ + :goto_0 │ + invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ + │ + .line 709 │ + return-void │ + │ + .line 708 │ + :cond_0 │ + invoke-virtual {p2}, Ljava/util/Locale;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ - return-object v0 │ + goto :goto_0 │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$29.smali │ @@ -1,156 +1,477 @@ │ .class final Lcom/google/gson/internal/bind/TypeAdapters$29; │ -.super Ljava/lang/Object; │ +.super Lcom/google/gson/TypeAdapter; │ .source "TypeAdapters.java" │ │ -# interfaces │ -.implements Lcom/google/gson/TypeAdapterFactory; │ - │ │ # annotations │ -.annotation system Ldalvik/annotation/EnclosingMethod; │ - value = Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ +.annotation system Ldalvik/annotation/EnclosingClass; │ + value = Lcom/google/gson/internal/bind/TypeAdapters; │ .end annotation │ │ .annotation system Ldalvik/annotation/InnerClass; │ accessFlags = 0x8 │ name = null │ .end annotation │ │ +.annotation system Ldalvik/annotation/Signature; │ + value = { │ + "Lcom/google/gson/TypeAdapter", │ + "<", │ + "Lcom/google/gson/JsonElement;", │ + ">;" │ + } │ +.end annotation │ │ -# instance fields │ -.field final synthetic val$boxed:Ljava/lang/Class; │ │ -.field final synthetic val$typeAdapter:Lcom/google/gson/TypeAdapter; │ +# direct methods │ +.method constructor ()V │ + .locals 0 │ │ -.field final synthetic val$unboxed:Ljava/lang/Class; │ + .prologue │ + .line 714 │ + invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ + return-void │ +.end method │ │ -# direct methods │ -.method constructor (Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)V │ - .locals 0 │ + │ +# virtual methods │ +.method public read(Lcom/google/gson/stream/JsonReader;)Lcom/google/gson/JsonElement; │ + .locals 5 │ + .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/io/IOException; │ + } │ + .end annotation │ │ .prologue │ - .line 788 │ - iput-object p1, p0, Lcom/google/gson/internal/bind/TypeAdapters$29;->val$unboxed:Ljava/lang/Class; │ + .line 716 │ + sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters$36;->$SwitchMap$com$google$gson$stream$JsonToken:[I │ │ - iput-object p2, p0, Lcom/google/gson/internal/bind/TypeAdapters$29;->val$boxed:Ljava/lang/Class; │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ - iput-object p3, p0, Lcom/google/gson/internal/bind/TypeAdapters$29;->val$typeAdapter:Lcom/google/gson/TypeAdapter; │ + move-result-object v4 │ │ - invoke-direct {p0}, Ljava/lang/Object;->()V │ + invoke-virtual {v4}, Lcom/google/gson/stream/JsonToken;->ordinal()I │ │ - return-void │ -.end method │ + move-result v4 │ │ + aget v3, v3, v4 │ │ -# virtual methods │ -.method public create(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ - .locals 2 │ - .param p1, "gson" # Lcom/google/gson/Gson; │ - .annotation system Ldalvik/annotation/Signature; │ + packed-switch v3, :pswitch_data_0 │ + │ + .line 748 │ + new-instance v3, Ljava/lang/IllegalArgumentException; │ + │ + invoke-direct {v3}, Ljava/lang/IllegalArgumentException;->()V │ + │ + throw v3 │ + │ + .line 718 │ + :pswitch_0 │ + new-instance v0, Lcom/google/gson/JsonPrimitive; │ + │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextString()Ljava/lang/String; │ + │ + move-result-object v3 │ + │ + invoke-direct {v0, v3}, Lcom/google/gson/JsonPrimitive;->(Ljava/lang/String;)V │ + │ + .line 742 │ + :goto_0 │ + return-object v0 │ + │ + .line 720 │ + :pswitch_1 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextString()Ljava/lang/String; │ + │ + move-result-object v1 │ + │ + .line 721 │ + .local v1, "number":Ljava/lang/String; │ + new-instance v0, Lcom/google/gson/JsonPrimitive; │ + │ + new-instance v3, Lcom/google/gson/internal/LazilyParsedNumber; │ + │ + invoke-direct {v3, v1}, Lcom/google/gson/internal/LazilyParsedNumber;->(Ljava/lang/String;)V │ + │ + invoke-direct {v0, v3}, Lcom/google/gson/JsonPrimitive;->(Ljava/lang/Number;)V │ + │ + goto :goto_0 │ + │ + .line 723 │ + .end local v1 # "number":Ljava/lang/String; │ + :pswitch_2 │ + new-instance v0, Lcom/google/gson/JsonPrimitive; │ + │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextBoolean()Z │ + │ + move-result v3 │ + │ + invoke-static {v3}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ + │ + move-result-object v3 │ + │ + invoke-direct {v0, v3}, Lcom/google/gson/JsonPrimitive;->(Ljava/lang/Boolean;)V │ + │ + goto :goto_0 │ + │ + .line 725 │ + :pswitch_3 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ + │ + .line 726 │ + sget-object v0, Lcom/google/gson/JsonNull;->INSTANCE:Lcom/google/gson/JsonNull; │ + │ + goto :goto_0 │ + │ + .line 728 │ + :pswitch_4 │ + new-instance v0, Lcom/google/gson/JsonArray; │ + │ + invoke-direct {v0}, Lcom/google/gson/JsonArray;->()V │ + │ + .line 729 │ + .local v0, "array":Lcom/google/gson/JsonArray; │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->beginArray()V │ + │ + .line 730 │ + :goto_1 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->hasNext()Z │ + │ + move-result v3 │ + │ + if-eqz v3, :cond_0 │ + │ + .line 731 │ + invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$29;->read(Lcom/google/gson/stream/JsonReader;)Lcom/google/gson/JsonElement; │ + │ + move-result-object v3 │ + │ + invoke-virtual {v0, v3}, Lcom/google/gson/JsonArray;->add(Lcom/google/gson/JsonElement;)V │ + │ + goto :goto_1 │ + │ + .line 733 │ + :cond_0 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->endArray()V │ + │ + goto :goto_0 │ + │ + .line 736 │ + .end local v0 # "array":Lcom/google/gson/JsonArray; │ + :pswitch_5 │ + new-instance v2, Lcom/google/gson/JsonObject; │ + │ + invoke-direct {v2}, Lcom/google/gson/JsonObject;->()V │ + │ + .line 737 │ + .local v2, "object":Lcom/google/gson/JsonObject; │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->beginObject()V │ + │ + .line 738 │ + :goto_2 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->hasNext()Z │ + │ + move-result v3 │ + │ + if-eqz v3, :cond_1 │ + │ + .line 739 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextName()Ljava/lang/String; │ + │ + move-result-object v3 │ + │ + invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$29;->read(Lcom/google/gson/stream/JsonReader;)Lcom/google/gson/JsonElement; │ + │ + move-result-object v4 │ + │ + invoke-virtual {v2, v3, v4}, Lcom/google/gson/JsonObject;->add(Ljava/lang/String;Lcom/google/gson/JsonElement;)V │ + │ + goto :goto_2 │ + │ + .line 741 │ + :cond_1 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->endObject()V │ + │ + move-object v0, v2 │ + │ + .line 742 │ + goto :goto_0 │ + │ + .line 716 │ + nop │ + │ + :pswitch_data_0 │ + .packed-switch 0x1 │ + :pswitch_1 │ + :pswitch_2 │ + :pswitch_0 │ + :pswitch_3 │ + :pswitch_4 │ + :pswitch_5 │ + .end packed-switch │ +.end method │ + │ +.method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ + .locals 1 │ + .annotation system Ldalvik/annotation/Throws; │ value = { │ - "(", │ - "Lcom/google/gson/Gson;", │ - "Lcom/google/gson/reflect/TypeToken", │ - ";)", │ - "Lcom/google/gson/TypeAdapter", │ - ";" │ + Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 791 │ - .local p2, "typeToken":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken;" │ - invoke-virtual {p2}, Lcom/google/gson/reflect/TypeToken;->getRawType()Ljava/lang/Class; │ + .line 714 │ + invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$29;->read(Lcom/google/gson/stream/JsonReader;)Lcom/google/gson/JsonElement; │ │ move-result-object v0 │ │ - .line 792 │ - .local v0, "rawType":Ljava/lang/Class;, "Ljava/lang/Class<-TT;>;" │ - iget-object v1, p0, Lcom/google/gson/internal/bind/TypeAdapters$29;->val$unboxed:Ljava/lang/Class; │ + return-object v0 │ +.end method │ │ - if-eq v0, v1, :cond_0 │ +.method public write(Lcom/google/gson/stream/JsonWriter;Lcom/google/gson/JsonElement;)V │ + .locals 6 │ + .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ + .param p2, "value" # Lcom/google/gson/JsonElement; │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/io/IOException; │ + } │ + .end annotation │ │ - iget-object v1, p0, Lcom/google/gson/internal/bind/TypeAdapters$29;->val$boxed:Ljava/lang/Class; │ + .prologue │ + .line 753 │ + if-eqz p2, :cond_0 │ + │ + invoke-virtual {p2}, Lcom/google/gson/JsonElement;->isJsonNull()Z │ + │ + move-result v3 │ │ - if-ne v0, v1, :cond_1 │ + if-eqz v3, :cond_1 │ │ + .line 754 │ :cond_0 │ - iget-object v1, p0, Lcom/google/gson/internal/bind/TypeAdapters$29;->val$typeAdapter:Lcom/google/gson/TypeAdapter; │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->nullValue()Lcom/google/gson/stream/JsonWriter; │ │ + .line 783 │ :goto_0 │ - return-object v1 │ + return-void │ │ + .line 755 │ :cond_1 │ - const/4 v1, 0x0 │ + invoke-virtual {p2}, Lcom/google/gson/JsonElement;->isJsonPrimitive()Z │ + │ + move-result v3 │ + │ + if-eqz v3, :cond_4 │ + │ + .line 756 │ + invoke-virtual {p2}, Lcom/google/gson/JsonElement;->getAsJsonPrimitive()Lcom/google/gson/JsonPrimitive; │ + │ + move-result-object v2 │ + │ + .line 757 │ + .local v2, "primitive":Lcom/google/gson/JsonPrimitive; │ + invoke-virtual {v2}, Lcom/google/gson/JsonPrimitive;->isNumber()Z │ + │ + move-result v3 │ + │ + if-eqz v3, :cond_2 │ + │ + .line 758 │ + invoke-virtual {v2}, Lcom/google/gson/JsonPrimitive;->getAsNumber()Ljava/lang/Number; │ + │ + move-result-object v3 │ + │ + invoke-virtual {p1, v3}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/Number;)Lcom/google/gson/stream/JsonWriter; │ │ goto :goto_0 │ -.end method │ │ -.method public toString()Ljava/lang/String; │ - .locals 2 │ + .line 759 │ + :cond_2 │ + invoke-virtual {v2}, Lcom/google/gson/JsonPrimitive;->isBoolean()Z │ │ - .prologue │ - .line 795 │ - new-instance v0, Ljava/lang/StringBuilder; │ + move-result v3 │ │ - invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ + if-eqz v3, :cond_3 │ │ - const-string v1, "Factory[type=" │ + .line 760 │ + invoke-virtual {v2}, Lcom/google/gson/JsonPrimitive;->getAsBoolean()Z │ │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + move-result v3 │ │ - move-result-object v0 │ + invoke-virtual {p1, v3}, Lcom/google/gson/stream/JsonWriter;->value(Z)Lcom/google/gson/stream/JsonWriter; │ │ - iget-object v1, p0, Lcom/google/gson/internal/bind/TypeAdapters$29;->val$boxed:Ljava/lang/Class; │ + goto :goto_0 │ │ - invoke-virtual {v1}, Ljava/lang/Class;->getName()Ljava/lang/String; │ + .line 762 │ + :cond_3 │ + invoke-virtual {v2}, Lcom/google/gson/JsonPrimitive;->getAsString()Ljava/lang/String; │ │ - move-result-object v1 │ + move-result-object v3 │ │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {p1, v3}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ │ - move-result-object v0 │ + goto :goto_0 │ + │ + .line 765 │ + .end local v2 # "primitive":Lcom/google/gson/JsonPrimitive; │ + :cond_4 │ + invoke-virtual {p2}, Lcom/google/gson/JsonElement;->isJsonArray()Z │ + │ + move-result v3 │ + │ + if-eqz v3, :cond_6 │ + │ + .line 766 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->beginArray()Lcom/google/gson/stream/JsonWriter; │ │ - const-string v1, "+" │ + .line 767 │ + invoke-virtual {p2}, Lcom/google/gson/JsonElement;->getAsJsonArray()Lcom/google/gson/JsonArray; │ │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + move-result-object v3 │ + │ + invoke-virtual {v3}, Lcom/google/gson/JsonArray;->iterator()Ljava/util/Iterator; │ + │ + move-result-object v3 │ + │ + :goto_1 │ + invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ + │ + move-result v4 │ + │ + if-eqz v4, :cond_5 │ + │ + invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v0 │ │ - iget-object v1, p0, Lcom/google/gson/internal/bind/TypeAdapters$29;->val$unboxed:Ljava/lang/Class; │ + check-cast v0, Lcom/google/gson/JsonElement; │ + │ + .line 768 │ + .local v0, "e":Lcom/google/gson/JsonElement; │ + invoke-virtual {p0, p1, v0}, Lcom/google/gson/internal/bind/TypeAdapters$29;->write(Lcom/google/gson/stream/JsonWriter;Lcom/google/gson/JsonElement;)V │ + │ + goto :goto_1 │ + │ + .line 770 │ + .end local v0 # "e":Lcom/google/gson/JsonElement; │ + :cond_5 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->endArray()Lcom/google/gson/stream/JsonWriter; │ + │ + goto :goto_0 │ + │ + .line 772 │ + :cond_6 │ + invoke-virtual {p2}, Lcom/google/gson/JsonElement;->isJsonObject()Z │ │ - invoke-virtual {v1}, Ljava/lang/Class;->getName()Ljava/lang/String; │ + move-result v3 │ + │ + if-eqz v3, :cond_8 │ + │ + .line 773 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->beginObject()Lcom/google/gson/stream/JsonWriter; │ + │ + .line 774 │ + invoke-virtual {p2}, Lcom/google/gson/JsonElement;->getAsJsonObject()Lcom/google/gson/JsonObject; │ + │ + move-result-object v3 │ + │ + invoke-virtual {v3}, Lcom/google/gson/JsonObject;->entrySet()Ljava/util/Set; │ + │ + move-result-object v3 │ + │ + invoke-interface {v3}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ + │ + move-result-object v4 │ + │ + :goto_2 │ + invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z │ + │ + move-result v3 │ + │ + if-eqz v3, :cond_7 │ + │ + invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v1 │ │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + check-cast v1, Ljava/util/Map$Entry; │ │ - move-result-object v0 │ + .line 775 │ + .local v1, "e":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry;" │ + invoke-interface {v1}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; │ │ - const-string v1, ",adapter=" │ + move-result-object v3 │ │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + check-cast v3, Ljava/lang/String; │ │ - move-result-object v0 │ + invoke-virtual {p1, v3}, Lcom/google/gson/stream/JsonWriter;->name(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ │ - iget-object v1, p0, Lcom/google/gson/internal/bind/TypeAdapters$29;->val$typeAdapter:Lcom/google/gson/TypeAdapter; │ + .line 776 │ + invoke-interface {v1}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; │ │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ + move-result-object v3 │ │ - move-result-object v0 │ + check-cast v3, Lcom/google/gson/JsonElement; │ │ - const-string v1, "]" │ + invoke-virtual {p0, p1, v3}, Lcom/google/gson/internal/bind/TypeAdapters$29;->write(Lcom/google/gson/stream/JsonWriter;Lcom/google/gson/JsonElement;)V │ │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + goto :goto_2 │ │ - move-result-object v0 │ + .line 778 │ + .end local v1 # "e":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry;" │ + :cond_7 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->endObject()Lcom/google/gson/stream/JsonWriter; │ │ - invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + goto/16 :goto_0 │ │ - move-result-object v0 │ + .line 781 │ + :cond_8 │ + new-instance v3, Ljava/lang/IllegalArgumentException; │ │ - return-object v0 │ + new-instance v4, Ljava/lang/StringBuilder; │ + │ + invoke-direct {v4}, Ljava/lang/StringBuilder;->()V │ + │ + const-string v5, "Couldn\'t write " │ + │ + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + │ + move-result-object v4 │ + │ + invoke-virtual {p2}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ + │ + move-result-object v5 │ + │ + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ + │ + move-result-object v4 │ + │ + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + │ + move-result-object v4 │ + │ + invoke-direct {v3, v4}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ + │ + throw v3 │ +.end method │ + │ +.method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ + .locals 0 │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/io/IOException; │ + } │ + .end annotation │ + │ + .prologue │ + .line 714 │ + check-cast p2, Lcom/google/gson/JsonElement; │ + │ + invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$29;->write(Lcom/google/gson/stream/JsonWriter;Lcom/google/gson/JsonElement;)V │ + │ + return-void │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$30.smali │ @@ -3,44 +3,30 @@ │ .source "TypeAdapters.java" │ │ # interfaces │ .implements Lcom/google/gson/TypeAdapterFactory; │ │ │ # annotations │ -.annotation system Ldalvik/annotation/EnclosingMethod; │ - value = Lcom/google/gson/internal/bind/TypeAdapters;->newFactoryForMultipleTypes(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ +.annotation system Ldalvik/annotation/EnclosingClass; │ + value = Lcom/google/gson/internal/bind/TypeAdapters; │ .end annotation │ │ .annotation system Ldalvik/annotation/InnerClass; │ accessFlags = 0x8 │ name = null │ .end annotation │ │ │ -# instance fields │ -.field final synthetic val$base:Ljava/lang/Class; │ - │ -.field final synthetic val$sub:Ljava/lang/Class; │ - │ -.field final synthetic val$typeAdapter:Lcom/google/gson/TypeAdapter; │ - │ - │ # direct methods │ -.method constructor (Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)V │ +.method constructor ()V │ .locals 0 │ │ .prologue │ - .line 803 │ - iput-object p1, p0, Lcom/google/gson/internal/bind/TypeAdapters$30;->val$base:Ljava/lang/Class; │ - │ - iput-object p2, p0, Lcom/google/gson/internal/bind/TypeAdapters$30;->val$sub:Ljava/lang/Class; │ - │ - iput-object p3, p0, Lcom/google/gson/internal/bind/TypeAdapters$30;->val$typeAdapter:Lcom/google/gson/TypeAdapter; │ - │ + .line 824 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ @@ -57,100 +43,56 @@ │ ";)", │ "Lcom/google/gson/TypeAdapter", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 806 │ + .line 827 │ .local p2, "typeToken":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken;" │ invoke-virtual {p2}, Lcom/google/gson/reflect/TypeToken;->getRawType()Ljava/lang/Class; │ │ move-result-object v0 │ │ - .line 807 │ + .line 828 │ .local v0, "rawType":Ljava/lang/Class;, "Ljava/lang/Class<-TT;>;" │ - iget-object v1, p0, Lcom/google/gson/internal/bind/TypeAdapters$30;->val$base:Ljava/lang/Class; │ + const-class v1, Ljava/lang/Enum; │ + │ + invoke-virtual {v1, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z │ + │ + move-result v1 │ │ - if-eq v0, v1, :cond_0 │ + if-eqz v1, :cond_0 │ │ - iget-object v1, p0, Lcom/google/gson/internal/bind/TypeAdapters$30;->val$sub:Ljava/lang/Class; │ + const-class v1, Ljava/lang/Enum; │ │ if-ne v0, v1, :cond_1 │ │ + .line 829 │ :cond_0 │ - iget-object v1, p0, Lcom/google/gson/internal/bind/TypeAdapters$30;->val$typeAdapter:Lcom/google/gson/TypeAdapter; │ + const/4 v1, 0x0 │ │ + .line 834 │ :goto_0 │ return-object v1 │ │ + .line 831 │ :cond_1 │ - const/4 v1, 0x0 │ - │ - goto :goto_0 │ -.end method │ - │ -.method public toString()Ljava/lang/String; │ - .locals 2 │ - │ - .prologue │ - .line 810 │ - new-instance v0, Ljava/lang/StringBuilder; │ - │ - invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ - │ - const-string v1, "Factory[type=" │ - │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v0 │ - │ - iget-object v1, p0, Lcom/google/gson/internal/bind/TypeAdapters$30;->val$base:Ljava/lang/Class; │ + invoke-virtual {v0}, Ljava/lang/Class;->isEnum()Z │ │ - invoke-virtual {v1}, Ljava/lang/Class;->getName()Ljava/lang/String; │ + move-result v1 │ │ - move-result-object v1 │ + if-nez v1, :cond_2 │ │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + .line 832 │ + invoke-virtual {v0}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class; │ │ move-result-object v0 │ │ - const-string v1, "+" │ + .line 834 │ + :cond_2 │ + new-instance v1, Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter; │ │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-direct {v1, v0}, Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter;->(Ljava/lang/Class;)V │ │ - move-result-object v0 │ - │ - iget-object v1, p0, Lcom/google/gson/internal/bind/TypeAdapters$30;->val$sub:Ljava/lang/Class; │ - │ - invoke-virtual {v1}, Ljava/lang/Class;->getName()Ljava/lang/String; │ - │ - move-result-object v1 │ - │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v0 │ - │ - const-string v1, ",adapter=" │ - │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v0 │ - │ - iget-object v1, p0, Lcom/google/gson/internal/bind/TypeAdapters$30;->val$typeAdapter:Lcom/google/gson/TypeAdapter; │ - │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ - │ - move-result-object v0 │ - │ - const-string v1, "]" │ - │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v0 │ - │ - invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ - │ - move-result-object v0 │ - │ - return-object v0 │ + goto :goto_0 │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$2.smali │ @@ -24,33 +24,32 @@ │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 84 │ + .line 92 │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 84 │ + .line 92 │ invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$2;->read(Lcom/google/gson/stream/JsonReader;)Ljava/util/BitSet; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ @@ -64,71 +63,71 @@ │ .end annotation │ │ .prologue │ const/4 v6, 0x1 │ │ const/4 v7, 0x0 │ │ - .line 86 │ + .line 94 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v8 │ │ sget-object v9, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ if-ne v8, v9, :cond_0 │ │ - .line 87 │ + .line 95 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ │ - .line 88 │ + .line 96 │ const/4 v0, 0x0 │ │ - .line 123 │ + .line 131 │ :goto_0 │ return-object v0 │ │ - .line 91 │ + .line 99 │ :cond_0 │ new-instance v0, Ljava/util/BitSet; │ │ invoke-direct {v0}, Ljava/util/BitSet;->()V │ │ - .line 92 │ + .line 100 │ .local v0, "bitset":Ljava/util/BitSet; │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->beginArray()V │ │ - .line 93 │ + .line 101 │ const/4 v2, 0x0 │ │ - .line 94 │ + .line 102 │ .local v2, "i":I │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v5 │ │ - .line 95 │ + .line 103 │ .local v5, "tokenType":Lcom/google/gson/stream/JsonToken; │ :goto_1 │ sget-object v8, Lcom/google/gson/stream/JsonToken;->END_ARRAY:Lcom/google/gson/stream/JsonToken; │ │ if-eq v5, v8, :cond_4 │ │ - .line 97 │ - sget-object v8, Lcom/google/gson/internal/bind/TypeAdapters$32;->$SwitchMap$com$google$gson$stream$JsonToken:[I │ + .line 105 │ + sget-object v8, Lcom/google/gson/internal/bind/TypeAdapters$36;->$SwitchMap$com$google$gson$stream$JsonToken:[I │ │ invoke-virtual {v5}, Lcom/google/gson/stream/JsonToken;->ordinal()I │ │ move-result v9 │ │ aget v8, v8, v9 │ │ packed-switch v8, :pswitch_data_0 │ │ - .line 114 │ + .line 122 │ new-instance v6, Lcom/google/gson/JsonSyntaxException; │ │ new-instance v7, Ljava/lang/StringBuilder; │ │ invoke-direct {v7}, Ljava/lang/StringBuilder;->()V │ │ const-string v8, "Invalid bitset value type: " │ @@ -145,69 +144,69 @@ │ │ move-result-object v7 │ │ invoke-direct {v6, v7}, Lcom/google/gson/JsonSyntaxException;->(Ljava/lang/String;)V │ │ throw v6 │ │ - .line 99 │ + .line 107 │ :pswitch_0 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextInt()I │ │ move-result v8 │ │ if-eqz v8, :cond_2 │ │ move v3, v6 │ │ - .line 116 │ + .line 124 │ .local v3, "set":Z │ :goto_2 │ if-eqz v3, :cond_1 │ │ - .line 117 │ + .line 125 │ invoke-virtual {v0, v2}, Ljava/util/BitSet;->set(I)V │ │ - .line 119 │ + .line 127 │ :cond_1 │ add-int/lit8 v2, v2, 0x1 │ │ - .line 120 │ + .line 128 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v5 │ │ - .line 121 │ + .line 129 │ goto :goto_1 │ │ .end local v3 # "set":Z │ :cond_2 │ move v3, v7 │ │ - .line 99 │ + .line 107 │ goto :goto_2 │ │ - .line 102 │ + .line 110 │ :pswitch_1 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextBoolean()Z │ │ move-result v3 │ │ - .line 103 │ + .line 111 │ .restart local v3 # "set":Z │ goto :goto_2 │ │ - .line 105 │ + .line 113 │ .end local v3 # "set":Z │ :pswitch_2 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextString()Ljava/lang/String; │ │ move-result-object v4 │ │ - .line 107 │ + .line 115 │ .local v4, "stringValue":Ljava/lang/String; │ :try_start_0 │ invoke-static {v4}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I │ :try_end_0 │ .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 │ │ move-result v8 │ @@ -222,19 +221,19 @@ │ │ .end local v3 # "set":Z │ :cond_3 │ move v3, v7 │ │ goto :goto_3 │ │ - .line 108 │ + .line 116 │ :catch_0 │ move-exception v1 │ │ - .line 109 │ + .line 117 │ .local v1, "e":Ljava/lang/NumberFormatException; │ new-instance v6, Lcom/google/gson/JsonSyntaxException; │ │ new-instance v7, Ljava/lang/StringBuilder; │ │ invoke-direct {v7}, Ljava/lang/StringBuilder;->()V │ │ @@ -252,46 +251,43 @@ │ │ move-result-object v7 │ │ invoke-direct {v6, v7}, Lcom/google/gson/JsonSyntaxException;->(Ljava/lang/String;)V │ │ throw v6 │ │ - .line 122 │ + .line 130 │ .end local v1 # "e":Ljava/lang/NumberFormatException; │ .end local v4 # "stringValue":Ljava/lang/String; │ :cond_4 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->endArray()V │ │ goto :goto_0 │ │ - .line 97 │ + .line 105 │ :pswitch_data_0 │ .packed-switch 0x1 │ :pswitch_0 │ :pswitch_1 │ :pswitch_2 │ .end packed-switch │ .end method │ │ .method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 84 │ + .line 92 │ check-cast p2, Ljava/util/BitSet; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$2;->write(Lcom/google/gson/stream/JsonWriter;Ljava/util/BitSet;)V │ │ return-void │ .end method │ │ .method public write(Lcom/google/gson/stream/JsonWriter;Ljava/util/BitSet;)V │ .locals 4 │ @@ -300,66 +296,66 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 127 │ + .line 135 │ if-nez p2, :cond_0 │ │ - .line 128 │ + .line 136 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->nullValue()Lcom/google/gson/stream/JsonWriter; │ │ - .line 138 │ + .line 146 │ :goto_0 │ return-void │ │ - .line 132 │ + .line 140 │ :cond_0 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->beginArray()Lcom/google/gson/stream/JsonWriter; │ │ - .line 133 │ + .line 141 │ const/4 v0, 0x0 │ │ .local v0, "i":I │ :goto_1 │ invoke-virtual {p2}, Ljava/util/BitSet;->length()I │ │ move-result v2 │ │ if-ge v0, v2, :cond_2 │ │ - .line 134 │ + .line 142 │ invoke-virtual {p2, v0}, Ljava/util/BitSet;->get(I)Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ const/4 v1, 0x1 │ │ - .line 135 │ + .line 143 │ .local v1, "value":I │ :goto_2 │ int-to-long v2, v1 │ │ invoke-virtual {p1, v2, v3}, Lcom/google/gson/stream/JsonWriter;->value(J)Lcom/google/gson/stream/JsonWriter; │ │ - .line 133 │ + .line 141 │ add-int/lit8 v0, v0, 0x1 │ │ goto :goto_1 │ │ - .line 134 │ + .line 142 │ .end local v1 # "value":I │ :cond_1 │ const/4 v1, 0x0 │ │ goto :goto_2 │ │ - .line 137 │ + .line 145 │ :cond_2 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->endArray()Lcom/google/gson/stream/JsonWriter; │ │ goto :goto_0 │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$32.smali │ @@ -1,248 +1,129 @@ │ -.class synthetic Lcom/google/gson/internal/bind/TypeAdapters$32; │ +.class final Lcom/google/gson/internal/bind/TypeAdapters$32; │ .super Ljava/lang/Object; │ .source "TypeAdapters.java" │ │ +# interfaces │ +.implements Lcom/google/gson/TypeAdapterFactory; │ + │ │ # annotations │ -.annotation system Ldalvik/annotation/EnclosingClass; │ - value = Lcom/google/gson/internal/bind/TypeAdapters; │ +.annotation system Ldalvik/annotation/EnclosingMethod; │ + value = Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ .end annotation │ │ .annotation system Ldalvik/annotation/InnerClass; │ - accessFlags = 0x1008 │ + accessFlags = 0x8 │ name = null │ .end annotation │ │ │ -# static fields │ -.field static final synthetic $SwitchMap$com$google$gson$stream$JsonToken:[I │ +# instance fields │ +.field final synthetic val$type:Ljava/lang/Class; │ + │ +.field final synthetic val$typeAdapter:Lcom/google/gson/TypeAdapter; │ │ │ # direct methods │ -.method static constructor ()V │ - .locals 3 │ +.method constructor (Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)V │ + .locals 0 │ │ .prologue │ - .line 97 │ - invoke-static {}, Lcom/google/gson/stream/JsonToken;->values()[Lcom/google/gson/stream/JsonToken; │ + .line 850 │ + iput-object p1, p0, Lcom/google/gson/internal/bind/TypeAdapters$32;->val$type:Ljava/lang/Class; │ │ - move-result-object v0 │ + iput-object p2, p0, Lcom/google/gson/internal/bind/TypeAdapters$32;->val$typeAdapter:Lcom/google/gson/TypeAdapter; │ │ - array-length v0, v0 │ + invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - new-array v0, v0, [I │ + return-void │ +.end method │ │ - sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters$32;->$SwitchMap$com$google$gson$stream$JsonToken:[I │ │ - :try_start_0 │ - sget-object v0, Lcom/google/gson/internal/bind/TypeAdapters$32;->$SwitchMap$com$google$gson$stream$JsonToken:[I │ +# virtual methods │ +.method public create(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ + .locals 2 │ + .param p1, "gson" # Lcom/google/gson/Gson; │ + .annotation system Ldalvik/annotation/Signature; │ + value = { │ + "(", │ + "Lcom/google/gson/Gson;", │ + "Lcom/google/gson/reflect/TypeToken", │ + ";)", │ + "Lcom/google/gson/TypeAdapter", │ + ";" │ + } │ + .end annotation │ │ - sget-object v1, Lcom/google/gson/stream/JsonToken;->NUMBER:Lcom/google/gson/stream/JsonToken; │ + .prologue │ + .line 853 │ + .local p2, "typeToken":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken;" │ + invoke-virtual {p2}, Lcom/google/gson/reflect/TypeToken;->getRawType()Ljava/lang/Class; │ │ - invoke-virtual {v1}, Lcom/google/gson/stream/JsonToken;->ordinal()I │ + move-result-object v0 │ │ - move-result v1 │ + iget-object v1, p0, Lcom/google/gson/internal/bind/TypeAdapters$32;->val$type:Ljava/lang/Class; │ │ - const/4 v2, 0x1 │ + if-ne v0, v1, :cond_0 │ │ - aput v2, v0, v1 │ - :try_end_0 │ - .catch Ljava/lang/NoSuchFieldError; {:try_start_0 .. :try_end_0} :catch_9 │ + iget-object v0, p0, Lcom/google/gson/internal/bind/TypeAdapters$32;->val$typeAdapter:Lcom/google/gson/TypeAdapter; │ │ :goto_0 │ - :try_start_1 │ - sget-object v0, Lcom/google/gson/internal/bind/TypeAdapters$32;->$SwitchMap$com$google$gson$stream$JsonToken:[I │ - │ - sget-object v1, Lcom/google/gson/stream/JsonToken;->BOOLEAN:Lcom/google/gson/stream/JsonToken; │ - │ - invoke-virtual {v1}, Lcom/google/gson/stream/JsonToken;->ordinal()I │ - │ - move-result v1 │ - │ - const/4 v2, 0x2 │ - │ - aput v2, v0, v1 │ - :try_end_1 │ - .catch Ljava/lang/NoSuchFieldError; {:try_start_1 .. :try_end_1} :catch_8 │ - │ - :goto_1 │ - :try_start_2 │ - sget-object v0, Lcom/google/gson/internal/bind/TypeAdapters$32;->$SwitchMap$com$google$gson$stream$JsonToken:[I │ - │ - sget-object v1, Lcom/google/gson/stream/JsonToken;->STRING:Lcom/google/gson/stream/JsonToken; │ - │ - invoke-virtual {v1}, Lcom/google/gson/stream/JsonToken;->ordinal()I │ - │ - move-result v1 │ - │ - const/4 v2, 0x3 │ - │ - aput v2, v0, v1 │ - :try_end_2 │ - .catch Ljava/lang/NoSuchFieldError; {:try_start_2 .. :try_end_2} :catch_7 │ - │ - :goto_2 │ - :try_start_3 │ - sget-object v0, Lcom/google/gson/internal/bind/TypeAdapters$32;->$SwitchMap$com$google$gson$stream$JsonToken:[I │ - │ - sget-object v1, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ - │ - invoke-virtual {v1}, Lcom/google/gson/stream/JsonToken;->ordinal()I │ - │ - move-result v1 │ - │ - const/4 v2, 0x4 │ - │ - aput v2, v0, v1 │ - :try_end_3 │ - .catch Ljava/lang/NoSuchFieldError; {:try_start_3 .. :try_end_3} :catch_6 │ - │ - :goto_3 │ - :try_start_4 │ - sget-object v0, Lcom/google/gson/internal/bind/TypeAdapters$32;->$SwitchMap$com$google$gson$stream$JsonToken:[I │ - │ - sget-object v1, Lcom/google/gson/stream/JsonToken;->BEGIN_ARRAY:Lcom/google/gson/stream/JsonToken; │ - │ - invoke-virtual {v1}, Lcom/google/gson/stream/JsonToken;->ordinal()I │ - │ - move-result v1 │ - │ - const/4 v2, 0x5 │ - │ - aput v2, v0, v1 │ - :try_end_4 │ - .catch Ljava/lang/NoSuchFieldError; {:try_start_4 .. :try_end_4} :catch_5 │ - │ - :goto_4 │ - :try_start_5 │ - sget-object v0, Lcom/google/gson/internal/bind/TypeAdapters$32;->$SwitchMap$com$google$gson$stream$JsonToken:[I │ - │ - sget-object v1, Lcom/google/gson/stream/JsonToken;->BEGIN_OBJECT:Lcom/google/gson/stream/JsonToken; │ - │ - invoke-virtual {v1}, Lcom/google/gson/stream/JsonToken;->ordinal()I │ - │ - move-result v1 │ + return-object v0 │ │ - const/4 v2, 0x6 │ + :cond_0 │ + const/4 v0, 0x0 │ │ - aput v2, v0, v1 │ - :try_end_5 │ - .catch Ljava/lang/NoSuchFieldError; {:try_start_5 .. :try_end_5} :catch_4 │ - │ - :goto_5 │ - :try_start_6 │ - sget-object v0, Lcom/google/gson/internal/bind/TypeAdapters$32;->$SwitchMap$com$google$gson$stream$JsonToken:[I │ - │ - sget-object v1, Lcom/google/gson/stream/JsonToken;->END_DOCUMENT:Lcom/google/gson/stream/JsonToken; │ - │ - invoke-virtual {v1}, Lcom/google/gson/stream/JsonToken;->ordinal()I │ - │ - move-result v1 │ - │ - const/4 v2, 0x7 │ - │ - aput v2, v0, v1 │ - :try_end_6 │ - .catch Ljava/lang/NoSuchFieldError; {:try_start_6 .. :try_end_6} :catch_3 │ - │ - :goto_6 │ - :try_start_7 │ - sget-object v0, Lcom/google/gson/internal/bind/TypeAdapters$32;->$SwitchMap$com$google$gson$stream$JsonToken:[I │ - │ - sget-object v1, Lcom/google/gson/stream/JsonToken;->NAME:Lcom/google/gson/stream/JsonToken; │ - │ - invoke-virtual {v1}, Lcom/google/gson/stream/JsonToken;->ordinal()I │ - │ - move-result v1 │ - │ - const/16 v2, 0x8 │ - │ - aput v2, v0, v1 │ - :try_end_7 │ - .catch Ljava/lang/NoSuchFieldError; {:try_start_7 .. :try_end_7} :catch_2 │ - │ - :goto_7 │ - :try_start_8 │ - sget-object v0, Lcom/google/gson/internal/bind/TypeAdapters$32;->$SwitchMap$com$google$gson$stream$JsonToken:[I │ - │ - sget-object v1, Lcom/google/gson/stream/JsonToken;->END_OBJECT:Lcom/google/gson/stream/JsonToken; │ - │ - invoke-virtual {v1}, Lcom/google/gson/stream/JsonToken;->ordinal()I │ - │ - move-result v1 │ - │ - const/16 v2, 0x9 │ - │ - aput v2, v0, v1 │ - :try_end_8 │ - .catch Ljava/lang/NoSuchFieldError; {:try_start_8 .. :try_end_8} :catch_1 │ - │ - :goto_8 │ - :try_start_9 │ - sget-object v0, Lcom/google/gson/internal/bind/TypeAdapters$32;->$SwitchMap$com$google$gson$stream$JsonToken:[I │ - │ - sget-object v1, Lcom/google/gson/stream/JsonToken;->END_ARRAY:Lcom/google/gson/stream/JsonToken; │ - │ - invoke-virtual {v1}, Lcom/google/gson/stream/JsonToken;->ordinal()I │ - │ - move-result v1 │ + goto :goto_0 │ +.end method │ │ - const/16 v2, 0xa │ +.method public toString()Ljava/lang/String; │ + .locals 2 │ │ - aput v2, v0, v1 │ - :try_end_9 │ - .catch Ljava/lang/NoSuchFieldError; {:try_start_9 .. :try_end_9} :catch_0 │ + .prologue │ + .line 856 │ + new-instance v0, Ljava/lang/StringBuilder; │ │ - :goto_9 │ - return-void │ + invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ │ - :catch_0 │ - move-exception v0 │ + const-string v1, "Factory[type=" │ │ - goto :goto_9 │ + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - :catch_1 │ - move-exception v0 │ + move-result-object v0 │ │ - goto :goto_8 │ + iget-object v1, p0, Lcom/google/gson/internal/bind/TypeAdapters$32;->val$type:Ljava/lang/Class; │ │ - :catch_2 │ - move-exception v0 │ + invoke-virtual {v1}, Ljava/lang/Class;->getName()Ljava/lang/String; │ │ - goto :goto_7 │ + move-result-object v1 │ │ - :catch_3 │ - move-exception v0 │ + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - goto :goto_6 │ + move-result-object v0 │ │ - :catch_4 │ - move-exception v0 │ + const-string v1, ",adapter=" │ │ - goto :goto_5 │ + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - :catch_5 │ - move-exception v0 │ + move-result-object v0 │ │ - goto :goto_4 │ + iget-object v1, p0, Lcom/google/gson/internal/bind/TypeAdapters$32;->val$typeAdapter:Lcom/google/gson/TypeAdapter; │ │ - :catch_6 │ - move-exception v0 │ + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ - goto :goto_3 │ + move-result-object v0 │ │ - :catch_7 │ - move-exception v0 │ + const-string v1, "]" │ │ - goto :goto_2 │ + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - :catch_8 │ - move-exception v0 │ + move-result-object v0 │ │ - goto :goto_1 │ + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - :catch_9 │ - move-exception v0 │ + move-result-object v0 │ │ - goto :goto_0 │ + return-object v0 │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$31.smali │ @@ -4,48 +4,48 @@ │ │ # interfaces │ .implements Lcom/google/gson/TypeAdapterFactory; │ │ │ # annotations │ .annotation system Ldalvik/annotation/EnclosingMethod; │ - value = Lcom/google/gson/internal/bind/TypeAdapters;->newTypeHierarchyFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ + value = Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Lcom/google/gson/reflect/TypeToken;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ .end annotation │ │ .annotation system Ldalvik/annotation/InnerClass; │ accessFlags = 0x8 │ name = null │ .end annotation │ │ │ # instance fields │ -.field final synthetic val$clazz:Ljava/lang/Class; │ +.field final synthetic val$type:Lcom/google/gson/reflect/TypeToken; │ │ .field final synthetic val$typeAdapter:Lcom/google/gson/TypeAdapter; │ │ │ # direct methods │ -.method constructor (Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)V │ +.method constructor (Lcom/google/gson/reflect/TypeToken;Lcom/google/gson/TypeAdapter;)V │ .locals 0 │ │ .prologue │ - .line 818 │ - iput-object p1, p0, Lcom/google/gson/internal/bind/TypeAdapters$31;->val$clazz:Ljava/lang/Class; │ + .line 840 │ + iput-object p1, p0, Lcom/google/gson/internal/bind/TypeAdapters$31;->val$type:Lcom/google/gson/reflect/TypeToken; │ │ iput-object p2, p0, Lcom/google/gson/internal/bind/TypeAdapters$31;->val$typeAdapter:Lcom/google/gson/TypeAdapter; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public create(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ - .locals 2 │ + .locals 1 │ .param p1, "gson" # Lcom/google/gson/Gson; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Lcom/google/gson/Gson;", │ @@ -53,23 +53,19 @@ │ ";)", │ "Lcom/google/gson/TypeAdapter", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 821 │ + .line 843 │ .local p2, "typeToken":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken;" │ - iget-object v0, p0, Lcom/google/gson/internal/bind/TypeAdapters$31;->val$clazz:Ljava/lang/Class; │ + iget-object v0, p0, Lcom/google/gson/internal/bind/TypeAdapters$31;->val$type:Lcom/google/gson/reflect/TypeToken; │ │ - invoke-virtual {p2}, Lcom/google/gson/reflect/TypeToken;->getRawType()Ljava/lang/Class; │ - │ - move-result-object v1 │ - │ - invoke-virtual {v0, v1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z │ + invoke-virtual {p2, v0}, Lcom/google/gson/reflect/TypeToken;->equals(Ljava/lang/Object;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ iget-object v0, p0, Lcom/google/gson/internal/bind/TypeAdapters$31;->val$typeAdapter:Lcom/google/gson/TypeAdapter; │ │ @@ -77,57 +73,7 @@ │ return-object v0 │ │ :cond_0 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ - │ -.method public toString()Ljava/lang/String; │ - .locals 2 │ - │ - .prologue │ - .line 824 │ - new-instance v0, Ljava/lang/StringBuilder; │ - │ - invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ - │ - const-string v1, "Factory[typeHierarchy=" │ - │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v0 │ - │ - iget-object v1, p0, Lcom/google/gson/internal/bind/TypeAdapters$31;->val$clazz:Ljava/lang/Class; │ - │ - invoke-virtual {v1}, Ljava/lang/Class;->getName()Ljava/lang/String; │ - │ - move-result-object v1 │ - │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v0 │ - │ - const-string v1, ",adapter=" │ - │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v0 │ - │ - iget-object v1, p0, Lcom/google/gson/internal/bind/TypeAdapters$31;->val$typeAdapter:Lcom/google/gson/TypeAdapter; │ - │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ - │ - move-result-object v0 │ - │ - const-string v1, "]" │ - │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v0 │ - │ - invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ - │ - move-result-object v0 │ - │ - return-object v0 │ -.end method ├── smali/com/google/gson/internal/bind/TypeAdapters$3.smali │ @@ -24,15 +24,15 @@ │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 143 │ + .line 151 │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ @@ -42,133 +42,115 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 146 │ + .line 154 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v0 │ │ sget-object v1, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ if-ne v0, v1, :cond_0 │ │ - .line 147 │ + .line 155 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ │ - .line 148 │ + .line 156 │ const/4 v0, 0x0 │ │ - .line 153 │ + .line 161 │ :goto_0 │ return-object v0 │ │ - .line 149 │ + .line 157 │ :cond_0 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v0 │ │ sget-object v1, Lcom/google/gson/stream/JsonToken;->STRING:Lcom/google/gson/stream/JsonToken; │ │ if-ne v0, v1, :cond_1 │ │ - .line 151 │ + .line 159 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextString()Ljava/lang/String; │ │ move-result-object v0 │ │ invoke-static {v0}, Ljava/lang/Boolean;->parseBoolean(Ljava/lang/String;)Z │ │ move-result v0 │ │ invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v0 │ │ goto :goto_0 │ │ - .line 153 │ + .line 161 │ :cond_1 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextBoolean()Z │ │ move-result v0 │ │ invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v0 │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 143 │ + .line 151 │ invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$3;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Boolean; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Boolean;)V │ - .locals 1 │ + .locals 0 │ .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ .param p2, "value" # Ljava/lang/Boolean; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 157 │ - if-nez p2, :cond_0 │ - │ - .line 158 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->nullValue()Lcom/google/gson/stream/JsonWriter; │ + .line 165 │ + invoke-virtual {p1, p2}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/Boolean;)Lcom/google/gson/stream/JsonWriter; │ │ - .line 162 │ - :goto_0 │ + .line 166 │ return-void │ - │ - .line 161 │ - :cond_0 │ - invoke-virtual {p2}, Ljava/lang/Boolean;->booleanValue()Z │ - │ - move-result v0 │ - │ - invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->value(Z)Lcom/google/gson/stream/JsonWriter; │ - │ - goto :goto_0 │ .end method │ │ .method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 143 │ + .line 151 │ check-cast p2, Ljava/lang/Boolean; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$3;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Boolean;)V │ │ return-void │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$4.smali │ @@ -24,15 +24,15 @@ │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 169 │ + .line 173 │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ @@ -42,30 +42,30 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 171 │ + .line 175 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v0 │ │ sget-object v1, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ if-ne v0, v1, :cond_0 │ │ - .line 172 │ + .line 176 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ │ - .line 173 │ + .line 177 │ const/4 v0, 0x0 │ │ - .line 175 │ + .line 179 │ :goto_0 │ return-object v0 │ │ :cond_0 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextString()Ljava/lang/String; │ │ move-result-object v0 │ @@ -75,23 +75,22 @@ │ move-result-object v0 │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 169 │ + .line 173 │ invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$4;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Boolean; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ @@ -102,46 +101,43 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 179 │ + .line 183 │ if-nez p2, :cond_0 │ │ const-string v0, "null" │ │ :goto_0 │ invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ │ - .line 180 │ + .line 184 │ return-void │ │ - .line 179 │ + .line 183 │ :cond_0 │ invoke-virtual {p2}, Ljava/lang/Boolean;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 169 │ + .line 173 │ check-cast p2, Ljava/lang/Boolean; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$4;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Boolean;)V │ │ return-void │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$5.smali │ @@ -24,15 +24,15 @@ │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 186 │ + .line 190 │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ @@ -42,77 +42,76 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 189 │ + .line 193 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v2 │ │ sget-object v3, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ if-ne v2, v3, :cond_0 │ │ - .line 190 │ + .line 194 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ │ - .line 191 │ + .line 195 │ const/4 v2, 0x0 │ │ - .line 195 │ + .line 199 │ :goto_0 │ return-object v2 │ │ - .line 194 │ + .line 198 │ :cond_0 │ :try_start_0 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextInt()I │ │ move-result v1 │ │ - .line 195 │ + .line 199 │ .local v1, "intValue":I │ int-to-byte v2, v1 │ │ invoke-static {v2}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte; │ :try_end_0 │ .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 │ │ move-result-object v2 │ │ goto :goto_0 │ │ - .line 196 │ + .line 200 │ .end local v1 # "intValue":I │ :catch_0 │ move-exception v0 │ │ - .line 197 │ + .line 201 │ .local v0, "e":Ljava/lang/NumberFormatException; │ new-instance v2, Lcom/google/gson/JsonSyntaxException; │ │ invoke-direct {v2, v0}, Lcom/google/gson/JsonSyntaxException;->(Ljava/lang/Throwable;)V │ │ throw v2 │ .end method │ │ .method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 186 │ + .line 190 │ invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$5;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Number; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ @@ -123,33 +122,30 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 202 │ + .line 206 │ invoke-virtual {p1, p2}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/Number;)Lcom/google/gson/stream/JsonWriter; │ │ - .line 203 │ + .line 207 │ return-void │ .end method │ │ .method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 186 │ + .line 190 │ check-cast p2, Ljava/lang/Number; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$5;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Number;)V │ │ return-void │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$6.smali │ @@ -24,15 +24,15 @@ │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 209 │ + .line 213 │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ @@ -42,30 +42,30 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 212 │ + .line 216 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v1 │ │ sget-object v2, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ if-ne v1, v2, :cond_0 │ │ - .line 213 │ + .line 217 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ │ - .line 214 │ + .line 218 │ const/4 v1, 0x0 │ │ - .line 217 │ + .line 221 │ :goto_0 │ return-object v1 │ │ :cond_0 │ :try_start_0 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextInt()I │ │ @@ -77,38 +77,37 @@ │ :try_end_0 │ .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 │ │ move-result-object v1 │ │ goto :goto_0 │ │ - .line 218 │ + .line 222 │ :catch_0 │ move-exception v0 │ │ - .line 219 │ + .line 223 │ .local v0, "e":Ljava/lang/NumberFormatException; │ new-instance v1, Lcom/google/gson/JsonSyntaxException; │ │ invoke-direct {v1, v0}, Lcom/google/gson/JsonSyntaxException;->(Ljava/lang/Throwable;)V │ │ throw v1 │ .end method │ │ .method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 209 │ + .line 213 │ invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$6;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Number; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ @@ -119,33 +118,30 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 224 │ + .line 228 │ invoke-virtual {p1, p2}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/Number;)Lcom/google/gson/stream/JsonWriter; │ │ - .line 225 │ + .line 229 │ return-void │ .end method │ │ .method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 209 │ + .line 213 │ check-cast p2, Ljava/lang/Number; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$6;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Number;)V │ │ return-void │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$8.smali │ @@ -13,137 +13,120 @@ │ name = null │ .end annotation │ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Lcom/google/gson/TypeAdapter", │ "<", │ - "Ljava/lang/Number;", │ + "Ljava/util/concurrent/atomic/AtomicInteger;", │ ">;" │ } │ .end annotation │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 253 │ + .line 256 │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ -.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Number; │ - .locals 4 │ - .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ +.method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ + .locals 1 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ .line 256 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ - │ - move-result-object v1 │ - │ - sget-object v2, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ + invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$8;->read(Lcom/google/gson/stream/JsonReader;)Ljava/util/concurrent/atomic/AtomicInteger; │ │ - if-ne v1, v2, :cond_0 │ - │ - .line 257 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ + move-result-object v0 │ │ - .line 258 │ - const/4 v1, 0x0 │ + return-object v0 │ +.end method │ │ - .line 261 │ - :goto_0 │ - return-object v1 │ +.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/util/concurrent/atomic/AtomicInteger; │ + .locals 3 │ + .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/io/IOException; │ + } │ + .end annotation │ │ - :cond_0 │ + .prologue │ + .line 259 │ :try_start_0 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextLong()J │ + new-instance v1, Ljava/util/concurrent/atomic/AtomicInteger; │ + │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextInt()I │ │ - move-result-wide v2 │ + move-result v2 │ │ - invoke-static {v2, v3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ + invoke-direct {v1, v2}, Ljava/util/concurrent/atomic/AtomicInteger;->(I)V │ :try_end_0 │ .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - move-result-object v1 │ - │ - goto :goto_0 │ + return-object v1 │ │ - .line 262 │ + .line 260 │ :catch_0 │ move-exception v0 │ │ - .line 263 │ + .line 261 │ .local v0, "e":Ljava/lang/NumberFormatException; │ new-instance v1, Lcom/google/gson/JsonSyntaxException; │ │ invoke-direct {v1, v0}, Lcom/google/gson/JsonSyntaxException;->(Ljava/lang/Throwable;)V │ │ throw v1 │ .end method │ │ -.method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ - .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ +.method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ + .locals 0 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 253 │ - invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$8;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Number; │ + .line 256 │ + check-cast p2, Ljava/util/concurrent/atomic/AtomicInteger; │ │ - move-result-object v0 │ + invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$8;->write(Lcom/google/gson/stream/JsonWriter;Ljava/util/concurrent/atomic/AtomicInteger;)V │ │ - return-object v0 │ + return-void │ .end method │ │ -.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Number;)V │ - .locals 0 │ +.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/util/concurrent/atomic/AtomicInteger;)V │ + .locals 2 │ .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "value" # Ljava/lang/Number; │ + .param p2, "value" # Ljava/util/concurrent/atomic/AtomicInteger; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 268 │ - invoke-virtual {p1, p2}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/Number;)Lcom/google/gson/stream/JsonWriter; │ + .line 265 │ + invoke-virtual {p2}, Ljava/util/concurrent/atomic/AtomicInteger;->get()I │ │ - .line 269 │ - return-void │ -.end method │ - │ -.method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ - .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ - .annotation system Ldalvik/annotation/Throws; │ - value = { │ - Ljava/io/IOException; │ - } │ - .end annotation │ + move-result v0 │ │ - .prologue │ - .line 253 │ - check-cast p2, Ljava/lang/Number; │ + int-to-long v0, v0 │ │ - .end local p2 # "x1":Ljava/lang/Object; │ - invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$8;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Number;)V │ + invoke-virtual {p1, v0, v1}, Lcom/google/gson/stream/JsonWriter;->value(J)Lcom/google/gson/stream/JsonWriter; │ │ + .line 266 │ return-void │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$9.smali │ @@ -13,124 +13,103 @@ │ name = null │ .end annotation │ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Lcom/google/gson/TypeAdapter", │ "<", │ - "Ljava/lang/Number;", │ + "Ljava/util/concurrent/atomic/AtomicBoolean;", │ ">;" │ } │ .end annotation │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 272 │ + .line 271 │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ -.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Number; │ - .locals 2 │ - .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ +.method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ + .locals 1 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 275 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ + .line 271 │ + invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$9;->read(Lcom/google/gson/stream/JsonReader;)Ljava/util/concurrent/atomic/AtomicBoolean; │ │ move-result-object v0 │ │ - sget-object v1, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ - │ - if-ne v0, v1, :cond_0 │ - │ - .line 276 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ - │ - .line 277 │ - const/4 v0, 0x0 │ - │ - .line 279 │ - :goto_0 │ return-object v0 │ - │ - :cond_0 │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextDouble()D │ - │ - move-result-wide v0 │ - │ - double-to-float v0, v0 │ - │ - invoke-static {v0}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float; │ - │ - move-result-object v0 │ - │ - goto :goto_0 │ .end method │ │ -.method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ - .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ +.method public read(Lcom/google/gson/stream/JsonReader;)Ljava/util/concurrent/atomic/AtomicBoolean; │ + .locals 2 │ + .param p1, "in" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 272 │ - invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$9;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Number; │ + .line 273 │ + new-instance v0, Ljava/util/concurrent/atomic/AtomicBoolean; │ │ - move-result-object v0 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextBoolean()Z │ + │ + move-result v1 │ + │ + invoke-direct {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;->(Z)V │ │ return-object v0 │ .end method │ │ -.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Number;)V │ +.method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "value" # Ljava/lang/Number; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 283 │ - invoke-virtual {p1, p2}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/Number;)Lcom/google/gson/stream/JsonWriter; │ + .line 271 │ + check-cast p2, Ljava/util/concurrent/atomic/AtomicBoolean; │ + │ + invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$9;->write(Lcom/google/gson/stream/JsonWriter;Ljava/util/concurrent/atomic/AtomicBoolean;)V │ │ - .line 284 │ return-void │ .end method │ │ -.method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ - .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ +.method public write(Lcom/google/gson/stream/JsonWriter;Ljava/util/concurrent/atomic/AtomicBoolean;)V │ + .locals 1 │ + .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ + .param p2, "value" # Ljava/util/concurrent/atomic/AtomicBoolean; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 272 │ - check-cast p2, Ljava/lang/Number; │ + .line 276 │ + invoke-virtual {p2}, Ljava/util/concurrent/atomic/AtomicBoolean;->get()Z │ │ - .end local p2 # "x1":Ljava/lang/Object; │ - invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$9;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Number;)V │ + move-result v0 │ │ + invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->value(Z)Lcom/google/gson/stream/JsonWriter; │ + │ + .line 277 │ return-void │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$7.smali │ @@ -24,15 +24,15 @@ │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 231 │ + .line 235 │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ @@ -42,30 +42,30 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 234 │ + .line 238 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v1 │ │ sget-object v2, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ if-ne v1, v2, :cond_0 │ │ - .line 235 │ + .line 239 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ │ - .line 236 │ + .line 240 │ const/4 v1, 0x0 │ │ - .line 239 │ + .line 243 │ :goto_0 │ return-object v1 │ │ :cond_0 │ :try_start_0 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextInt()I │ │ @@ -75,38 +75,37 @@ │ :try_end_0 │ .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 │ │ move-result-object v1 │ │ goto :goto_0 │ │ - .line 240 │ + .line 244 │ :catch_0 │ move-exception v0 │ │ - .line 241 │ + .line 245 │ .local v0, "e":Ljava/lang/NumberFormatException; │ new-instance v1, Lcom/google/gson/JsonSyntaxException; │ │ invoke-direct {v1, v0}, Lcom/google/gson/JsonSyntaxException;->(Ljava/lang/Throwable;)V │ │ throw v1 │ .end method │ │ .method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 231 │ + .line 235 │ invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$7;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Number; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ @@ -117,33 +116,30 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 246 │ + .line 250 │ invoke-virtual {p1, p2}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/Number;)Lcom/google/gson/stream/JsonWriter; │ │ - .line 247 │ + .line 251 │ return-void │ .end method │ │ .method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 231 │ + .line 235 │ check-cast p2, Ljava/lang/Number; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$7;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Number;)V │ │ return-void │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters.smali │ @@ -2,21 +2,59 @@ │ .super Ljava/lang/Object; │ .source "TypeAdapters.java" │ │ │ # annotations │ .annotation system Ldalvik/annotation/MemberClasses; │ value = { │ - Lcom/google/gson/internal/bind/TypeAdapters$32;, │ Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter; │ } │ .end annotation │ │ │ # static fields │ +.field public static final ATOMIC_BOOLEAN:Lcom/google/gson/TypeAdapter; │ + .annotation system Ldalvik/annotation/Signature; │ + value = { │ + "Lcom/google/gson/TypeAdapter", │ + "<", │ + "Ljava/util/concurrent/atomic/AtomicBoolean;", │ + ">;" │ + } │ + .end annotation │ +.end field │ + │ +.field public static final ATOMIC_BOOLEAN_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + │ +.field public static final ATOMIC_INTEGER:Lcom/google/gson/TypeAdapter; │ + .annotation system Ldalvik/annotation/Signature; │ + value = { │ + "Lcom/google/gson/TypeAdapter", │ + "<", │ + "Ljava/util/concurrent/atomic/AtomicInteger;", │ + ">;" │ + } │ + .end annotation │ +.end field │ + │ +.field public static final ATOMIC_INTEGER_ARRAY:Lcom/google/gson/TypeAdapter; │ + .annotation system Ldalvik/annotation/Signature; │ + value = { │ + "Lcom/google/gson/TypeAdapter", │ + "<", │ + "Ljava/util/concurrent/atomic/AtomicIntegerArray;", │ + ">;" │ + } │ + .end annotation │ +.end field │ + │ +.field public static final ATOMIC_INTEGER_ARRAY_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + │ +.field public static final ATOMIC_INTEGER_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + │ .field public static final BIG_DECIMAL:Lcom/google/gson/TypeAdapter; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Lcom/google/gson/TypeAdapter", │ "<", │ "Ljava/math/BigDecimal;", │ ">;" │ @@ -120,14 +158,27 @@ │ ">;" │ } │ .end annotation │ .end field │ │ .field public static final CLASS_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ +.field public static final CURRENCY:Lcom/google/gson/TypeAdapter; │ + .annotation system Ldalvik/annotation/Signature; │ + value = { │ + "Lcom/google/gson/TypeAdapter", │ + "<", │ + "Ljava/util/Currency;", │ + ">;" │ + } │ + .end annotation │ +.end field │ + │ +.field public static final CURRENCY_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + │ .field public static final DOUBLE:Lcom/google/gson/TypeAdapter; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Lcom/google/gson/TypeAdapter", │ "<", │ "Ljava/lang/Number;", │ ">;" │ @@ -319,417 +370,527 @@ │ │ │ # direct methods │ .method static constructor ()V │ .locals 3 │ │ .prologue │ - .line 61 │ + .line 69 │ new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$1; │ │ invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$1;->()V │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->CLASS:Lcom/google/gson/TypeAdapter; │ │ - .line 82 │ + .line 90 │ const-class v0, Ljava/lang/Class; │ │ sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->CLASS:Lcom/google/gson/TypeAdapter; │ │ invoke-static {v0, v1}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ │ move-result-object v0 │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->CLASS_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - .line 84 │ + .line 92 │ new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$2; │ │ invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$2;->()V │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->BIT_SET:Lcom/google/gson/TypeAdapter; │ │ - .line 141 │ + .line 149 │ const-class v0, Ljava/util/BitSet; │ │ sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->BIT_SET:Lcom/google/gson/TypeAdapter; │ │ invoke-static {v0, v1}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ │ move-result-object v0 │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->BIT_SET_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - .line 143 │ + .line 151 │ new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$3; │ │ invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$3;->()V │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->BOOLEAN:Lcom/google/gson/TypeAdapter; │ │ - .line 169 │ + .line 173 │ new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$4; │ │ invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$4;->()V │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->BOOLEAN_AS_STRING:Lcom/google/gson/TypeAdapter; │ │ - .line 183 │ + .line 187 │ sget-object v0, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class; │ │ const-class v1, Ljava/lang/Boolean; │ │ sget-object v2, Lcom/google/gson/internal/bind/TypeAdapters;->BOOLEAN:Lcom/google/gson/TypeAdapter; │ │ + .line 188 │ invoke-static {v0, v1, v2}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ │ move-result-object v0 │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->BOOLEAN_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - .line 186 │ + .line 190 │ new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$5; │ │ invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$5;->()V │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->BYTE:Lcom/google/gson/TypeAdapter; │ │ - .line 206 │ + .line 210 │ sget-object v0, Ljava/lang/Byte;->TYPE:Ljava/lang/Class; │ │ const-class v1, Ljava/lang/Byte; │ │ sget-object v2, Lcom/google/gson/internal/bind/TypeAdapters;->BYTE:Lcom/google/gson/TypeAdapter; │ │ + .line 211 │ invoke-static {v0, v1, v2}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ │ move-result-object v0 │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->BYTE_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - .line 209 │ + .line 213 │ new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$6; │ │ invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$6;->()V │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->SHORT:Lcom/google/gson/TypeAdapter; │ │ - .line 228 │ + .line 232 │ sget-object v0, Ljava/lang/Short;->TYPE:Ljava/lang/Class; │ │ const-class v1, Ljava/lang/Short; │ │ sget-object v2, Lcom/google/gson/internal/bind/TypeAdapters;->SHORT:Lcom/google/gson/TypeAdapter; │ │ + .line 233 │ invoke-static {v0, v1, v2}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ │ move-result-object v0 │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->SHORT_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - .line 231 │ + .line 235 │ new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$7; │ │ invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$7;->()V │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->INTEGER:Lcom/google/gson/TypeAdapter; │ │ - .line 250 │ + .line 253 │ sget-object v0, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; │ │ const-class v1, Ljava/lang/Integer; │ │ sget-object v2, Lcom/google/gson/internal/bind/TypeAdapters;->INTEGER:Lcom/google/gson/TypeAdapter; │ │ + .line 254 │ invoke-static {v0, v1, v2}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ │ move-result-object v0 │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->INTEGER_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - .line 253 │ + .line 256 │ new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$8; │ │ invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$8;->()V │ │ - sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->LONG:Lcom/google/gson/TypeAdapter; │ + .line 267 │ + invoke-virtual {v0}, Lcom/google/gson/internal/bind/TypeAdapters$8;->nullSafe()Lcom/google/gson/TypeAdapter; │ + │ + move-result-object v0 │ + │ + sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->ATOMIC_INTEGER:Lcom/google/gson/TypeAdapter; │ + │ + .line 268 │ + const-class v0, Ljava/util/concurrent/atomic/AtomicInteger; │ │ - .line 272 │ + sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->ATOMIC_INTEGER:Lcom/google/gson/TypeAdapter; │ + │ + .line 269 │ + invoke-static {v0, v1}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ + │ + move-result-object v0 │ + │ + sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->ATOMIC_INTEGER_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + │ + .line 271 │ new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$9; │ │ invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$9;->()V │ │ - sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->FLOAT:Lcom/google/gson/TypeAdapter; │ + .line 278 │ + invoke-virtual {v0}, Lcom/google/gson/internal/bind/TypeAdapters$9;->nullSafe()Lcom/google/gson/TypeAdapter; │ + │ + move-result-object v0 │ + │ + sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->ATOMIC_BOOLEAN:Lcom/google/gson/TypeAdapter; │ + │ + .line 279 │ + const-class v0, Ljava/util/concurrent/atomic/AtomicBoolean; │ + │ + sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->ATOMIC_BOOLEAN:Lcom/google/gson/TypeAdapter; │ │ - .line 287 │ + .line 280 │ + invoke-static {v0, v1}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ + │ + move-result-object v0 │ + │ + sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->ATOMIC_BOOLEAN_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + │ + .line 282 │ new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$10; │ │ invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$10;->()V │ │ - sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->DOUBLE:Lcom/google/gson/TypeAdapter; │ + .line 309 │ + invoke-virtual {v0}, Lcom/google/gson/internal/bind/TypeAdapters$10;->nullSafe()Lcom/google/gson/TypeAdapter; │ │ - .line 302 │ + move-result-object v0 │ + │ + sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->ATOMIC_INTEGER_ARRAY:Lcom/google/gson/TypeAdapter; │ + │ + .line 310 │ + const-class v0, Ljava/util/concurrent/atomic/AtomicIntegerArray; │ + │ + sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->ATOMIC_INTEGER_ARRAY:Lcom/google/gson/TypeAdapter; │ + │ + .line 311 │ + invoke-static {v0, v1}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ + │ + move-result-object v0 │ + │ + sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->ATOMIC_INTEGER_ARRAY_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + │ + .line 313 │ new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$11; │ │ invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$11;->()V │ │ + sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->LONG:Lcom/google/gson/TypeAdapter; │ + │ + .line 332 │ + new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$12; │ + │ + invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$12;->()V │ + │ + sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->FLOAT:Lcom/google/gson/TypeAdapter; │ + │ + .line 347 │ + new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$13; │ + │ + invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$13;->()V │ + │ + sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->DOUBLE:Lcom/google/gson/TypeAdapter; │ + │ + .line 362 │ + new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$14; │ + │ + invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$14;->()V │ + │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->NUMBER:Lcom/google/gson/TypeAdapter; │ │ - .line 322 │ + .line 382 │ const-class v0, Ljava/lang/Number; │ │ sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->NUMBER:Lcom/google/gson/TypeAdapter; │ │ invoke-static {v0, v1}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ │ move-result-object v0 │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->NUMBER_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - .line 324 │ - new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$12; │ + .line 384 │ + new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$15; │ │ - invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$12;->()V │ + invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$15;->()V │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->CHARACTER:Lcom/google/gson/TypeAdapter; │ │ - .line 343 │ + .line 403 │ sget-object v0, Ljava/lang/Character;->TYPE:Ljava/lang/Class; │ │ const-class v1, Ljava/lang/Character; │ │ sget-object v2, Lcom/google/gson/internal/bind/TypeAdapters;->CHARACTER:Lcom/google/gson/TypeAdapter; │ │ + .line 404 │ invoke-static {v0, v1, v2}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ │ move-result-object v0 │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->CHARACTER_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - .line 346 │ - new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$13; │ + .line 406 │ + new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$16; │ │ - invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$13;->()V │ + invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$16;->()V │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->STRING:Lcom/google/gson/TypeAdapter; │ │ - .line 366 │ - new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$14; │ + .line 426 │ + new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$17; │ │ - invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$14;->()V │ + invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$17;->()V │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->BIG_DECIMAL:Lcom/google/gson/TypeAdapter; │ │ - .line 384 │ - new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$15; │ + .line 444 │ + new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$18; │ │ - invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$15;->()V │ + invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$18;->()V │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->BIG_INTEGER:Lcom/google/gson/TypeAdapter; │ │ - .line 402 │ + .line 462 │ const-class v0, Ljava/lang/String; │ │ sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->STRING:Lcom/google/gson/TypeAdapter; │ │ invoke-static {v0, v1}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ │ move-result-object v0 │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->STRING_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - .line 404 │ - new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$16; │ + .line 464 │ + new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$19; │ │ - invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$16;->()V │ + invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$19;->()V │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->STRING_BUILDER:Lcom/google/gson/TypeAdapter; │ │ - .line 419 │ + .line 479 │ const-class v0, Ljava/lang/StringBuilder; │ │ sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->STRING_BUILDER:Lcom/google/gson/TypeAdapter; │ │ + .line 480 │ invoke-static {v0, v1}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ │ move-result-object v0 │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->STRING_BUILDER_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - .line 422 │ - new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$17; │ + .line 482 │ + new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$20; │ │ - invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$17;->()V │ + invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$20;->()V │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->STRING_BUFFER:Lcom/google/gson/TypeAdapter; │ │ - .line 437 │ + .line 497 │ const-class v0, Ljava/lang/StringBuffer; │ │ sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->STRING_BUFFER:Lcom/google/gson/TypeAdapter; │ │ + .line 498 │ invoke-static {v0, v1}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ │ move-result-object v0 │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->STRING_BUFFER_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - .line 440 │ - new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$18; │ + .line 500 │ + new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$21; │ │ - invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$18;->()V │ + invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$21;->()V │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->URL:Lcom/google/gson/TypeAdapter; │ │ - .line 456 │ + .line 516 │ const-class v0, Ljava/net/URL; │ │ sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->URL:Lcom/google/gson/TypeAdapter; │ │ invoke-static {v0, v1}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ │ move-result-object v0 │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->URL_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - .line 458 │ - new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$19; │ + .line 518 │ + new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$22; │ │ - invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$19;->()V │ + invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$22;->()V │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->URI:Lcom/google/gson/TypeAdapter; │ │ - .line 478 │ + .line 538 │ const-class v0, Ljava/net/URI; │ │ sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->URI:Lcom/google/gson/TypeAdapter; │ │ invoke-static {v0, v1}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ │ move-result-object v0 │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->URI_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - .line 480 │ - new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$20; │ + .line 540 │ + new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$23; │ │ - invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$20;->()V │ + invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$23;->()V │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->INET_ADDRESS:Lcom/google/gson/TypeAdapter; │ │ - .line 496 │ + .line 556 │ const-class v0, Ljava/net/InetAddress; │ │ sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->INET_ADDRESS:Lcom/google/gson/TypeAdapter; │ │ + .line 557 │ invoke-static {v0, v1}, Lcom/google/gson/internal/bind/TypeAdapters;->newTypeHierarchyFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ │ move-result-object v0 │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->INET_ADDRESS_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - .line 499 │ - new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$21; │ + .line 559 │ + new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$24; │ │ - invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$21;->()V │ + invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$24;->()V │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->UUID:Lcom/google/gson/TypeAdapter; │ │ - .line 514 │ + .line 574 │ const-class v0, Ljava/util/UUID; │ │ sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->UUID:Lcom/google/gson/TypeAdapter; │ │ invoke-static {v0, v1}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ │ move-result-object v0 │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->UUID_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - .line 516 │ - new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$22; │ + .line 576 │ + new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$25; │ │ - invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$22;->()V │ + invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$25;->()V │ + │ + .line 585 │ + invoke-virtual {v0}, Lcom/google/gson/internal/bind/TypeAdapters$25;->nullSafe()Lcom/google/gson/TypeAdapter; │ + │ + move-result-object v0 │ + │ + sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->CURRENCY:Lcom/google/gson/TypeAdapter; │ + │ + .line 586 │ + const-class v0, Ljava/util/Currency; │ + │ + sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->CURRENCY:Lcom/google/gson/TypeAdapter; │ + │ + invoke-static {v0, v1}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ + │ + move-result-object v0 │ + │ + sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->CURRENCY_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ + │ + .line 588 │ + new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$26; │ + │ + invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$26;->()V │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->TIMESTAMP_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - .line 537 │ - new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$23; │ + .line 609 │ + new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$27; │ │ - invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$23;->()V │ + invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$27;->()V │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->CALENDAR:Lcom/google/gson/TypeAdapter; │ │ - .line 602 │ + .line 674 │ const-class v0, Ljava/util/Calendar; │ │ const-class v1, Ljava/util/GregorianCalendar; │ │ sget-object v2, Lcom/google/gson/internal/bind/TypeAdapters;->CALENDAR:Lcom/google/gson/TypeAdapter; │ │ + .line 675 │ invoke-static {v0, v1, v2}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactoryForMultipleTypes(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ │ move-result-object v0 │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->CALENDAR_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - .line 605 │ - new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$24; │ + .line 677 │ + new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$28; │ │ - invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$24;->()V │ + invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$28;->()V │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->LOCALE:Lcom/google/gson/TypeAdapter; │ │ - .line 640 │ + .line 712 │ const-class v0, Ljava/util/Locale; │ │ sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->LOCALE:Lcom/google/gson/TypeAdapter; │ │ invoke-static {v0, v1}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ │ move-result-object v0 │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->LOCALE_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - .line 642 │ - new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$25; │ + .line 714 │ + new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$29; │ │ - invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$25;->()V │ + invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$29;->()V │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->JSON_ELEMENT:Lcom/google/gson/TypeAdapter; │ │ - .line 714 │ + .line 786 │ const-class v0, Lcom/google/gson/JsonElement; │ │ sget-object v1, Lcom/google/gson/internal/bind/TypeAdapters;->JSON_ELEMENT:Lcom/google/gson/TypeAdapter; │ │ + .line 787 │ invoke-static {v0, v1}, Lcom/google/gson/internal/bind/TypeAdapters;->newTypeHierarchyFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ │ move-result-object v0 │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->JSON_ELEMENT_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ - .line 749 │ - new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$26; │ + .line 824 │ + new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$30; │ │ - invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$26;->()V │ + invoke-direct {v0}, Lcom/google/gson/internal/bind/TypeAdapters$30;->()V │ │ sput-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->ENUM_FACTORY:Lcom/google/gson/TypeAdapterFactory; │ │ return-void │ .end method │ │ .method private constructor ()V │ - .locals 0 │ + .locals 1 │ │ .prologue │ - .line 58 │ + .line 64 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - return-void │ + .line 65 │ + new-instance v0, Ljava/lang/UnsupportedOperationException; │ + │ + invoke-direct {v0}, Ljava/lang/UnsupportedOperationException;->()V │ + │ + throw v0 │ .end method │ │ .method public static newFactory(Lcom/google/gson/reflect/TypeToken;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ .locals 1 │ .annotation system Ldalvik/annotation/Signature; │ value = { │ ";)", │ "Lcom/google/gson/TypeAdapterFactory;" │ } │ .end annotation │ │ .prologue │ - .line 765 │ + .line 840 │ .local p0, "type":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken;" │ .local p1, "typeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ - new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$27; │ + new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$31; │ │ - invoke-direct {v0, p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$27;->(Lcom/google/gson/reflect/TypeToken;Lcom/google/gson/TypeAdapter;)V │ + invoke-direct {v0, p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$31;->(Lcom/google/gson/reflect/TypeToken;Lcom/google/gson/TypeAdapter;)V │ │ return-object v0 │ .end method │ │ .method public static newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ .locals 1 │ .annotation system Ldalvik/annotation/Signature; │ @@ -766,20 +927,20 @@ │ "Lcom/google/gson/TypeAdapter", │ ";)", │ "Lcom/google/gson/TypeAdapterFactory;" │ } │ .end annotation │ │ .prologue │ - .line 775 │ + .line 850 │ .local p0, "type":Ljava/lang/Class;, "Ljava/lang/Class;" │ .local p1, "typeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ - new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$28; │ + new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$32; │ │ - invoke-direct {v0, p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$28;->(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)V │ + invoke-direct {v0, p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$32;->(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)V │ │ return-object v0 │ .end method │ │ .method public static newFactory(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ .locals 1 │ .annotation system Ldalvik/annotation/Signature; │ @@ -794,21 +955,21 @@ │ "Lcom/google/gson/TypeAdapter", │ "<-TTT;>;)", │ "Lcom/google/gson/TypeAdapterFactory;" │ } │ .end annotation │ │ .prologue │ - .line 788 │ + .line 863 │ .local p0, "unboxed":Ljava/lang/Class;, "Ljava/lang/Class;" │ .local p1, "boxed":Ljava/lang/Class;, "Ljava/lang/Class;" │ .local p2, "typeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<-TTT;>;" │ - new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$29; │ + new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$33; │ │ - invoke-direct {v0, p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$29;->(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)V │ + invoke-direct {v0, p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$33;->(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)V │ │ return-object v0 │ .end method │ │ .method public static newFactoryForMultipleTypes(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ .locals 1 │ .annotation system Ldalvik/annotation/Signature; │ @@ -823,43 +984,43 @@ │ "Lcom/google/gson/TypeAdapter", │ "<-TTT;>;)", │ "Lcom/google/gson/TypeAdapterFactory;" │ } │ .end annotation │ │ .prologue │ - .line 803 │ + .line 878 │ .local p0, "base":Ljava/lang/Class;, "Ljava/lang/Class;" │ .local p1, "sub":Ljava/lang/Class;, "Ljava/lang/Class<+TTT;>;" │ .local p2, "typeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<-TTT;>;" │ - new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$30; │ + new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$34; │ │ - invoke-direct {v0, p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$30;->(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)V │ + invoke-direct {v0, p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$34;->(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)V │ │ return-object v0 │ .end method │ │ .method public static newTypeHierarchyFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory; │ .locals 1 │ .annotation system Ldalvik/annotation/Signature; │ value = { │ - "(", │ "Ljava/lang/Class", │ - ";", │ + ";", │ "Lcom/google/gson/TypeAdapter", │ - ";)", │ + ";)", │ "Lcom/google/gson/TypeAdapterFactory;" │ } │ .end annotation │ │ .prologue │ - .line 818 │ - .local p0, "clazz":Ljava/lang/Class;, "Ljava/lang/Class;" │ - .local p1, "typeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ - new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$31; │ + .line 897 │ + .local p0, "clazz":Ljava/lang/Class;, "Ljava/lang/Class;" │ + .local p1, "typeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ + new-instance v0, Lcom/google/gson/internal/bind/TypeAdapters$35; │ │ - invoke-direct {v0, p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$31;->(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)V │ + invoke-direct {v0, p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$35;->(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)V │ │ return-object v0 │ .end method ├── smali/com/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter.smali │ @@ -46,133 +46,154 @@ │ } │ .end annotation │ .end field │ │ │ # direct methods │ .method public constructor (Ljava/lang/Class;)V │ - .locals 9 │ + .locals 13 │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Ljava/lang/Class", │ ";)V" │ } │ .end annotation │ │ .prologue │ - .line 721 │ .local p0, "this":Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter;, "Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter;" │ .local p1, "classOfT":Ljava/lang/Class;, "Ljava/lang/Class;" │ + const/4 v7, 0x0 │ + │ + .line 793 │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ - .line 718 │ - new-instance v7, Ljava/util/HashMap; │ + .line 790 │ + new-instance v5, Ljava/util/HashMap; │ │ - invoke-direct {v7}, Ljava/util/HashMap;->()V │ + invoke-direct {v5}, Ljava/util/HashMap;->()V │ │ - iput-object v7, p0, Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter;->nameToConstant:Ljava/util/Map; │ + iput-object v5, p0, Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter;->nameToConstant:Ljava/util/Map; │ │ - .line 719 │ - new-instance v7, Ljava/util/HashMap; │ + .line 791 │ + new-instance v5, Ljava/util/HashMap; │ │ - invoke-direct {v7}, Ljava/util/HashMap;->()V │ + invoke-direct {v5}, Ljava/util/HashMap;->()V │ │ - iput-object v7, p0, Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter;->constantToName:Ljava/util/Map; │ + iput-object v5, p0, Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter;->constantToName:Ljava/util/Map; │ │ - .line 723 │ + .line 795 │ :try_start_0 │ invoke-virtual {p1}, Ljava/lang/Class;->getEnumConstants()[Ljava/lang/Object; │ │ - move-result-object v1 │ + move-result-object v5 │ │ - check-cast v1, [Ljava/lang/Enum; │ + check-cast v5, [Ljava/lang/Enum; │ │ - .local v1, "arr$":[Ljava/lang/Enum; │ - array-length v5, v1 │ + array-length v9, v5 │ │ - .local v5, "len$":I │ - const/4 v4, 0x0 │ + move v8, v7 │ │ - .local v4, "i$":I │ :goto_0 │ - if-ge v4, v5, :cond_1 │ + if-ge v8, v9, :cond_1 │ │ - aget-object v2, v1, v4 │ + aget-object v2, v5, v8 │ │ - .line 724 │ + .line 796 │ .local v2, "constant":Ljava/lang/Enum;, "TT;" │ invoke-virtual {v2}, Ljava/lang/Enum;->name()Ljava/lang/String; │ │ + move-result-object v4 │ + │ + .line 797 │ + .local v4, "name":Ljava/lang/String; │ + invoke-virtual {p1, v4}, Ljava/lang/Class;->getField(Ljava/lang/String;)Ljava/lang/reflect/Field; │ + │ move-result-object v6 │ │ - .line 725 │ - .local v6, "name":Ljava/lang/String; │ - invoke-virtual {p1, v6}, Ljava/lang/Class;->getField(Ljava/lang/String;)Ljava/lang/reflect/Field; │ + const-class v10, Lcom/google/gson/annotations/SerializedName; │ │ - move-result-object v7 │ + invoke-virtual {v6, v10}, Ljava/lang/reflect/Field;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; │ │ - const-class v8, Lcom/google/gson/annotations/SerializedName; │ + move-result-object v1 │ │ - invoke-virtual {v7, v8}, Ljava/lang/reflect/Field;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; │ + check-cast v1, Lcom/google/gson/annotations/SerializedName; │ │ - move-result-object v0 │ + .line 798 │ + .local v1, "annotation":Lcom/google/gson/annotations/SerializedName; │ + if-eqz v1, :cond_0 │ │ - check-cast v0, Lcom/google/gson/annotations/SerializedName; │ + .line 799 │ + invoke-interface {v1}, Lcom/google/gson/annotations/SerializedName;->value()Ljava/lang/String; │ │ - .line 726 │ - .local v0, "annotation":Lcom/google/gson/annotations/SerializedName; │ - if-eqz v0, :cond_0 │ + move-result-object v4 │ │ - .line 727 │ - invoke-interface {v0}, Lcom/google/gson/annotations/SerializedName;->value()Ljava/lang/String; │ + .line 800 │ + invoke-interface {v1}, Lcom/google/gson/annotations/SerializedName;->alternate()[Ljava/lang/String; │ │ - move-result-object v6 │ + move-result-object v10 │ + │ + array-length v11, v10 │ │ - .line 729 │ + move v6, v7 │ + │ + :goto_1 │ + if-ge v6, v11, :cond_0 │ + │ + aget-object v0, v10, v6 │ + │ + .line 801 │ + .local v0, "alternate":Ljava/lang/String; │ + iget-object v12, p0, Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter;->nameToConstant:Ljava/util/Map; │ + │ + invoke-interface {v12, v0, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + │ + .line 800 │ + add-int/lit8 v6, v6, 0x1 │ + │ + goto :goto_1 │ + │ + .line 804 │ + .end local v0 # "alternate":Ljava/lang/String; │ :cond_0 │ - iget-object v7, p0, Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter;->nameToConstant:Ljava/util/Map; │ + iget-object v6, p0, Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter;->nameToConstant:Ljava/util/Map; │ │ - invoke-interface {v7, v6, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-interface {v6, v4, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ - .line 730 │ - iget-object v7, p0, Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter;->constantToName:Ljava/util/Map; │ + .line 805 │ + iget-object v6, p0, Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter;->constantToName:Ljava/util/Map; │ │ - invoke-interface {v7, v2, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-interface {v6, v2, v4}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ :try_end_0 │ .catch Ljava/lang/NoSuchFieldException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 723 │ - add-int/lit8 v4, v4, 0x1 │ + .line 795 │ + add-int/lit8 v6, v8, 0x1 │ + │ + move v8, v6 │ │ goto :goto_0 │ │ - .line 732 │ - .end local v0 # "annotation":Lcom/google/gson/annotations/SerializedName; │ - .end local v1 # "arr$":[Ljava/lang/Enum; │ + .line 807 │ + .end local v1 # "annotation":Lcom/google/gson/annotations/SerializedName; │ .end local v2 # "constant":Ljava/lang/Enum;, "TT;" │ - .end local v4 # "i$":I │ - .end local v5 # "len$":I │ - .end local v6 # "name":Ljava/lang/String; │ + .end local v4 # "name":Ljava/lang/String; │ :catch_0 │ move-exception v3 │ │ - .line 733 │ + .line 808 │ .local v3, "e":Ljava/lang/NoSuchFieldException; │ - new-instance v7, Ljava/lang/AssertionError; │ + new-instance v5, Ljava/lang/AssertionError; │ │ - invoke-direct {v7}, Ljava/lang/AssertionError;->()V │ + invoke-direct {v5, v3}, Ljava/lang/AssertionError;->(Ljava/lang/Object;)V │ │ - throw v7 │ + throw v5 │ │ - .line 735 │ + .line 810 │ .end local v3 # "e":Ljava/lang/NoSuchFieldException; │ - .restart local v1 # "arr$":[Ljava/lang/Enum; │ - .restart local v4 # "i$":I │ - .restart local v5 # "len$":I │ :cond_1 │ return-void │ .end method │ │ │ # virtual methods │ .method public read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Enum; │ @@ -189,31 +210,31 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 737 │ + .line 812 │ .local p0, "this":Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter;, "Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter;" │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v0 │ │ sget-object v1, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ if-ne v0, v1, :cond_0 │ │ - .line 738 │ + .line 813 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V │ │ - .line 739 │ + .line 814 │ const/4 v0, 0x0 │ │ - .line 741 │ + .line 816 │ :goto_0 │ return-object v0 │ │ :cond_0 │ iget-object v0, p0, Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter;->nameToConstant:Ljava/util/Map; │ │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextString()Ljava/lang/String; │ @@ -227,23 +248,22 @@ │ check-cast v0, Ljava/lang/Enum; │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 717 │ + .line 789 │ .local p0, "this":Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter;, "Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter;" │ invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Enum; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ @@ -262,53 +282,50 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 745 │ + .line 820 │ .local p0, "this":Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter;, "Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter;" │ .local p2, "value":Ljava/lang/Enum;, "TT;" │ if-nez p2, :cond_0 │ │ const/4 v0, 0x0 │ │ :goto_0 │ invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonWriter;->value(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ │ - .line 746 │ + .line 821 │ return-void │ │ - .line 745 │ + .line 820 │ :cond_0 │ iget-object v0, p0, Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter;->constantToName:Ljava/util/Map; │ │ invoke-interface {v0, p2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/lang/String; │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 717 │ + .line 789 │ .local p0, "this":Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter;, "Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter;" │ check-cast p2, Ljava/lang/Enum; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$EnumTypeAdapter;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Enum;)V │ │ return-void │ .end method ├── smali/com/google/gson/reflect/TypeToken.smali │ @@ -112,15 +112,15 @@ │ iput v0, p0, Lcom/google/gson/reflect/TypeToken;->hashCode:I │ │ .line 75 │ return-void │ .end method │ │ .method private static varargs buildUnexpectedTypeError(Ljava/lang/reflect/Type;[Ljava/lang/Class;)Ljava/lang/AssertionError; │ - .locals 7 │ + .locals 6 │ .param p0, "token" # Ljava/lang/reflect/Type; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Ljava/lang/reflect/Type;", │ "[", │ "Ljava/lang/Class", │ @@ -128,104 +128,100 @@ │ "Ljava/lang/AssertionError;" │ } │ .end annotation │ │ .prologue │ .line 257 │ .local p1, "expected":[Ljava/lang/Class;, "[Ljava/lang/Class<*>;" │ - new-instance v2, Ljava/lang/StringBuilder; │ + new-instance v1, Ljava/lang/StringBuilder; │ │ - const-string v5, "Unexpected type. Expected one of: " │ + const-string v2, "Unexpected type. Expected one of: " │ │ - invoke-direct {v2, v5}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V │ + invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V │ │ .line 259 │ - .local v2, "exceptionMessage":Ljava/lang/StringBuilder; │ - move-object v0, p1 │ - │ - .local v0, "arr$":[Ljava/lang/Class; │ - array-length v4, v0 │ + .local v1, "exceptionMessage":Ljava/lang/StringBuilder; │ + array-length v3, p1 │ │ - .local v4, "len$":I │ - const/4 v3, 0x0 │ + const/4 v2, 0x0 │ │ - .local v3, "i$":I │ :goto_0 │ - if-ge v3, v4, :cond_0 │ + if-ge v2, v3, :cond_0 │ │ - aget-object v1, v0, v3 │ + aget-object v0, p1, v2 │ │ .line 260 │ - .local v1, "clazz":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ - invoke-virtual {v1}, Ljava/lang/Class;->getName()Ljava/lang/String; │ + .local v0, "clazz":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ + invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - invoke-virtual {v2, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - const-string v6, ", " │ + const-string v5, ", " │ │ - invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 259 │ - add-int/lit8 v3, v3, 0x1 │ + add-int/lit8 v2, v2, 0x1 │ │ goto :goto_0 │ │ .line 262 │ - .end local v1 # "clazz":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ + .end local v0 # "clazz":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ :cond_0 │ - const-string v5, "but got: " │ + const-string v2, "but got: " │ │ - invoke-virtual {v2, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v5 │ + move-result-object v2 │ │ invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ - move-result-object v6 │ + move-result-object v3 │ │ - invoke-virtual {v6}, Ljava/lang/Class;->getName()Ljava/lang/String; │ + invoke-virtual {v3}, Ljava/lang/Class;->getName()Ljava/lang/String; │ │ - move-result-object v6 │ + move-result-object v3 │ │ - invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v5 │ + move-result-object v2 │ │ - const-string v6, ", for type token: " │ + const-string v3, ", for type token: " │ │ - invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + .line 263 │ + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v5 │ + move-result-object v2 │ │ invoke-virtual {p0}, Ljava/lang/Object;->toString()Ljava/lang/String; │ │ - move-result-object v6 │ + move-result-object v3 │ │ - invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v5 │ + move-result-object v2 │ │ - const/16 v6, 0x2e │ + const/16 v3, 0x2e │ │ - invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ .line 265 │ - new-instance v5, Ljava/lang/AssertionError; │ + new-instance v2, Ljava/lang/AssertionError; │ │ - invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v6 │ + move-result-object v3 │ │ - invoke-direct {v5, v6}, Ljava/lang/AssertionError;->(Ljava/lang/Object;)V │ + invoke-direct {v2, v3}, Ljava/lang/AssertionError;->(Ljava/lang/Object;)V │ │ - return-object v5 │ + return-object v2 │ .end method │ │ .method public static get(Ljava/lang/Class;)Lcom/google/gson/reflect/TypeToken; │ .locals 1 │ .annotation system Ldalvik/annotation/Signature; │ value = { │ ";" │ if-nez p0, :cond_0 │ │ .line 189 │ - const/4 v15, 0x0 │ + const/4 v12, 0x0 │ │ .line 231 │ :goto_0 │ - return v15 │ + return v12 │ │ .line 192 │ :cond_0 │ move-object/from16 v0, p1 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z │ │ - move-result v15 │ + move-result v12 │ │ - if-eqz v15, :cond_1 │ + if-eqz v12, :cond_1 │ │ .line 193 │ - const/4 v15, 0x1 │ + const/4 v12, 0x1 │ │ goto :goto_0 │ │ .line 197 │ :cond_1 │ invoke-static/range {p0 .. p0}, Lcom/google/gson/internal/$Gson$Types;->getRawType(Ljava/lang/reflect/Type;)Ljava/lang/Class; │ │ - move-result-object v4 │ + move-result-object v3 │ │ .line 198 │ - .local v4, "clazz":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ - const/4 v9, 0x0 │ + .local v3, "clazz":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ + const/4 v6, 0x0 │ │ .line 199 │ - .local v9, "ptype":Ljava/lang/reflect/ParameterizedType; │ + .local v6, "ptype":Ljava/lang/reflect/ParameterizedType; │ move-object/from16 v0, p0 │ │ - instance-of v15, v0, Ljava/lang/reflect/ParameterizedType; │ + instance-of v12, v0, Ljava/lang/reflect/ParameterizedType; │ │ - if-eqz v15, :cond_2 │ + if-eqz v12, :cond_2 │ │ - move-object/from16 v9, p0 │ + move-object/from16 v6, p0 │ │ .line 200 │ - check-cast v9, Ljava/lang/reflect/ParameterizedType; │ + check-cast v6, Ljava/lang/reflect/ParameterizedType; │ │ .line 204 │ :cond_2 │ - if-eqz v9, :cond_5 │ + if-eqz v6, :cond_5 │ │ .line 205 │ - invoke-interface {v9}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type; │ + invoke-interface {v6}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type; │ │ - move-result-object v11 │ + move-result-object v8 │ │ .line 206 │ - .local v11, "tArgs":[Ljava/lang/reflect/Type; │ - invoke-virtual {v4}, Ljava/lang/Class;->getTypeParameters()[Ljava/lang/reflect/TypeVariable; │ + .local v8, "tArgs":[Ljava/lang/reflect/Type; │ + invoke-virtual {v3}, Ljava/lang/Class;->getTypeParameters()[Ljava/lang/reflect/TypeVariable; │ │ - move-result-object v12 │ + move-result-object v9 │ │ .line 207 │ - .local v12, "tParams":[Ljava/lang/reflect/TypeVariable;, "[Ljava/lang/reflect/TypeVariable<*>;" │ - const/4 v5, 0x0 │ + .local v9, "tParams":[Ljava/lang/reflect/TypeVariable;, "[Ljava/lang/reflect/TypeVariable<*>;" │ + const/4 v4, 0x0 │ │ - .local v5, "i":I │ + .local v4, "i":I │ :goto_1 │ - array-length v15, v11 │ + array-length v12, v8 │ │ - if-ge v5, v15, :cond_4 │ + if-ge v4, v12, :cond_4 │ │ .line 208 │ - aget-object v2, v11, v5 │ + aget-object v2, v8, v4 │ │ .line 209 │ .local v2, "arg":Ljava/lang/reflect/Type; │ - aget-object v14, v12, v5 │ + aget-object v11, v9, v4 │ │ .line 210 │ - .local v14, "var":Ljava/lang/reflect/TypeVariable;, "Ljava/lang/reflect/TypeVariable<*>;" │ + .local v11, "var":Ljava/lang/reflect/TypeVariable;, "Ljava/lang/reflect/TypeVariable<*>;" │ :goto_2 │ - instance-of v15, v2, Ljava/lang/reflect/TypeVariable; │ + instance-of v12, v2, Ljava/lang/reflect/TypeVariable; │ │ - if-eqz v15, :cond_3 │ + if-eqz v12, :cond_3 │ │ - move-object v13, v2 │ + move-object v10, v2 │ │ .line 211 │ - check-cast v13, Ljava/lang/reflect/TypeVariable; │ + check-cast v10, Ljava/lang/reflect/TypeVariable; │ │ .line 212 │ - .local v13, "v":Ljava/lang/reflect/TypeVariable;, "Ljava/lang/reflect/TypeVariable<*>;" │ - invoke-interface {v13}, Ljava/lang/reflect/TypeVariable;->getName()Ljava/lang/String; │ + .local v10, "v":Ljava/lang/reflect/TypeVariable;, "Ljava/lang/reflect/TypeVariable<*>;" │ + invoke-interface {v10}, Ljava/lang/reflect/TypeVariable;->getName()Ljava/lang/String; │ │ - move-result-object v15 │ + move-result-object v12 │ │ move-object/from16 v0, p2 │ │ - invoke-interface {v0, v15}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-interface {v0, v12}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v2 │ │ .end local v2 # "arg":Ljava/lang/reflect/Type; │ check-cast v2, Ljava/lang/reflect/Type; │ │ .line 213 │ .restart local v2 # "arg":Ljava/lang/reflect/Type; │ goto :goto_2 │ │ .line 214 │ - .end local v13 # "v":Ljava/lang/reflect/TypeVariable;, "Ljava/lang/reflect/TypeVariable<*>;" │ + .end local v10 # "v":Ljava/lang/reflect/TypeVariable;, "Ljava/lang/reflect/TypeVariable<*>;" │ :cond_3 │ - invoke-interface {v14}, Ljava/lang/reflect/TypeVariable;->getName()Ljava/lang/String; │ + invoke-interface {v11}, Ljava/lang/reflect/TypeVariable;->getName()Ljava/lang/String; │ │ - move-result-object v15 │ + move-result-object v12 │ │ move-object/from16 v0, p2 │ │ - invoke-interface {v0, v15, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-interface {v0, v12, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ .line 207 │ - add-int/lit8 v5, v5, 0x1 │ + add-int/lit8 v4, v4, 0x1 │ │ goto :goto_1 │ │ .line 218 │ .end local v2 # "arg":Ljava/lang/reflect/Type; │ - .end local v14 # "var":Ljava/lang/reflect/TypeVariable;, "Ljava/lang/reflect/TypeVariable<*>;" │ + .end local v11 # "var":Ljava/lang/reflect/TypeVariable;, "Ljava/lang/reflect/TypeVariable<*>;" │ :cond_4 │ move-object/from16 v0, p1 │ │ move-object/from16 v1, p2 │ │ - invoke-static {v9, v0, v1}, Lcom/google/gson/reflect/TypeToken;->typeEquals(Ljava/lang/reflect/ParameterizedType;Ljava/lang/reflect/ParameterizedType;Ljava/util/Map;)Z │ + invoke-static {v6, v0, v1}, Lcom/google/gson/reflect/TypeToken;->typeEquals(Ljava/lang/reflect/ParameterizedType;Ljava/lang/reflect/ParameterizedType;Ljava/util/Map;)Z │ │ - move-result v15 │ + move-result v12 │ │ - if-eqz v15, :cond_5 │ + if-eqz v12, :cond_5 │ │ .line 219 │ - const/4 v15, 0x1 │ + const/4 v12, 0x1 │ │ goto :goto_0 │ │ .line 223 │ - .end local v5 # "i":I │ - .end local v11 # "tArgs":[Ljava/lang/reflect/Type; │ - .end local v12 # "tParams":[Ljava/lang/reflect/TypeVariable;, "[Ljava/lang/reflect/TypeVariable<*>;" │ + .end local v4 # "i":I │ + .end local v8 # "tArgs":[Ljava/lang/reflect/Type; │ + .end local v9 # "tParams":[Ljava/lang/reflect/TypeVariable;, "[Ljava/lang/reflect/TypeVariable<*>;" │ :cond_5 │ - invoke-virtual {v4}, Ljava/lang/Class;->getGenericInterfaces()[Ljava/lang/reflect/Type; │ + invoke-virtual {v3}, Ljava/lang/Class;->getGenericInterfaces()[Ljava/lang/reflect/Type; │ │ - move-result-object v3 │ + move-result-object v13 │ │ - .local v3, "arr$":[Ljava/lang/reflect/Type; │ - array-length v8, v3 │ + array-length v14, v13 │ │ - .local v8, "len$":I │ - const/4 v6, 0x0 │ + const/4 v12, 0x0 │ │ - .local v6, "i$":I │ :goto_3 │ - if-ge v6, v8, :cond_7 │ + if-ge v12, v14, :cond_7 │ │ - aget-object v7, v3, v6 │ + aget-object v5, v13, v12 │ │ .line 224 │ - .local v7, "itype":Ljava/lang/reflect/Type; │ + .local v5, "itype":Ljava/lang/reflect/Type; │ new-instance v15, Ljava/util/HashMap; │ │ move-object/from16 v0, p2 │ │ invoke-direct {v15, v0}, Ljava/util/HashMap;->(Ljava/util/Map;)V │ │ move-object/from16 v0, p1 │ │ - invoke-static {v7, v0, v15}, Lcom/google/gson/reflect/TypeToken;->isAssignableFrom(Ljava/lang/reflect/Type;Ljava/lang/reflect/ParameterizedType;Ljava/util/Map;)Z │ + invoke-static {v5, v0, v15}, Lcom/google/gson/reflect/TypeToken;->isAssignableFrom(Ljava/lang/reflect/Type;Ljava/lang/reflect/ParameterizedType;Ljava/util/Map;)Z │ │ move-result v15 │ │ if-eqz v15, :cond_6 │ │ .line 225 │ - const/4 v15, 0x1 │ + const/4 v12, 0x1 │ │ goto :goto_0 │ │ .line 223 │ :cond_6 │ - add-int/lit8 v6, v6, 0x1 │ + add-int/lit8 v12, v12, 0x1 │ │ goto :goto_3 │ │ .line 230 │ - .end local v7 # "itype":Ljava/lang/reflect/Type; │ + .end local v5 # "itype":Ljava/lang/reflect/Type; │ :cond_7 │ - invoke-virtual {v4}, Ljava/lang/Class;->getGenericSuperclass()Ljava/lang/reflect/Type; │ + invoke-virtual {v3}, Ljava/lang/Class;->getGenericSuperclass()Ljava/lang/reflect/Type; │ │ - move-result-object v10 │ + move-result-object v7 │ │ .line 231 │ - .local v10, "sType":Ljava/lang/reflect/Type; │ - new-instance v15, Ljava/util/HashMap; │ + .local v7, "sType":Ljava/lang/reflect/Type; │ + new-instance v12, Ljava/util/HashMap; │ │ move-object/from16 v0, p2 │ │ - invoke-direct {v15, v0}, Ljava/util/HashMap;->(Ljava/util/Map;)V │ + invoke-direct {v12, v0}, Ljava/util/HashMap;->(Ljava/util/Map;)V │ │ move-object/from16 v0, p1 │ │ - invoke-static {v10, v0, v15}, Lcom/google/gson/reflect/TypeToken;->isAssignableFrom(Ljava/lang/reflect/Type;Ljava/lang/reflect/ParameterizedType;Ljava/util/Map;)Z │ + invoke-static {v7, v0, v12}, Lcom/google/gson/reflect/TypeToken;->isAssignableFrom(Ljava/lang/reflect/Type;Ljava/lang/reflect/ParameterizedType;Ljava/util/Map;)Z │ │ - move-result v15 │ + move-result v12 │ │ goto/16 :goto_0 │ .end method │ │ .method private static matches(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Ljava/util/Map;)Z │ .locals 1 │ .param p0, "from" # Ljava/lang/reflect/Type; │ @@ -691,14 +684,15 @@ │ │ instance-of v0, p0, Ljava/lang/reflect/TypeVariable; │ │ if-eqz v0, :cond_1 │ │ check-cast p0, Ljava/lang/reflect/TypeVariable; │ │ + .line 275 │ .end local p0 # "from":Ljava/lang/reflect/Type; │ invoke-interface {p0}, Ljava/lang/reflect/TypeVariable;->getName()Ljava/lang/String; │ │ move-result-object v0 │ │ invoke-interface {p2, v0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ @@ -830,14 +824,15 @@ │ iget-object v0, p0, Lcom/google/gson/reflect/TypeToken;->type:Ljava/lang/reflect/Type; │ │ check-cast p1, Lcom/google/gson/reflect/TypeToken; │ │ .end local p1 # "o":Ljava/lang/Object; │ iget-object v1, p1, Lcom/google/gson/reflect/TypeToken;->type:Ljava/lang/reflect/Type; │ │ + .line 285 │ invoke-static {v0, v1}, Lcom/google/gson/internal/$Gson$Types;->equals(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ const/4 v0, 0x1 │ @@ -954,15 +949,15 @@ │ const/4 v1, 0x1 │ │ const/4 v2, 0x0 │ │ .line 123 │ if-nez p1, :cond_0 │ │ - .line 137 │ + .line 138 │ :goto_0 │ return v2 │ │ .line 127 │ :cond_0 │ iget-object v0, p0, Lcom/google/gson/reflect/TypeToken;->type:Ljava/lang/reflect/Type; │ │ @@ -1042,14 +1037,15 @@ │ │ if-eqz v0, :cond_4 │ │ iget-object v0, p0, Lcom/google/gson/reflect/TypeToken;->type:Ljava/lang/reflect/Type; │ │ check-cast v0, Ljava/lang/reflect/GenericArrayType; │ │ + .line 138 │ invoke-static {p1, v0}, Lcom/google/gson/reflect/TypeToken;->isAssignableFrom(Ljava/lang/reflect/Type;Ljava/lang/reflect/GenericArrayType;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_4 │ │ move v0, v1 ├── smali/com/google/gson/stream/JsonReader$1.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 1600 │ + .line 1585 │ invoke-direct {p0}, Lcom/google/gson/internal/JsonReaderInternalAccess;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ @@ -33,154 +33,107 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 1602 │ + .line 1587 │ instance-of v1, p1, Lcom/google/gson/internal/bind/JsonTreeReader; │ │ if-eqz v1, :cond_0 │ │ - .line 1603 │ + .line 1588 │ check-cast p1, Lcom/google/gson/internal/bind/JsonTreeReader; │ │ .end local p1 # "reader":Lcom/google/gson/stream/JsonReader; │ invoke-virtual {p1}, Lcom/google/gson/internal/bind/JsonTreeReader;->promoteNameToValue()V │ │ - .line 1621 │ + .line 1605 │ :goto_0 │ return-void │ │ - .line 1606 │ + .line 1591 │ .restart local p1 # "reader":Lcom/google/gson/stream/JsonReader; │ :cond_0 │ - # getter for: Lcom/google/gson/stream/JsonReader;->peeked:I │ - invoke-static {p1}, Lcom/google/gson/stream/JsonReader;->access$000(Lcom/google/gson/stream/JsonReader;)I │ - │ - move-result v0 │ + iget v0, p1, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 1607 │ + .line 1592 │ .local v0, "p":I │ if-nez v0, :cond_1 │ │ - .line 1608 │ - # invokes: Lcom/google/gson/stream/JsonReader;->doPeek()I │ - invoke-static {p1}, Lcom/google/gson/stream/JsonReader;->access$100(Lcom/google/gson/stream/JsonReader;)I │ + .line 1593 │ + invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ │ move-result v0 │ │ - .line 1610 │ + .line 1595 │ :cond_1 │ const/16 v1, 0xd │ │ if-ne v0, v1, :cond_2 │ │ - .line 1611 │ + .line 1596 │ const/16 v1, 0x9 │ │ - # setter for: Lcom/google/gson/stream/JsonReader;->peeked:I │ - invoke-static {p1, v1}, Lcom/google/gson/stream/JsonReader;->access$002(Lcom/google/gson/stream/JsonReader;I)I │ + iput v1, p1, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ goto :goto_0 │ │ - .line 1612 │ + .line 1597 │ :cond_2 │ const/16 v1, 0xc │ │ if-ne v0, v1, :cond_3 │ │ - .line 1613 │ + .line 1598 │ const/16 v1, 0x8 │ │ - # setter for: Lcom/google/gson/stream/JsonReader;->peeked:I │ - invoke-static {p1, v1}, Lcom/google/gson/stream/JsonReader;->access$002(Lcom/google/gson/stream/JsonReader;I)I │ + iput v1, p1, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ goto :goto_0 │ │ - .line 1614 │ + .line 1599 │ :cond_3 │ const/16 v1, 0xe │ │ if-ne v0, v1, :cond_4 │ │ - .line 1615 │ + .line 1600 │ const/16 v1, 0xa │ │ - # setter for: Lcom/google/gson/stream/JsonReader;->peeked:I │ - invoke-static {p1, v1}, Lcom/google/gson/stream/JsonReader;->access$002(Lcom/google/gson/stream/JsonReader;I)I │ + iput v1, p1, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ goto :goto_0 │ │ - .line 1617 │ + .line 1602 │ :cond_4 │ new-instance v1, Ljava/lang/IllegalStateException; │ │ new-instance v2, Ljava/lang/StringBuilder; │ │ invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ │ const-string v3, "Expected a name but was " │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ + .line 1603 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ - const-string v3, " " │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - const-string v3, " at line " │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - # invokes: Lcom/google/gson/stream/JsonReader;->getLineNumber()I │ - invoke-static {p1}, Lcom/google/gson/stream/JsonReader;->access$200(Lcom/google/gson/stream/JsonReader;)I │ - │ - move-result v3 │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - const-string v3, " column " │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - # invokes: Lcom/google/gson/stream/JsonReader;->getColumnNumber()I │ - invoke-static {p1}, Lcom/google/gson/stream/JsonReader;->access$300(Lcom/google/gson/stream/JsonReader;)I │ - │ - move-result v3 │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - const-string v3, " path " │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->getPath()Ljava/lang/String; │ + # invokes: Lcom/google/gson/stream/JsonReader;->locationString()Ljava/lang/String; │ + invoke-static {p1}, Lcom/google/gson/stream/JsonReader;->access$000(Lcom/google/gson/stream/JsonReader;)Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 ├── smali/com/google/gson/stream/JsonReader.smali │ @@ -77,15 +77,15 @@ │ │ .field private lineStart:I │ │ .field private pathIndices:[I │ │ .field private pathNames:[Ljava/lang/String; │ │ -.field private peeked:I │ +.field peeked:I │ │ .field private peekedLong:J │ │ .field private peekedNumberLength:I │ │ .field private peekedString:Ljava/lang/String; │ │ @@ -106,22 +106,22 @@ │ │ invoke-virtual {v0}, Ljava/lang/String;->toCharArray()[C │ │ move-result-object v0 │ │ sput-object v0, Lcom/google/gson/stream/JsonReader;->NON_EXECUTE_PREFIX:[C │ │ - .line 1600 │ + .line 1585 │ new-instance v0, Lcom/google/gson/stream/JsonReader$1; │ │ invoke-direct {v0}, Lcom/google/gson/stream/JsonReader$1;->()V │ │ sput-object v0, Lcom/google/gson/internal/JsonReaderInternalAccess;->INSTANCE:Lcom/google/gson/internal/JsonReaderInternalAccess; │ │ - .line 1623 │ + .line 1607 │ return-void │ .end method │ │ .method public constructor (Ljava/io/Reader;)V │ .locals 4 │ .param p1, "in" # Ljava/io/Reader; │ │ @@ -205,131 +205,77 @@ │ :cond_0 │ iput-object p1, p0, Lcom/google/gson/stream/JsonReader;->in:Ljava/io/Reader; │ │ .line 294 │ return-void │ .end method │ │ -.method static synthetic access$000(Lcom/google/gson/stream/JsonReader;)I │ - .locals 1 │ - .param p0, "x0" # Lcom/google/gson/stream/JsonReader; │ - │ - .prologue │ - .line 190 │ - iget v0, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ - │ - return v0 │ -.end method │ - │ -.method static synthetic access$002(Lcom/google/gson/stream/JsonReader;I)I │ - .locals 0 │ - .param p0, "x0" # Lcom/google/gson/stream/JsonReader; │ - .param p1, "x1" # I │ - │ - .prologue │ - .line 190 │ - iput p1, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ - │ - return p1 │ -.end method │ - │ -.method static synthetic access$100(Lcom/google/gson/stream/JsonReader;)I │ - .locals 1 │ - .param p0, "x0" # Lcom/google/gson/stream/JsonReader; │ - .annotation system Ldalvik/annotation/Throws; │ - value = { │ - Ljava/io/IOException; │ - } │ - .end annotation │ - │ - .prologue │ - .line 190 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ - │ - move-result v0 │ - │ - return v0 │ -.end method │ - │ -.method static synthetic access$200(Lcom/google/gson/stream/JsonReader;)I │ +.method static synthetic access$000(Lcom/google/gson/stream/JsonReader;)Ljava/lang/String; │ .locals 1 │ .param p0, "x0" # Lcom/google/gson/stream/JsonReader; │ │ .prologue │ .line 190 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getLineNumber()I │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->locationString()Ljava/lang/String; │ │ - move-result v0 │ - │ - return v0 │ -.end method │ - │ -.method static synthetic access$300(Lcom/google/gson/stream/JsonReader;)I │ - .locals 1 │ - .param p0, "x0" # Lcom/google/gson/stream/JsonReader; │ - │ - .prologue │ - .line 190 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getColumnNumber()I │ - │ - move-result v0 │ + move-result-object v0 │ │ - return v0 │ + return-object v0 │ .end method │ │ .method private checkLenient()V │ .locals 1 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 1422 │ + .line 1400 │ iget-boolean v0, p0, Lcom/google/gson/stream/JsonReader;->lenient:Z │ │ if-nez v0, :cond_0 │ │ - .line 1423 │ + .line 1401 │ const-string v0, "Use JsonReader.setLenient(true) to accept malformed JSON" │ │ invoke-direct {p0, v0}, Lcom/google/gson/stream/JsonReader;->syntaxError(Ljava/lang/String;)Ljava/io/IOException; │ │ move-result-object v0 │ │ throw v0 │ │ - .line 1425 │ + .line 1403 │ :cond_0 │ return-void │ .end method │ │ .method private consumeNonExecutePrefix()V │ .locals 3 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 1582 │ + .line 1567 │ const/4 v1, 0x1 │ │ invoke-direct {p0, v1}, Lcom/google/gson/stream/JsonReader;->nextNonWhitespace(Z)I │ │ - .line 1583 │ + .line 1568 │ iget v1, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/lit8 v1, v1, -0x1 │ │ iput v1, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1585 │ + .line 1570 │ iget v1, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ sget-object v2, Lcom/google/gson/stream/JsonReader;->NON_EXECUTE_PREFIX:[C │ │ array-length v2, v2 │ │ add-int/2addr v1, v2 │ @@ -344,709 +290,119 @@ │ │ invoke-direct {p0, v1}, Lcom/google/gson/stream/JsonReader;->fillBuffer(I)Z │ │ move-result v1 │ │ if-nez v1, :cond_1 │ │ - .line 1597 │ + .line 1582 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 1589 │ + .line 1574 │ :cond_1 │ const/4 v0, 0x0 │ │ .local v0, "i":I │ :goto_1 │ sget-object v1, Lcom/google/gson/stream/JsonReader;->NON_EXECUTE_PREFIX:[C │ │ array-length v1, v1 │ │ if-ge v0, v1, :cond_2 │ │ - .line 1590 │ + .line 1575 │ iget-object v1, p0, Lcom/google/gson/stream/JsonReader;->buffer:[C │ │ iget v2, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/2addr v2, v0 │ │ aget-char v1, v1, v2 │ │ sget-object v2, Lcom/google/gson/stream/JsonReader;->NON_EXECUTE_PREFIX:[C │ │ aget-char v2, v2, v0 │ │ if-ne v1, v2, :cond_0 │ │ - .line 1589 │ + .line 1574 │ add-int/lit8 v0, v0, 0x1 │ │ goto :goto_1 │ │ - .line 1596 │ + .line 1581 │ :cond_2 │ iget v1, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ sget-object v2, Lcom/google/gson/stream/JsonReader;->NON_EXECUTE_PREFIX:[C │ │ array-length v2, v2 │ │ add-int/2addr v1, v2 │ │ iput v1, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ goto :goto_0 │ .end method │ │ -.method private doPeek()I │ - .locals 9 │ - .annotation system Ldalvik/annotation/Throws; │ - value = { │ - Ljava/io/IOException; │ - } │ - .end annotation │ - │ - .prologue │ - const/4 v5, 0x7 │ - │ - const/4 v8, 0x5 │ - │ - const/4 v2, 0x4 │ - │ - const/4 v3, 0x2 │ - │ - const/4 v4, 0x1 │ - │ - .line 466 │ - iget-object v6, p0, Lcom/google/gson/stream/JsonReader;->stack:[I │ - │ - iget v7, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ - │ - add-int/lit8 v7, v7, -0x1 │ - │ - aget v1, v6, v7 │ - │ - .line 467 │ - .local v1, "peekStack":I │ - if-ne v1, v4, :cond_3 │ - │ - .line 468 │ - iget-object v6, p0, Lcom/google/gson/stream/JsonReader;->stack:[I │ - │ - iget v7, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ - │ - add-int/lit8 v7, v7, -0x1 │ - │ - aput v3, v6, v7 │ - │ - .line 553 │ - :cond_0 │ - :goto_0 │ - :pswitch_0 │ - :sswitch_0 │ - invoke-direct {p0, v4}, Lcom/google/gson/stream/JsonReader;->nextNonWhitespace(Z)I │ - │ - move-result v0 │ - │ - .line 554 │ - .local v0, "c":I │ - sparse-switch v0, :sswitch_data_0 │ - │ - .line 583 │ - iget v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ - │ - add-int/lit8 v3, v3, -0x1 │ - │ - iput v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ - │ - .line 586 │ - iget v3, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ - │ - if-ne v3, v4, :cond_1 │ - │ - .line 587 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->checkLenient()V │ - │ - .line 590 │ - :cond_1 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->peekKeyword()I │ - │ - move-result v2 │ - │ - .line 591 │ - .local v2, "result":I │ - if-eqz v2, :cond_14 │ - │ - .line 605 │ - .end local v2 # "result":I │ - :cond_2 │ - :goto_1 │ - return v2 │ - │ - .line 469 │ - .end local v0 # "c":I │ - :cond_3 │ - if-ne v1, v3, :cond_4 │ - │ - .line 471 │ - invoke-direct {p0, v4}, Lcom/google/gson/stream/JsonReader;->nextNonWhitespace(Z)I │ - │ - move-result v0 │ - │ - .line 472 │ - .restart local v0 # "c":I │ - sparse-switch v0, :sswitch_data_1 │ - │ - .line 480 │ - const-string v3, "Unterminated array" │ - │ - invoke-direct {p0, v3}, Lcom/google/gson/stream/JsonReader;->syntaxError(Ljava/lang/String;)Ljava/io/IOException; │ - │ - move-result-object v3 │ - │ - throw v3 │ - │ - .line 474 │ - :sswitch_1 │ - iput v2, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ - │ - goto :goto_1 │ - │ - .line 476 │ - :sswitch_2 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->checkLenient()V │ - │ - goto :goto_0 │ - │ - .line 482 │ - .end local v0 # "c":I │ - :cond_4 │ - const/4 v6, 0x3 │ - │ - if-eq v1, v6, :cond_5 │ - │ - if-ne v1, v8, :cond_9 │ - │ - .line 483 │ - :cond_5 │ - iget-object v5, p0, Lcom/google/gson/stream/JsonReader;->stack:[I │ - │ - iget v6, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ - │ - add-int/lit8 v6, v6, -0x1 │ - │ - aput v2, v5, v6 │ - │ - .line 485 │ - if-ne v1, v8, :cond_6 │ - │ - .line 486 │ - invoke-direct {p0, v4}, Lcom/google/gson/stream/JsonReader;->nextNonWhitespace(Z)I │ - │ - move-result v0 │ - │ - .line 487 │ - .restart local v0 # "c":I │ - sparse-switch v0, :sswitch_data_2 │ - │ - .line 495 │ - const-string v3, "Unterminated object" │ - │ - invoke-direct {p0, v3}, Lcom/google/gson/stream/JsonReader;->syntaxError(Ljava/lang/String;)Ljava/io/IOException; │ - │ - move-result-object v3 │ - │ - throw v3 │ - │ - .line 489 │ - :sswitch_3 │ - iput v3, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ - │ - move v2, v3 │ - │ - goto :goto_1 │ - │ - .line 491 │ - :sswitch_4 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->checkLenient()V │ - │ - .line 498 │ - .end local v0 # "c":I │ - :cond_6 │ - :sswitch_5 │ - invoke-direct {p0, v4}, Lcom/google/gson/stream/JsonReader;->nextNonWhitespace(Z)I │ - │ - move-result v0 │ - │ - .line 499 │ - .restart local v0 # "c":I │ - sparse-switch v0, :sswitch_data_3 │ - │ - .line 512 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->checkLenient()V │ - │ - .line 513 │ - iget v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ - │ - add-int/lit8 v3, v3, -0x1 │ - │ - iput v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ - │ - .line 514 │ - int-to-char v3, v0 │ - │ - invoke-direct {p0, v3}, Lcom/google/gson/stream/JsonReader;->isLiteral(C)Z │ - │ - move-result v3 │ - │ - if-eqz v3, :cond_8 │ - │ - .line 515 │ - const/16 v2, 0xe │ - │ - iput v2, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ - │ - goto :goto_1 │ - │ - .line 501 │ - :sswitch_6 │ - const/16 v2, 0xd │ - │ - iput v2, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ - │ - goto :goto_1 │ - │ - .line 503 │ - :sswitch_7 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->checkLenient()V │ - │ - .line 504 │ - const/16 v2, 0xc │ - │ - iput v2, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ - │ - goto :goto_1 │ - │ - .line 506 │ - :sswitch_8 │ - if-eq v1, v8, :cond_7 │ - │ - .line 507 │ - iput v3, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ - │ - move v2, v3 │ - │ - goto :goto_1 │ - │ - .line 509 │ - :cond_7 │ - const-string v3, "Expected name" │ - │ - invoke-direct {p0, v3}, Lcom/google/gson/stream/JsonReader;->syntaxError(Ljava/lang/String;)Ljava/io/IOException; │ - │ - move-result-object v3 │ - │ - throw v3 │ - │ - .line 517 │ - :cond_8 │ - const-string v3, "Expected name" │ - │ - invoke-direct {p0, v3}, Lcom/google/gson/stream/JsonReader;->syntaxError(Ljava/lang/String;)Ljava/io/IOException; │ - │ - move-result-object v3 │ - │ - throw v3 │ - │ - .line 520 │ - .end local v0 # "c":I │ - :cond_9 │ - if-ne v1, v2, :cond_b │ - │ - .line 521 │ - iget-object v6, p0, Lcom/google/gson/stream/JsonReader;->stack:[I │ - │ - iget v7, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ - │ - add-int/lit8 v7, v7, -0x1 │ - │ - aput v8, v6, v7 │ - │ - .line 523 │ - invoke-direct {p0, v4}, Lcom/google/gson/stream/JsonReader;->nextNonWhitespace(Z)I │ - │ - move-result v0 │ - │ - .line 524 │ - .restart local v0 # "c":I │ - packed-switch v0, :pswitch_data_0 │ - │ - .line 534 │ - :pswitch_1 │ - const-string v3, "Expected \':\'" │ - │ - invoke-direct {p0, v3}, Lcom/google/gson/stream/JsonReader;->syntaxError(Ljava/lang/String;)Ljava/io/IOException; │ - │ - move-result-object v3 │ - │ - throw v3 │ - │ - .line 528 │ - :pswitch_2 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->checkLenient()V │ - │ - .line 529 │ - iget v6, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ - │ - iget v7, p0, Lcom/google/gson/stream/JsonReader;->limit:I │ - │ - if-lt v6, v7, :cond_a │ - │ - invoke-direct {p0, v4}, Lcom/google/gson/stream/JsonReader;->fillBuffer(I)Z │ - │ - move-result v6 │ - │ - if-eqz v6, :cond_0 │ - │ - :cond_a │ - iget-object v6, p0, Lcom/google/gson/stream/JsonReader;->buffer:[C │ - │ - iget v7, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ - │ - aget-char v6, v6, v7 │ - │ - const/16 v7, 0x3e │ - │ - if-ne v6, v7, :cond_0 │ - │ - .line 530 │ - iget v6, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ - │ - add-int/lit8 v6, v6, 0x1 │ - │ - iput v6, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ - │ - goto/16 :goto_0 │ - │ - .line 536 │ - .end local v0 # "c":I │ - :cond_b │ - const/4 v6, 0x6 │ - │ - if-ne v1, v6, :cond_d │ - │ - .line 537 │ - iget-boolean v6, p0, Lcom/google/gson/stream/JsonReader;->lenient:Z │ - │ - if-eqz v6, :cond_c │ - │ - .line 538 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->consumeNonExecutePrefix()V │ - │ - .line 540 │ - :cond_c │ - iget-object v6, p0, Lcom/google/gson/stream/JsonReader;->stack:[I │ - │ - iget v7, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ - │ - add-int/lit8 v7, v7, -0x1 │ - │ - aput v5, v6, v7 │ - │ - goto/16 :goto_0 │ - │ - .line 541 │ - :cond_d │ - if-ne v1, v5, :cond_f │ - │ - .line 542 │ - const/4 v6, 0x0 │ - │ - invoke-direct {p0, v6}, Lcom/google/gson/stream/JsonReader;->nextNonWhitespace(Z)I │ - │ - move-result v0 │ - │ - .line 543 │ - .restart local v0 # "c":I │ - const/4 v6, -0x1 │ - │ - if-ne v0, v6, :cond_e │ - │ - .line 544 │ - const/16 v2, 0x11 │ - │ - iput v2, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ - │ - goto/16 :goto_1 │ - │ - .line 546 │ - :cond_e │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->checkLenient()V │ - │ - .line 547 │ - iget v6, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ - │ - add-int/lit8 v6, v6, -0x1 │ - │ - iput v6, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ - │ - goto/16 :goto_0 │ - │ - .line 549 │ - .end local v0 # "c":I │ - :cond_f │ - const/16 v6, 0x8 │ - │ - if-ne v1, v6, :cond_0 │ - │ - .line 550 │ - new-instance v3, Ljava/lang/IllegalStateException; │ - │ - const-string v4, "JsonReader is closed" │ - │ - invoke-direct {v3, v4}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V │ - │ - throw v3 │ - │ - .line 556 │ - .restart local v0 # "c":I │ - :sswitch_9 │ - if-ne v1, v4, :cond_10 │ - │ - .line 557 │ - iput v2, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ - │ - goto/16 :goto_1 │ - │ - .line 563 │ - :cond_10 │ - :sswitch_a │ - if-eq v1, v4, :cond_11 │ - │ - if-ne v1, v3, :cond_12 │ - │ - .line 564 │ - :cond_11 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->checkLenient()V │ - │ - .line 565 │ - iget v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ - │ - add-int/lit8 v3, v3, -0x1 │ - │ - iput v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ - │ - .line 566 │ - iput v5, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ - │ - move v2, v5 │ - │ - goto/16 :goto_1 │ - │ - .line 568 │ - :cond_12 │ - const-string v3, "Unexpected value" │ - │ - invoke-direct {p0, v3}, Lcom/google/gson/stream/JsonReader;->syntaxError(Ljava/lang/String;)Ljava/io/IOException; │ - │ - move-result-object v3 │ - │ - throw v3 │ - │ - .line 571 │ - :sswitch_b │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->checkLenient()V │ - │ - .line 572 │ - const/16 v2, 0x8 │ - │ - iput v2, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ - │ - goto/16 :goto_1 │ - │ - .line 574 │ - :sswitch_c │ - iget v3, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ - │ - if-ne v3, v4, :cond_13 │ - │ - .line 575 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->checkLenient()V │ - │ - .line 577 │ - :cond_13 │ - const/16 v2, 0x9 │ - │ - iput v2, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ - │ - goto/16 :goto_1 │ - │ - .line 579 │ - :sswitch_d │ - const/4 v2, 0x3 │ - │ - iput v2, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ - │ - goto/16 :goto_1 │ - │ - .line 581 │ - :sswitch_e │ - iput v4, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ - │ - move v2, v4 │ - │ - goto/16 :goto_1 │ - │ - .line 595 │ - .restart local v2 # "result":I │ - :cond_14 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->peekNumber()I │ - │ - move-result v2 │ - │ - .line 596 │ - if-nez v2, :cond_2 │ - │ - .line 600 │ - iget-object v3, p0, Lcom/google/gson/stream/JsonReader;->buffer:[C │ - │ - iget v4, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ - │ - aget-char v3, v3, v4 │ - │ - invoke-direct {p0, v3}, Lcom/google/gson/stream/JsonReader;->isLiteral(C)Z │ - │ - move-result v3 │ - │ - if-nez v3, :cond_15 │ - │ - .line 601 │ - const-string v3, "Expected value" │ - │ - invoke-direct {p0, v3}, Lcom/google/gson/stream/JsonReader;->syntaxError(Ljava/lang/String;)Ljava/io/IOException; │ - │ - move-result-object v3 │ - │ - throw v3 │ - │ - .line 604 │ - :cond_15 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->checkLenient()V │ - │ - .line 605 │ - const/16 v2, 0xa │ - │ - iput v2, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ - │ - goto/16 :goto_1 │ - │ - .line 554 │ - nop │ - │ - :sswitch_data_0 │ - .sparse-switch │ - 0x22 -> :sswitch_c │ - 0x27 -> :sswitch_b │ - 0x2c -> :sswitch_a │ - 0x3b -> :sswitch_a │ - 0x5b -> :sswitch_d │ - 0x5d -> :sswitch_9 │ - 0x7b -> :sswitch_e │ - .end sparse-switch │ - │ - .line 472 │ - :sswitch_data_1 │ - .sparse-switch │ - 0x2c -> :sswitch_0 │ - 0x3b -> :sswitch_2 │ - 0x5d -> :sswitch_1 │ - .end sparse-switch │ - │ - .line 487 │ - :sswitch_data_2 │ - .sparse-switch │ - 0x2c -> :sswitch_5 │ - 0x3b -> :sswitch_4 │ - 0x7d -> :sswitch_3 │ - .end sparse-switch │ - │ - .line 499 │ - :sswitch_data_3 │ - .sparse-switch │ - 0x22 -> :sswitch_6 │ - 0x27 -> :sswitch_7 │ - 0x7d -> :sswitch_8 │ - .end sparse-switch │ - │ - .line 524 │ - :pswitch_data_0 │ - .packed-switch 0x3a │ - :pswitch_0 │ - :pswitch_1 │ - :pswitch_1 │ - :pswitch_2 │ - .end packed-switch │ -.end method │ - │ .method private fillBuffer(I)Z │ .locals 7 │ .param p1, "minimum" # I │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ const/4 v2, 0x0 │ │ - .line 1289 │ + .line 1276 │ iget-object v0, p0, Lcom/google/gson/stream/JsonReader;->buffer:[C │ │ - .line 1290 │ + .line 1277 │ .local v0, "buffer":[C │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->lineStart:I │ │ iget v4, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ sub-int/2addr v3, v4 │ │ iput v3, p0, Lcom/google/gson/stream/JsonReader;->lineStart:I │ │ - .line 1291 │ + .line 1278 │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->limit:I │ │ iget v4, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ if-eq v3, v4, :cond_3 │ │ - .line 1292 │ + .line 1279 │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->limit:I │ │ iget v4, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ sub-int/2addr v3, v4 │ │ iput v3, p0, Lcom/google/gson/stream/JsonReader;->limit:I │ │ - .line 1293 │ + .line 1280 │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ iget v4, p0, Lcom/google/gson/stream/JsonReader;->limit:I │ │ invoke-static {v0, v3, v0, v2, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V │ │ - .line 1298 │ + .line 1285 │ :goto_0 │ iput v2, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1300 │ + .line 1287 │ :cond_0 │ iget-object v3, p0, Lcom/google/gson/stream/JsonReader;->in:Ljava/io/Reader; │ │ iget v4, p0, Lcom/google/gson/stream/JsonReader;->limit:I │ │ array-length v5, v0 │ │ @@ -1059,22 +415,22 @@ │ move-result v1 │ │ .local v1, "total":I │ const/4 v3, -0x1 │ │ if-eq v1, v3, :cond_2 │ │ - .line 1301 │ + .line 1288 │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->limit:I │ │ add-int/2addr v3, v1 │ │ iput v3, p0, Lcom/google/gson/stream/JsonReader;->limit:I │ │ - .line 1304 │ + .line 1291 │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->lineNumber:I │ │ if-nez v3, :cond_1 │ │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->lineStart:I │ │ if-nez v3, :cond_1 │ @@ -1085,110 +441,82 @@ │ │ aget-char v3, v0, v2 │ │ const v4, 0xfeff │ │ if-ne v3, v4, :cond_1 │ │ - .line 1305 │ + .line 1292 │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/lit8 v3, v3, 0x1 │ │ iput v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1306 │ + .line 1293 │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->lineStart:I │ │ add-int/lit8 v3, v3, 0x1 │ │ iput v3, p0, Lcom/google/gson/stream/JsonReader;->lineStart:I │ │ - .line 1307 │ + .line 1294 │ add-int/lit8 p1, p1, 0x1 │ │ - .line 1310 │ + .line 1297 │ :cond_1 │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->limit:I │ │ if-lt v3, p1, :cond_0 │ │ - .line 1311 │ + .line 1298 │ const/4 v2, 0x1 │ │ - .line 1314 │ + .line 1301 │ :cond_2 │ return v2 │ │ - .line 1295 │ + .line 1282 │ .end local v1 # "total":I │ :cond_3 │ iput v2, p0, Lcom/google/gson/stream/JsonReader;->limit:I │ │ goto :goto_0 │ .end method │ │ -.method private getColumnNumber()I │ - .locals 2 │ - │ - .prologue │ - .line 1322 │ - iget v0, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ - │ - iget v1, p0, Lcom/google/gson/stream/JsonReader;->lineStart:I │ - │ - sub-int/2addr v0, v1 │ - │ - add-int/lit8 v0, v0, 0x1 │ - │ - return v0 │ -.end method │ - │ -.method private getLineNumber()I │ - .locals 1 │ - │ - .prologue │ - .line 1318 │ - iget v0, p0, Lcom/google/gson/stream/JsonReader;->lineNumber:I │ - │ - add-int/lit8 v0, v0, 0x1 │ - │ - return v0 │ -.end method │ - │ .method private isLiteral(C)Z │ .locals 1 │ .param p1, "c" # C │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 756 │ + .line 745 │ sparse-switch p1, :sswitch_data_0 │ │ - .line 776 │ + .line 765 │ const/4 v0, 0x1 │ │ :goto_0 │ return v0 │ │ - .line 762 │ + .line 751 │ :sswitch_0 │ invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->checkLenient()V │ │ - .line 774 │ + .line 763 │ :sswitch_1 │ const/4 v0, 0x0 │ │ goto :goto_0 │ │ - .line 756 │ + .line 745 │ :sswitch_data_0 │ .sparse-switch │ 0x9 -> :sswitch_1 │ 0xa -> :sswitch_1 │ 0xc -> :sswitch_1 │ 0xd -> :sswitch_1 │ 0x20 -> :sswitch_1 │ @@ -1202,137 +530,189 @@ │ 0x5c -> :sswitch_0 │ 0x5d -> :sswitch_1 │ 0x7b -> :sswitch_1 │ 0x7d -> :sswitch_1 │ .end sparse-switch │ .end method │ │ +.method private locationString()Ljava/lang/String; │ + .locals 4 │ + │ + .prologue │ + .line 1449 │ + iget v2, p0, Lcom/google/gson/stream/JsonReader;->lineNumber:I │ + │ + add-int/lit8 v1, v2, 0x1 │ + │ + .line 1450 │ + .local v1, "line":I │ + iget v2, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ + │ + iget v3, p0, Lcom/google/gson/stream/JsonReader;->lineStart:I │ + │ + sub-int/2addr v2, v3 │ + │ + add-int/lit8 v0, v2, 0x1 │ + │ + .line 1451 │ + .local v0, "column":I │ + new-instance v2, Ljava/lang/StringBuilder; │ + │ + invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ + │ + const-string v3, " at line " │ + │ + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + │ + move-result-object v2 │ + │ + invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ + │ + move-result-object v2 │ + │ + const-string v3, " column " │ + │ + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + │ + move-result-object v2 │ + │ + invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ + │ + move-result-object v2 │ + │ + const-string v3, " path " │ + │ + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + │ + move-result-object v2 │ + │ + invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->getPath()Ljava/lang/String; │ + │ + move-result-object v3 │ + │ + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + │ + move-result-object v2 │ + │ + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + │ + move-result-object v2 │ + │ + return-object v2 │ +.end method │ + │ .method private nextNonWhitespace(Z)I │ .locals 10 │ .param p1, "throwOnEof" # Z │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 1340 │ + .line 1319 │ iget-object v0, p0, Lcom/google/gson/stream/JsonReader;->buffer:[C │ │ - .line 1341 │ + .line 1320 │ .local v0, "buffer":[C │ iget v4, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1342 │ + .line 1321 │ .local v4, "p":I │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->limit:I │ │ - .line 1344 │ + .line 1323 │ .local v3, "l":I │ :goto_0 │ if-ne v4, v3, :cond_1 │ │ - .line 1345 │ + .line 1324 │ iput v4, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1346 │ + .line 1325 │ const/4 v7, 0x1 │ │ invoke-direct {p0, v7}, Lcom/google/gson/stream/JsonReader;->fillBuffer(I)Z │ │ move-result v7 │ │ if-nez v7, :cond_0 │ │ - .line 1413 │ + .line 1392 │ if-eqz p1, :cond_8 │ │ - .line 1414 │ + .line 1393 │ new-instance v7, Ljava/io/EOFException; │ │ new-instance v8, Ljava/lang/StringBuilder; │ │ invoke-direct {v8}, Ljava/lang/StringBuilder;->()V │ │ - const-string v9, "End of input at line " │ + const-string v9, "End of input" │ │ invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v8 │ │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getLineNumber()I │ - │ - move-result v9 │ - │ - invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->locationString()Ljava/lang/String; │ │ - move-result-object v8 │ - │ - const-string v9, " column " │ + move-result-object v9 │ │ invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v8 │ │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getColumnNumber()I │ - │ - move-result v9 │ - │ - invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v8 │ - │ invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v8 │ │ invoke-direct {v7, v8}, Ljava/io/EOFException;->(Ljava/lang/String;)V │ │ throw v7 │ │ - .line 1349 │ + .line 1328 │ :cond_0 │ iget v4, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1350 │ + .line 1329 │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->limit:I │ │ - .line 1353 │ + .line 1332 │ :cond_1 │ add-int/lit8 v5, v4, 0x1 │ │ .end local v4 # "p":I │ .local v5, "p":I │ aget-char v1, v0, v4 │ │ - .line 1354 │ + .line 1333 │ .local v1, "c":I │ const/16 v7, 0xa │ │ if-ne v1, v7, :cond_2 │ │ - .line 1355 │ + .line 1334 │ iget v7, p0, Lcom/google/gson/stream/JsonReader;->lineNumber:I │ │ add-int/lit8 v7, v7, 0x1 │ │ iput v7, p0, Lcom/google/gson/stream/JsonReader;->lineNumber:I │ │ - .line 1356 │ + .line 1335 │ iput v5, p0, Lcom/google/gson/stream/JsonReader;->lineStart:I │ │ move v4, v5 │ │ - .line 1357 │ + .line 1336 │ .end local v5 # "p":I │ .restart local v4 # "p":I │ goto :goto_0 │ │ - .line 1358 │ + .line 1337 │ .end local v4 # "p":I │ .restart local v5 # "p":I │ :cond_2 │ const/16 v7, 0x20 │ │ if-eq v1, v7, :cond_9 │ │ @@ -1342,199 +722,199 @@ │ │ const/16 v7, 0x9 │ │ if-ne v1, v7, :cond_3 │ │ move v4, v5 │ │ - .line 1359 │ + .line 1338 │ .end local v5 # "p":I │ .restart local v4 # "p":I │ goto :goto_0 │ │ - .line 1362 │ + .line 1341 │ .end local v4 # "p":I │ .restart local v5 # "p":I │ :cond_3 │ const/16 v7, 0x2f │ │ if-ne v1, v7, :cond_6 │ │ - .line 1363 │ + .line 1342 │ iput v5, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1364 │ + .line 1343 │ if-ne v5, v3, :cond_4 │ │ - .line 1365 │ + .line 1344 │ iget v7, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/lit8 v7, v7, -0x1 │ │ iput v7, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1366 │ + .line 1345 │ const/4 v7, 0x2 │ │ invoke-direct {p0, v7}, Lcom/google/gson/stream/JsonReader;->fillBuffer(I)Z │ │ move-result v2 │ │ - .line 1367 │ + .line 1346 │ .local v2, "charsLoaded":Z │ iget v7, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/lit8 v7, v7, 0x1 │ │ iput v7, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1368 │ + .line 1347 │ if-nez v2, :cond_4 │ │ move v4, v5 │ │ - .line 1417 │ + .line 1395 │ .end local v1 # "c":I │ .end local v2 # "charsLoaded":Z │ .end local v5 # "p":I │ .restart local v4 # "p":I │ :goto_1 │ return v1 │ │ - .line 1373 │ + .line 1352 │ .end local v4 # "p":I │ .restart local v1 # "c":I │ .restart local v5 # "p":I │ :cond_4 │ invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->checkLenient()V │ │ - .line 1374 │ + .line 1353 │ iget v7, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ aget-char v6, v0, v7 │ │ - .line 1375 │ + .line 1354 │ .local v6, "peek":C │ sparse-switch v6, :sswitch_data_0 │ │ move v4, v5 │ │ - .line 1395 │ + .line 1374 │ .end local v5 # "p":I │ .restart local v4 # "p":I │ goto :goto_1 │ │ - .line 1378 │ + .line 1357 │ .end local v4 # "p":I │ .restart local v5 # "p":I │ :sswitch_0 │ iget v7, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/lit8 v7, v7, 0x1 │ │ iput v7, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1379 │ + .line 1358 │ const-string v7, "*/" │ │ invoke-direct {p0, v7}, Lcom/google/gson/stream/JsonReader;->skipTo(Ljava/lang/String;)Z │ │ move-result v7 │ │ if-nez v7, :cond_5 │ │ - .line 1380 │ + .line 1359 │ const-string v7, "Unterminated comment" │ │ invoke-direct {p0, v7}, Lcom/google/gson/stream/JsonReader;->syntaxError(Ljava/lang/String;)Ljava/io/IOException; │ │ move-result-object v7 │ │ throw v7 │ │ - .line 1382 │ + .line 1361 │ :cond_5 │ iget v7, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/lit8 v4, v7, 0x2 │ │ - .line 1383 │ + .line 1362 │ .end local v5 # "p":I │ .restart local v4 # "p":I │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->limit:I │ │ - .line 1384 │ + .line 1363 │ goto/16 :goto_0 │ │ - .line 1388 │ + .line 1367 │ .end local v4 # "p":I │ .restart local v5 # "p":I │ :sswitch_1 │ iget v7, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/lit8 v7, v7, 0x1 │ │ iput v7, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1389 │ + .line 1368 │ invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->skipToEndOfLine()V │ │ - .line 1390 │ + .line 1369 │ iget v4, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1391 │ + .line 1370 │ .end local v5 # "p":I │ .restart local v4 # "p":I │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->limit:I │ │ - .line 1392 │ + .line 1371 │ goto/16 :goto_0 │ │ - .line 1397 │ + .line 1376 │ .end local v4 # "p":I │ .end local v6 # "peek":C │ .restart local v5 # "p":I │ :cond_6 │ const/16 v7, 0x23 │ │ if-ne v1, v7, :cond_7 │ │ - .line 1398 │ + .line 1377 │ iput v5, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1404 │ + .line 1383 │ invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->checkLenient()V │ │ - .line 1405 │ + .line 1384 │ invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->skipToEndOfLine()V │ │ - .line 1406 │ + .line 1385 │ iget v4, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1407 │ + .line 1386 │ .end local v5 # "p":I │ .restart local v4 # "p":I │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->limit:I │ │ goto/16 :goto_0 │ │ - .line 1409 │ + .line 1388 │ .end local v4 # "p":I │ .restart local v5 # "p":I │ :cond_7 │ iput v5, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ move v4, v5 │ │ - .line 1410 │ + .line 1389 │ .end local v5 # "p":I │ .restart local v4 # "p":I │ goto :goto_1 │ │ - .line 1417 │ + .line 1395 │ .end local v1 # "c":I │ :cond_8 │ const/4 v1, -0x1 │ │ goto :goto_1 │ │ .end local v4 # "p":I │ @@ -1543,15 +923,15 @@ │ :cond_9 │ move v4, v5 │ │ .end local v5 # "p":I │ .restart local v4 # "p":I │ goto/16 :goto_0 │ │ - .line 1375 │ + .line 1354 │ :sswitch_data_0 │ .sparse-switch │ 0x2a -> :sswitch_0 │ 0x2f -> :sswitch_1 │ .end sparse-switch │ .end method │ │ @@ -1561,156 +941,156 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 1001 │ + .line 987 │ iget-object v0, p0, Lcom/google/gson/stream/JsonReader;->buffer:[C │ │ - .line 1002 │ + .line 988 │ .local v0, "buffer":[C │ new-instance v1, Ljava/lang/StringBuilder; │ │ invoke-direct {v1}, Ljava/lang/StringBuilder;->()V │ │ - .line 1004 │ + .line 990 │ .local v1, "builder":Ljava/lang/StringBuilder; │ :cond_0 │ iget v4, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1005 │ + .line 991 │ .local v4, "p":I │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->limit:I │ │ - .line 1007 │ + .line 993 │ .local v3, "l":I │ move v6, v4 │ │ .local v6, "start":I │ move v5, v4 │ │ - .line 1008 │ + .line 994 │ .end local v4 # "p":I │ .local v5, "p":I │ :goto_0 │ if-ge v5, v3, :cond_4 │ │ - .line 1009 │ + .line 995 │ add-int/lit8 v4, v5, 0x1 │ │ .end local v5 # "p":I │ .restart local v4 # "p":I │ aget-char v2, v0, v5 │ │ - .line 1011 │ + .line 997 │ .local v2, "c":I │ if-ne v2, p1, :cond_1 │ │ - .line 1012 │ + .line 998 │ iput v4, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1013 │ + .line 999 │ sub-int v7, v4, v6 │ │ add-int/lit8 v7, v7, -0x1 │ │ invoke-virtual {v1, v0, v6, v7}, Ljava/lang/StringBuilder;->append([CII)Ljava/lang/StringBuilder; │ │ - .line 1014 │ + .line 1000 │ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v7 │ │ return-object v7 │ │ - .line 1015 │ + .line 1001 │ :cond_1 │ const/16 v7, 0x5c │ │ if-ne v2, v7, :cond_3 │ │ - .line 1016 │ + .line 1002 │ iput v4, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1017 │ + .line 1003 │ sub-int v7, v4, v6 │ │ add-int/lit8 v7, v7, -0x1 │ │ invoke-virtual {v1, v0, v6, v7}, Ljava/lang/StringBuilder;->append([CII)Ljava/lang/StringBuilder; │ │ - .line 1018 │ + .line 1004 │ invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->readEscapeCharacter()C │ │ move-result v7 │ │ invoke-virtual {v1, v7}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 1019 │ + .line 1005 │ iget v4, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1020 │ + .line 1006 │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->limit:I │ │ - .line 1021 │ + .line 1007 │ move v6, v4 │ │ :cond_2 │ :goto_1 │ move v5, v4 │ │ - .line 1026 │ + .line 1012 │ .end local v4 # "p":I │ .restart local v5 # "p":I │ goto :goto_0 │ │ - .line 1022 │ + .line 1008 │ .end local v5 # "p":I │ .restart local v4 # "p":I │ :cond_3 │ const/16 v7, 0xa │ │ if-ne v2, v7, :cond_2 │ │ - .line 1023 │ + .line 1009 │ iget v7, p0, Lcom/google/gson/stream/JsonReader;->lineNumber:I │ │ add-int/lit8 v7, v7, 0x1 │ │ iput v7, p0, Lcom/google/gson/stream/JsonReader;->lineNumber:I │ │ - .line 1024 │ + .line 1010 │ iput v4, p0, Lcom/google/gson/stream/JsonReader;->lineStart:I │ │ goto :goto_1 │ │ - .line 1028 │ + .line 1014 │ .end local v2 # "c":I │ .end local v4 # "p":I │ .restart local v5 # "p":I │ :cond_4 │ sub-int v7, v5, v6 │ │ invoke-virtual {v1, v0, v6, v7}, Ljava/lang/StringBuilder;->append([CII)Ljava/lang/StringBuilder; │ │ - .line 1029 │ + .line 1015 │ iput v5, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1030 │ + .line 1016 │ const/4 v7, 0x1 │ │ invoke-direct {p0, v7}, Lcom/google/gson/stream/JsonReader;->fillBuffer(I)Z │ │ move-result v7 │ │ if-nez v7, :cond_0 │ │ - .line 1031 │ + .line 1017 │ const-string v7, "Unterminated string" │ │ invoke-direct {p0, v7}, Lcom/google/gson/stream/JsonReader;->syntaxError(Ljava/lang/String;)Ljava/io/IOException; │ │ move-result-object v7 │ │ throw v7 │ @@ -1721,157 +1101,157 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 1041 │ + .line 1027 │ const/4 v0, 0x0 │ │ - .line 1042 │ + .line 1028 │ .local v0, "builder":Ljava/lang/StringBuilder; │ const/4 v1, 0x0 │ │ - .line 1046 │ + .line 1032 │ .local v1, "i":I │ :cond_0 │ :goto_0 │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/2addr v3, v1 │ │ iget v4, p0, Lcom/google/gson/stream/JsonReader;->limit:I │ │ if-ge v3, v4, :cond_2 │ │ - .line 1047 │ + .line 1033 │ iget-object v3, p0, Lcom/google/gson/stream/JsonReader;->buffer:[C │ │ iget v4, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/2addr v4, v1 │ │ aget-char v3, v3, v4 │ │ sparse-switch v3, :sswitch_data_0 │ │ - .line 1046 │ + .line 1032 │ add-int/lit8 v1, v1, 0x1 │ │ goto :goto_0 │ │ - .line 1053 │ + .line 1039 │ :sswitch_0 │ invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->checkLenient()V │ │ - .line 1091 │ + .line 1077 │ :cond_1 │ :goto_1 │ :sswitch_1 │ if-nez v0, :cond_5 │ │ - .line 1092 │ + .line 1078 │ new-instance v2, Ljava/lang/String; │ │ iget-object v3, p0, Lcom/google/gson/stream/JsonReader;->buffer:[C │ │ iget v4, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ invoke-direct {v2, v3, v4, v1}, Ljava/lang/String;->([CII)V │ │ - .line 1097 │ + .line 1083 │ .local v2, "result":Ljava/lang/String; │ :goto_2 │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/2addr v3, v1 │ │ iput v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1098 │ + .line 1084 │ return-object v2 │ │ - .line 1070 │ + .line 1056 │ .end local v2 # "result":Ljava/lang/String; │ :cond_2 │ iget-object v3, p0, Lcom/google/gson/stream/JsonReader;->buffer:[C │ │ array-length v3, v3 │ │ if-ge v1, v3, :cond_3 │ │ - .line 1071 │ + .line 1057 │ add-int/lit8 v3, v1, 0x1 │ │ invoke-direct {p0, v3}, Lcom/google/gson/stream/JsonReader;->fillBuffer(I)Z │ │ move-result v3 │ │ if-eqz v3, :cond_1 │ │ goto :goto_0 │ │ - .line 1079 │ + .line 1065 │ :cond_3 │ if-nez v0, :cond_4 │ │ - .line 1080 │ + .line 1066 │ new-instance v0, Ljava/lang/StringBuilder; │ │ .end local v0 # "builder":Ljava/lang/StringBuilder; │ invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ │ - .line 1082 │ + .line 1068 │ .restart local v0 # "builder":Ljava/lang/StringBuilder; │ :cond_4 │ iget-object v3, p0, Lcom/google/gson/stream/JsonReader;->buffer:[C │ │ iget v4, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ invoke-virtual {v0, v3, v4, v1}, Ljava/lang/StringBuilder;->append([CII)Ljava/lang/StringBuilder; │ │ - .line 1083 │ + .line 1069 │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/2addr v3, v1 │ │ iput v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1084 │ + .line 1070 │ const/4 v1, 0x0 │ │ - .line 1085 │ + .line 1071 │ const/4 v3, 0x1 │ │ invoke-direct {p0, v3}, Lcom/google/gson/stream/JsonReader;->fillBuffer(I)Z │ │ move-result v3 │ │ if-nez v3, :cond_0 │ │ goto :goto_1 │ │ - .line 1094 │ + .line 1080 │ :cond_5 │ iget-object v3, p0, Lcom/google/gson/stream/JsonReader;->buffer:[C │ │ iget v4, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ invoke-virtual {v0, v3, v4, v1}, Ljava/lang/StringBuilder;->append([CII)Ljava/lang/StringBuilder; │ │ - .line 1095 │ + .line 1081 │ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v2 │ │ .restart local v2 # "result":Ljava/lang/String; │ goto :goto_2 │ │ - .line 1047 │ + .line 1033 │ :sswitch_data_0 │ .sparse-switch │ 0x9 -> :sswitch_1 │ 0xa -> :sswitch_1 │ 0xc -> :sswitch_1 │ 0xd -> :sswitch_1 │ 0x20 -> :sswitch_1 │ @@ -1896,59 +1276,59 @@ │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ const/4 v6, 0x0 │ │ - .line 610 │ + .line 599 │ iget-object v7, p0, Lcom/google/gson/stream/JsonReader;->buffer:[C │ │ iget v8, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ aget-char v0, v7, v8 │ │ - .line 614 │ + .line 603 │ .local v0, "c":C │ const/16 v7, 0x74 │ │ if-eq v0, v7, :cond_0 │ │ const/16 v7, 0x54 │ │ if-ne v0, v7, :cond_1 │ │ - .line 615 │ + .line 604 │ :cond_0 │ const-string v2, "true" │ │ - .line 616 │ + .line 605 │ .local v2, "keyword":Ljava/lang/String; │ const-string v3, "TRUE" │ │ - .line 617 │ + .line 606 │ .local v3, "keywordUpper":Ljava/lang/String; │ const/4 v5, 0x5 │ │ - .line 631 │ + .line 620 │ .local v5, "peeking":I │ :goto_0 │ invoke-virtual {v2}, Ljava/lang/String;->length()I │ │ move-result v4 │ │ - .line 632 │ + .line 621 │ .local v4, "length":I │ const/4 v1, 0x1 │ │ .local v1, "i":I │ :goto_1 │ if-ge v1, v4, :cond_8 │ │ - .line 633 │ + .line 622 │ iget v7, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/2addr v7, v1 │ │ iget v8, p0, Lcom/google/gson/stream/JsonReader;->limit:I │ │ if-lt v7, v8, :cond_6 │ @@ -1959,125 +1339,125 @@ │ │ move-result v7 │ │ if-nez v7, :cond_6 │ │ move v5, v6 │ │ - .line 649 │ + .line 638 │ .end local v1 # "i":I │ .end local v2 # "keyword":Ljava/lang/String; │ .end local v3 # "keywordUpper":Ljava/lang/String; │ .end local v4 # "length":I │ .end local v5 # "peeking":I │ :goto_2 │ return v5 │ │ - .line 618 │ + .line 607 │ :cond_1 │ const/16 v7, 0x66 │ │ if-eq v0, v7, :cond_2 │ │ const/16 v7, 0x46 │ │ if-ne v0, v7, :cond_3 │ │ - .line 619 │ + .line 608 │ :cond_2 │ const-string v2, "false" │ │ - .line 620 │ + .line 609 │ .restart local v2 # "keyword":Ljava/lang/String; │ const-string v3, "FALSE" │ │ - .line 621 │ + .line 610 │ .restart local v3 # "keywordUpper":Ljava/lang/String; │ const/4 v5, 0x6 │ │ .restart local v5 # "peeking":I │ goto :goto_0 │ │ - .line 622 │ + .line 611 │ .end local v2 # "keyword":Ljava/lang/String; │ .end local v3 # "keywordUpper":Ljava/lang/String; │ .end local v5 # "peeking":I │ :cond_3 │ const/16 v7, 0x6e │ │ if-eq v0, v7, :cond_4 │ │ const/16 v7, 0x4e │ │ if-ne v0, v7, :cond_5 │ │ - .line 623 │ + .line 612 │ :cond_4 │ const-string v2, "null" │ │ - .line 624 │ + .line 613 │ .restart local v2 # "keyword":Ljava/lang/String; │ const-string v3, "NULL" │ │ - .line 625 │ + .line 614 │ .restart local v3 # "keywordUpper":Ljava/lang/String; │ const/4 v5, 0x7 │ │ .restart local v5 # "peeking":I │ goto :goto_0 │ │ .end local v2 # "keyword":Ljava/lang/String; │ .end local v3 # "keywordUpper":Ljava/lang/String; │ .end local v5 # "peeking":I │ :cond_5 │ move v5, v6 │ │ - .line 627 │ + .line 616 │ goto :goto_2 │ │ - .line 636 │ + .line 625 │ .restart local v1 # "i":I │ .restart local v2 # "keyword":Ljava/lang/String; │ .restart local v3 # "keywordUpper":Ljava/lang/String; │ .restart local v4 # "length":I │ .restart local v5 # "peeking":I │ :cond_6 │ iget-object v7, p0, Lcom/google/gson/stream/JsonReader;->buffer:[C │ │ iget v8, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/2addr v8, v1 │ │ aget-char v0, v7, v8 │ │ - .line 637 │ + .line 626 │ invoke-virtual {v2, v1}, Ljava/lang/String;->charAt(I)C │ │ move-result v7 │ │ if-eq v0, v7, :cond_7 │ │ invoke-virtual {v3, v1}, Ljava/lang/String;->charAt(I)C │ │ move-result v7 │ │ if-eq v0, v7, :cond_7 │ │ move v5, v6 │ │ - .line 638 │ + .line 627 │ goto :goto_2 │ │ - .line 632 │ + .line 621 │ :cond_7 │ add-int/lit8 v1, v1, 0x1 │ │ goto :goto_1 │ │ - .line 642 │ + .line 631 │ :cond_8 │ iget v7, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/2addr v7, v4 │ │ iget v8, p0, Lcom/google/gson/stream/JsonReader;->limit:I │ │ @@ -2096,119 +1476,120 @@ │ │ iget v8, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/2addr v8, v4 │ │ aget-char v7, v7, v8 │ │ + .line 632 │ invoke-direct {p0, v7}, Lcom/google/gson/stream/JsonReader;->isLiteral(C)Z │ │ move-result v7 │ │ if-eqz v7, :cond_a │ │ move v5, v6 │ │ - .line 644 │ + .line 633 │ goto :goto_2 │ │ - .line 648 │ + .line 637 │ :cond_a │ iget v6, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/2addr v6, v4 │ │ iput v6, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 649 │ + .line 638 │ iput v5, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ goto :goto_2 │ .end method │ │ .method private peekNumber()I │ .locals 18 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 654 │ + .line 643 │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lcom/google/gson/stream/JsonReader;->buffer:[C │ │ - .line 655 │ + .line 644 │ .local v2, "buffer":[C │ move-object/from16 v0, p0 │ │ iget v9, v0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 656 │ + .line 645 │ .local v9, "p":I │ move-object/from16 v0, p0 │ │ iget v6, v0, Lcom/google/gson/stream/JsonReader;->limit:I │ │ - .line 658 │ + .line 647 │ .local v6, "l":I │ const-wide/16 v12, 0x0 │ │ - .line 659 │ + .line 648 │ .local v12, "value":J │ const/4 v8, 0x0 │ │ - .line 660 │ + .line 649 │ .local v8, "negative":Z │ const/4 v4, 0x1 │ │ - .line 661 │ + .line 650 │ .local v4, "fitsInLong":Z │ const/4 v7, 0x0 │ │ - .line 663 │ + .line 652 │ .local v7, "last":I │ const/4 v5, 0x0 │ │ - .line 667 │ + .line 656 │ .local v5, "i":I │ :goto_0 │ add-int v14, v9, v5 │ │ if-ne v14, v6, :cond_4 │ │ - .line 668 │ + .line 657 │ array-length v14, v2 │ │ if-ne v5, v14, :cond_0 │ │ - .line 671 │ + .line 660 │ const/4 v14, 0x0 │ │ - .line 751 │ + .line 740 │ .end local v12 # "value":J │ :goto_1 │ return v14 │ │ - .line 673 │ + .line 662 │ .restart local v12 # "value":J │ :cond_0 │ add-int/lit8 v14, v5, 0x1 │ │ move-object/from16 v0, p0 │ │ invoke-direct {v0, v14}, Lcom/google/gson/stream/JsonReader;->fillBuffer(I)Z │ │ move-result v14 │ │ if-nez v14, :cond_3 │ │ - .line 742 │ + .line 731 │ :cond_1 │ const/4 v14, 0x2 │ │ if-ne v7, v14, :cond_17 │ │ if-eqz v4, :cond_17 │ │ @@ -2216,224 +1597,224 @@ │ │ cmp-long v14, v12, v14 │ │ if-nez v14, :cond_2 │ │ if-eqz v8, :cond_17 │ │ - .line 743 │ + .line 732 │ :cond_2 │ if-eqz v8, :cond_16 │ │ .end local v12 # "value":J │ :goto_2 │ move-object/from16 v0, p0 │ │ iput-wide v12, v0, Lcom/google/gson/stream/JsonReader;->peekedLong:J │ │ - .line 744 │ + .line 733 │ move-object/from16 v0, p0 │ │ iget v14, v0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/2addr v14, v5 │ │ move-object/from16 v0, p0 │ │ iput v14, v0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 745 │ + .line 734 │ const/16 v14, 0xf │ │ move-object/from16 v0, p0 │ │ iput v14, v0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ goto :goto_1 │ │ - .line 676 │ + .line 665 │ .restart local v12 # "value":J │ :cond_3 │ move-object/from16 v0, p0 │ │ iget v9, v0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 677 │ + .line 666 │ move-object/from16 v0, p0 │ │ iget v6, v0, Lcom/google/gson/stream/JsonReader;->limit:I │ │ - .line 680 │ + .line 669 │ :cond_4 │ add-int v14, v9, v5 │ │ aget-char v3, v2, v14 │ │ - .line 681 │ + .line 670 │ .local v3, "c":C │ sparse-switch v3, :sswitch_data_0 │ │ - .line 716 │ + .line 705 │ const/16 v14, 0x30 │ │ if-lt v3, v14, :cond_5 │ │ const/16 v14, 0x39 │ │ if-le v3, v14, :cond_d │ │ - .line 717 │ + .line 706 │ :cond_5 │ move-object/from16 v0, p0 │ │ invoke-direct {v0, v3}, Lcom/google/gson/stream/JsonReader;->isLiteral(C)Z │ │ move-result v14 │ │ if-eqz v14, :cond_1 │ │ - .line 720 │ + .line 709 │ const/4 v14, 0x0 │ │ goto :goto_1 │ │ - .line 683 │ + .line 672 │ :sswitch_0 │ if-nez v7, :cond_7 │ │ - .line 684 │ + .line 673 │ const/4 v8, 0x1 │ │ - .line 685 │ + .line 674 │ const/4 v7, 0x1 │ │ - .line 666 │ + .line 655 │ :cond_6 │ :goto_3 │ add-int/lit8 v5, v5, 0x1 │ │ goto :goto_0 │ │ - .line 687 │ + .line 676 │ :cond_7 │ const/4 v14, 0x5 │ │ if-ne v7, v14, :cond_8 │ │ - .line 688 │ + .line 677 │ const/4 v7, 0x6 │ │ - .line 689 │ + .line 678 │ goto :goto_3 │ │ - .line 691 │ + .line 680 │ :cond_8 │ const/4 v14, 0x0 │ │ goto :goto_1 │ │ - .line 694 │ + .line 683 │ :sswitch_1 │ const/4 v14, 0x5 │ │ if-ne v7, v14, :cond_9 │ │ - .line 695 │ + .line 684 │ const/4 v7, 0x6 │ │ - .line 696 │ + .line 685 │ goto :goto_3 │ │ - .line 698 │ + .line 687 │ :cond_9 │ const/4 v14, 0x0 │ │ goto :goto_1 │ │ - .line 702 │ + .line 691 │ :sswitch_2 │ const/4 v14, 0x2 │ │ if-eq v7, v14, :cond_a │ │ const/4 v14, 0x4 │ │ if-ne v7, v14, :cond_b │ │ - .line 703 │ + .line 692 │ :cond_a │ const/4 v7, 0x5 │ │ - .line 704 │ + .line 693 │ goto :goto_3 │ │ - .line 706 │ + .line 695 │ :cond_b │ const/4 v14, 0x0 │ │ goto :goto_1 │ │ - .line 709 │ + .line 698 │ :sswitch_3 │ const/4 v14, 0x2 │ │ if-ne v7, v14, :cond_c │ │ - .line 710 │ + .line 699 │ const/4 v7, 0x3 │ │ - .line 711 │ + .line 700 │ goto :goto_3 │ │ - .line 713 │ + .line 702 │ :cond_c │ const/4 v14, 0x0 │ │ goto :goto_1 │ │ - .line 722 │ + .line 711 │ :cond_d │ const/4 v14, 0x1 │ │ if-eq v7, v14, :cond_e │ │ if-nez v7, :cond_f │ │ - .line 723 │ + .line 712 │ :cond_e │ add-int/lit8 v14, v3, -0x30 │ │ neg-int v14, v14 │ │ int-to-long v12, v14 │ │ - .line 724 │ + .line 713 │ const/4 v7, 0x2 │ │ goto :goto_3 │ │ - .line 725 │ + .line 714 │ :cond_f │ const/4 v14, 0x2 │ │ if-ne v7, v14, :cond_13 │ │ - .line 726 │ + .line 715 │ const-wide/16 v14, 0x0 │ │ cmp-long v14, v12, v14 │ │ if-nez v14, :cond_10 │ │ - .line 727 │ + .line 716 │ const/4 v14, 0x0 │ │ goto/16 :goto_1 │ │ - .line 729 │ + .line 718 │ :cond_10 │ const-wide/16 v14, 0xa │ │ mul-long/2addr v14, v12 │ │ add-int/lit8 v16, v3, -0x30 │ │ @@ -2441,15 +1822,15 @@ │ │ int-to-long v0, v0 │ │ move-wide/from16 v16, v0 │ │ sub-long v10, v14, v16 │ │ - .line 730 │ + .line 719 │ .local v10, "newValue":J │ const-wide v14, -0xcccccccccccccccL │ │ cmp-long v14, v12, v14 │ │ if-gtz v14, :cond_11 │ │ @@ -2465,97 +1846,97 @@ │ │ :cond_11 │ const/4 v14, 0x1 │ │ :goto_4 │ and-int/2addr v4, v14 │ │ - .line 732 │ + .line 721 │ move-wide v12, v10 │ │ - .line 733 │ + .line 722 │ goto :goto_3 │ │ - .line 730 │ + .line 719 │ :cond_12 │ const/4 v14, 0x0 │ │ goto :goto_4 │ │ - .line 733 │ + .line 722 │ .end local v10 # "newValue":J │ :cond_13 │ const/4 v14, 0x3 │ │ if-ne v7, v14, :cond_14 │ │ - .line 734 │ + .line 723 │ const/4 v7, 0x4 │ │ goto :goto_3 │ │ - .line 735 │ + .line 724 │ :cond_14 │ const/4 v14, 0x5 │ │ if-eq v7, v14, :cond_15 │ │ const/4 v14, 0x6 │ │ if-ne v7, v14, :cond_6 │ │ - .line 736 │ + .line 725 │ :cond_15 │ const/4 v7, 0x7 │ │ goto :goto_3 │ │ - .line 743 │ + .line 732 │ .end local v3 # "c":C │ :cond_16 │ neg-long v12, v12 │ │ goto/16 :goto_2 │ │ - .line 746 │ + .line 735 │ :cond_17 │ const/4 v14, 0x2 │ │ if-eq v7, v14, :cond_18 │ │ const/4 v14, 0x4 │ │ if-eq v7, v14, :cond_18 │ │ const/4 v14, 0x7 │ │ if-ne v7, v14, :cond_19 │ │ - .line 748 │ + .line 737 │ :cond_18 │ move-object/from16 v0, p0 │ │ iput v5, v0, Lcom/google/gson/stream/JsonReader;->peekedNumberLength:I │ │ - .line 749 │ + .line 738 │ const/16 v14, 0x10 │ │ move-object/from16 v0, p0 │ │ iput v14, v0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ goto/16 :goto_1 │ │ - .line 751 │ + .line 740 │ :cond_19 │ const/4 v14, 0x0 │ │ goto/16 :goto_1 │ │ - .line 681 │ + .line 670 │ :sswitch_data_0 │ .sparse-switch │ 0x2b -> :sswitch_1 │ 0x2d -> :sswitch_0 │ 0x2e -> :sswitch_3 │ 0x45 -> :sswitch_2 │ 0x65 -> :sswitch_2 │ @@ -2565,155 +1946,157 @@ │ .method private push(I)V │ .locals 6 │ .param p1, "newTop" # I │ │ .prologue │ const/4 v5, 0x0 │ │ - .line 1269 │ + .line 1256 │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ iget-object v4, p0, Lcom/google/gson/stream/JsonReader;->stack:[I │ │ array-length v4, v4 │ │ if-ne v3, v4, :cond_0 │ │ - .line 1270 │ + .line 1257 │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ mul-int/lit8 v3, v3, 0x2 │ │ new-array v2, v3, [I │ │ - .line 1271 │ + .line 1258 │ .local v2, "newStack":[I │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ mul-int/lit8 v3, v3, 0x2 │ │ new-array v0, v3, [I │ │ - .line 1272 │ + .line 1259 │ .local v0, "newPathIndices":[I │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ mul-int/lit8 v3, v3, 0x2 │ │ new-array v1, v3, [Ljava/lang/String; │ │ - .line 1273 │ + .line 1260 │ .local v1, "newPathNames":[Ljava/lang/String; │ iget-object v3, p0, Lcom/google/gson/stream/JsonReader;->stack:[I │ │ iget v4, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ invoke-static {v3, v5, v2, v5, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V │ │ - .line 1274 │ + .line 1261 │ iget-object v3, p0, Lcom/google/gson/stream/JsonReader;->pathIndices:[I │ │ iget v4, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ invoke-static {v3, v5, v0, v5, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V │ │ - .line 1275 │ + .line 1262 │ iget-object v3, p0, Lcom/google/gson/stream/JsonReader;->pathNames:[Ljava/lang/String; │ │ iget v4, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ invoke-static {v3, v5, v1, v5, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V │ │ - .line 1276 │ + .line 1263 │ iput-object v2, p0, Lcom/google/gson/stream/JsonReader;->stack:[I │ │ - .line 1277 │ + .line 1264 │ iput-object v0, p0, Lcom/google/gson/stream/JsonReader;->pathIndices:[I │ │ - .line 1278 │ + .line 1265 │ iput-object v1, p0, Lcom/google/gson/stream/JsonReader;->pathNames:[Ljava/lang/String; │ │ - .line 1280 │ + .line 1267 │ .end local v0 # "newPathIndices":[I │ .end local v1 # "newPathNames":[Ljava/lang/String; │ .end local v2 # "newStack":[I │ :cond_0 │ iget-object v3, p0, Lcom/google/gson/stream/JsonReader;->stack:[I │ │ iget v4, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ add-int/lit8 v5, v4, 0x1 │ │ iput v5, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ aput p1, v3, v4 │ │ - .line 1281 │ + .line 1268 │ return-void │ .end method │ │ .method private readEscapeCharacter()C │ .locals 11 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ const/4 v10, 0x4 │ │ - .line 1512 │ + .line 1495 │ iget v5, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ iget v6, p0, Lcom/google/gson/stream/JsonReader;->limit:I │ │ if-ne v5, v6, :cond_0 │ │ const/4 v5, 0x1 │ │ invoke-direct {p0, v5}, Lcom/google/gson/stream/JsonReader;->fillBuffer(I)Z │ │ move-result v5 │ │ if-nez v5, :cond_0 │ │ - .line 1513 │ + .line 1496 │ const-string v5, "Unterminated escape sequence" │ │ invoke-direct {p0, v5}, Lcom/google/gson/stream/JsonReader;->syntaxError(Ljava/lang/String;)Ljava/io/IOException; │ │ move-result-object v5 │ │ throw v5 │ │ - .line 1516 │ + .line 1499 │ :cond_0 │ iget-object v5, p0, Lcom/google/gson/stream/JsonReader;->buffer:[C │ │ iget v6, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/lit8 v7, v6, 0x1 │ │ iput v7, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ aget-char v2, v5, v6 │ │ - .line 1517 │ + .line 1500 │ .local v2, "escaped":C │ sparse-switch v2, :sswitch_data_0 │ │ - :goto_0 │ - move v4, v2 │ + .line 1550 │ + const-string v5, "Invalid escape sequence" │ │ - .line 1564 │ - :goto_1 │ - return v4 │ + invoke-direct {p0, v5}, Lcom/google/gson/stream/JsonReader;->syntaxError(Ljava/lang/String;)Ljava/io/IOException; │ + │ + move-result-object v5 │ + │ + throw v5 │ │ - .line 1519 │ + .line 1502 │ :sswitch_0 │ iget v5, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/lit8 v5, v5, 0x4 │ │ iget v6, p0, Lcom/google/gson/stream/JsonReader;->limit:I │ │ @@ -2721,114 +2104,114 @@ │ │ invoke-direct {p0, v10}, Lcom/google/gson/stream/JsonReader;->fillBuffer(I)Z │ │ move-result v5 │ │ if-nez v5, :cond_1 │ │ - .line 1520 │ + .line 1503 │ const-string v5, "Unterminated escape sequence" │ │ invoke-direct {p0, v5}, Lcom/google/gson/stream/JsonReader;->syntaxError(Ljava/lang/String;)Ljava/io/IOException; │ │ move-result-object v5 │ │ throw v5 │ │ - .line 1523 │ + .line 1506 │ :cond_1 │ const/4 v4, 0x0 │ │ - .line 1524 │ + .line 1507 │ .local v4, "result":C │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ .local v3, "i":I │ add-int/lit8 v1, v3, 0x4 │ │ .local v1, "end":I │ - :goto_2 │ + :goto_0 │ if-ge v3, v1, :cond_5 │ │ - .line 1525 │ + .line 1508 │ iget-object v5, p0, Lcom/google/gson/stream/JsonReader;->buffer:[C │ │ aget-char v0, v5, v3 │ │ - .line 1526 │ + .line 1509 │ .local v0, "c":C │ shl-int/lit8 v5, v4, 0x4 │ │ int-to-char v4, v5 │ │ - .line 1527 │ + .line 1510 │ const/16 v5, 0x30 │ │ if-lt v0, v5, :cond_2 │ │ const/16 v5, 0x39 │ │ if-gt v0, v5, :cond_2 │ │ - .line 1528 │ + .line 1511 │ add-int/lit8 v5, v0, -0x30 │ │ add-int/2addr v5, v4 │ │ int-to-char v4, v5 │ │ - .line 1524 │ - :goto_3 │ + .line 1507 │ + :goto_1 │ add-int/lit8 v3, v3, 0x1 │ │ - goto :goto_2 │ + goto :goto_0 │ │ - .line 1529 │ + .line 1512 │ :cond_2 │ const/16 v5, 0x61 │ │ if-lt v0, v5, :cond_3 │ │ const/16 v5, 0x66 │ │ if-gt v0, v5, :cond_3 │ │ - .line 1530 │ + .line 1513 │ add-int/lit8 v5, v0, -0x61 │ │ add-int/lit8 v5, v5, 0xa │ │ add-int/2addr v5, v4 │ │ int-to-char v4, v5 │ │ - goto :goto_3 │ + goto :goto_1 │ │ - .line 1531 │ + .line 1514 │ :cond_3 │ const/16 v5, 0x41 │ │ if-lt v0, v5, :cond_4 │ │ const/16 v5, 0x46 │ │ if-gt v0, v5, :cond_4 │ │ - .line 1532 │ + .line 1515 │ add-int/lit8 v5, v0, -0x41 │ │ add-int/lit8 v5, v5, 0xa │ │ add-int/2addr v5, v4 │ │ int-to-char v4, v5 │ │ - goto :goto_3 │ + goto :goto_1 │ │ - .line 1534 │ + .line 1517 │ :cond_4 │ new-instance v5, Ljava/lang/NumberFormatException; │ │ new-instance v6, Ljava/lang/StringBuilder; │ │ invoke-direct {v6}, Ljava/lang/StringBuilder;->()V │ │ @@ -2854,79 +2237,89 @@ │ │ move-result-object v6 │ │ invoke-direct {v5, v6}, Ljava/lang/NumberFormatException;->(Ljava/lang/String;)V │ │ throw v5 │ │ - .line 1537 │ + .line 1520 │ .end local v0 # "c":C │ :cond_5 │ iget v5, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/lit8 v5, v5, 0x4 │ │ iput v5, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - goto :goto_1 │ - │ - .line 1541 │ + .line 1547 │ .end local v1 # "end":I │ .end local v3 # "i":I │ .end local v4 # "result":C │ + :goto_2 │ + return v4 │ + │ + .line 1524 │ :sswitch_1 │ const/16 v4, 0x9 │ │ - goto :goto_1 │ + goto :goto_2 │ │ - .line 1544 │ + .line 1527 │ :sswitch_2 │ const/16 v4, 0x8 │ │ - goto :goto_1 │ + goto :goto_2 │ │ - .line 1547 │ + .line 1530 │ :sswitch_3 │ const/16 v4, 0xa │ │ - goto/16 :goto_1 │ + goto :goto_2 │ │ - .line 1550 │ + .line 1533 │ :sswitch_4 │ const/16 v4, 0xd │ │ - goto/16 :goto_1 │ + goto :goto_2 │ │ - .line 1553 │ + .line 1536 │ :sswitch_5 │ const/16 v4, 0xc │ │ - goto/16 :goto_1 │ + goto :goto_2 │ │ - .line 1556 │ + .line 1539 │ :sswitch_6 │ iget v5, p0, Lcom/google/gson/stream/JsonReader;->lineNumber:I │ │ add-int/lit8 v5, v5, 0x1 │ │ iput v5, p0, Lcom/google/gson/stream/JsonReader;->lineNumber:I │ │ - .line 1557 │ + .line 1540 │ iget v5, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ iput v5, p0, Lcom/google/gson/stream/JsonReader;->lineStart:I │ │ - goto/16 :goto_0 │ + :sswitch_7 │ + move v4, v2 │ │ - .line 1517 │ + .line 1547 │ + goto :goto_2 │ + │ + .line 1500 │ nop │ │ :sswitch_data_0 │ .sparse-switch │ 0xa -> :sswitch_6 │ + 0x22 -> :sswitch_7 │ + 0x27 -> :sswitch_7 │ + 0x2f -> :sswitch_7 │ + 0x5c -> :sswitch_7 │ 0x62 -> :sswitch_2 │ 0x66 -> :sswitch_5 │ 0x6e -> :sswitch_3 │ 0x72 -> :sswitch_4 │ 0x74 -> :sswitch_1 │ 0x75 -> :sswitch_0 │ .end sparse-switch │ @@ -2938,116 +2331,116 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 1103 │ + .line 1089 │ iget-object v0, p0, Lcom/google/gson/stream/JsonReader;->buffer:[C │ │ - .line 1105 │ + .line 1091 │ .local v0, "buffer":[C │ :cond_0 │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1106 │ + .line 1092 │ .local v3, "p":I │ iget v2, p0, Lcom/google/gson/stream/JsonReader;->limit:I │ │ .local v2, "l":I │ move v4, v3 │ │ - .line 1108 │ + .line 1094 │ .end local v3 # "p":I │ .local v4, "p":I │ :goto_0 │ if-ge v4, v2, :cond_4 │ │ - .line 1109 │ + .line 1095 │ add-int/lit8 v3, v4, 0x1 │ │ .end local v4 # "p":I │ .restart local v3 # "p":I │ aget-char v1, v0, v4 │ │ - .line 1110 │ + .line 1096 │ .local v1, "c":I │ if-ne v1, p1, :cond_1 │ │ - .line 1111 │ + .line 1097 │ iput v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1112 │ + .line 1098 │ return-void │ │ - .line 1113 │ + .line 1099 │ :cond_1 │ const/16 v5, 0x5c │ │ if-ne v1, v5, :cond_3 │ │ - .line 1114 │ + .line 1100 │ iput v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1115 │ + .line 1101 │ invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->readEscapeCharacter()C │ │ - .line 1116 │ + .line 1102 │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1117 │ + .line 1103 │ iget v2, p0, Lcom/google/gson/stream/JsonReader;->limit:I │ │ :cond_2 │ :goto_1 │ move v4, v3 │ │ - .line 1122 │ + .line 1108 │ .end local v3 # "p":I │ .restart local v4 # "p":I │ goto :goto_0 │ │ - .line 1118 │ + .line 1104 │ .end local v4 # "p":I │ .restart local v3 # "p":I │ :cond_3 │ const/16 v5, 0xa │ │ if-ne v1, v5, :cond_2 │ │ - .line 1119 │ + .line 1105 │ iget v5, p0, Lcom/google/gson/stream/JsonReader;->lineNumber:I │ │ add-int/lit8 v5, v5, 0x1 │ │ iput v5, p0, Lcom/google/gson/stream/JsonReader;->lineNumber:I │ │ - .line 1120 │ + .line 1106 │ iput v3, p0, Lcom/google/gson/stream/JsonReader;->lineStart:I │ │ goto :goto_1 │ │ - .line 1123 │ + .line 1109 │ .end local v1 # "c":I │ .end local v3 # "p":I │ .restart local v4 # "p":I │ :cond_4 │ iput v4, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1124 │ + .line 1110 │ const/4 v5, 0x1 │ │ invoke-direct {p0, v5}, Lcom/google/gson/stream/JsonReader;->fillBuffer(I)Z │ │ move-result v5 │ │ if-nez v5, :cond_0 │ │ - .line 1125 │ + .line 1111 │ const-string v5, "Unterminated string" │ │ invoke-direct {p0, v5}, Lcom/google/gson/stream/JsonReader;->syntaxError(Ljava/lang/String;)Ljava/io/IOException; │ │ move-result-object v5 │ │ throw v5 │ @@ -3059,15 +2452,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 1450 │ + .line 1428 │ :goto_0 │ iget v1, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ invoke-virtual {p1}, Ljava/lang/String;->length()I │ │ move-result v2 │ │ @@ -3083,87 +2476,87 @@ │ │ invoke-direct {p0, v1}, Lcom/google/gson/stream/JsonReader;->fillBuffer(I)Z │ │ move-result v1 │ │ if-eqz v1, :cond_4 │ │ - .line 1451 │ + .line 1429 │ :cond_0 │ iget-object v1, p0, Lcom/google/gson/stream/JsonReader;->buffer:[C │ │ iget v2, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ aget-char v1, v1, v2 │ │ const/16 v2, 0xa │ │ if-ne v1, v2, :cond_2 │ │ - .line 1452 │ + .line 1430 │ iget v1, p0, Lcom/google/gson/stream/JsonReader;->lineNumber:I │ │ add-int/lit8 v1, v1, 0x1 │ │ iput v1, p0, Lcom/google/gson/stream/JsonReader;->lineNumber:I │ │ - .line 1453 │ + .line 1431 │ iget v1, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/lit8 v1, v1, 0x1 │ │ iput v1, p0, Lcom/google/gson/stream/JsonReader;->lineStart:I │ │ - .line 1450 │ + .line 1428 │ :cond_1 │ iget v1, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/lit8 v1, v1, 0x1 │ │ iput v1, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ goto :goto_0 │ │ - .line 1456 │ + .line 1434 │ :cond_2 │ const/4 v0, 0x0 │ │ .local v0, "c":I │ :goto_1 │ invoke-virtual {p1}, Ljava/lang/String;->length()I │ │ move-result v1 │ │ if-ge v0, v1, :cond_3 │ │ - .line 1457 │ + .line 1435 │ iget-object v1, p0, Lcom/google/gson/stream/JsonReader;->buffer:[C │ │ iget v2, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/2addr v2, v0 │ │ aget-char v1, v1, v2 │ │ invoke-virtual {p1, v0}, Ljava/lang/String;->charAt(I)C │ │ move-result v2 │ │ if-ne v1, v2, :cond_1 │ │ - .line 1456 │ + .line 1434 │ add-int/lit8 v0, v0, 0x1 │ │ goto :goto_1 │ │ - .line 1461 │ + .line 1439 │ :cond_3 │ const/4 v1, 0x1 │ │ - .line 1463 │ + .line 1441 │ .end local v0 # "c":I │ :goto_2 │ return v1 │ │ :cond_4 │ const/4 v1, 0x0 │ │ @@ -3175,15 +2568,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 1433 │ + .line 1411 │ :cond_0 │ iget v1, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ iget v2, p0, Lcom/google/gson/stream/JsonReader;->limit:I │ │ if-lt v1, v2, :cond_1 │ │ @@ -3191,51 +2584,51 @@ │ │ invoke-direct {p0, v1}, Lcom/google/gson/stream/JsonReader;->fillBuffer(I)Z │ │ move-result v1 │ │ if-eqz v1, :cond_2 │ │ - .line 1434 │ + .line 1412 │ :cond_1 │ iget-object v1, p0, Lcom/google/gson/stream/JsonReader;->buffer:[C │ │ iget v2, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/lit8 v3, v2, 0x1 │ │ iput v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ aget-char v0, v1, v2 │ │ - .line 1435 │ + .line 1413 │ .local v0, "c":C │ const/16 v1, 0xa │ │ if-ne v0, v1, :cond_3 │ │ - .line 1436 │ + .line 1414 │ iget v1, p0, Lcom/google/gson/stream/JsonReader;->lineNumber:I │ │ add-int/lit8 v1, v1, 0x1 │ │ iput v1, p0, Lcom/google/gson/stream/JsonReader;->lineNumber:I │ │ - .line 1437 │ + .line 1415 │ iget v1, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ iput v1, p0, Lcom/google/gson/stream/JsonReader;->lineStart:I │ │ - .line 1443 │ + .line 1421 │ .end local v0 # "c":C │ :cond_2 │ :goto_0 │ return-void │ │ - .line 1439 │ + .line 1417 │ .restart local v0 # "c":C │ :cond_3 │ const/16 v1, 0xd │ │ if-ne v0, v1, :cond_0 │ │ goto :goto_0 │ @@ -3246,81 +2639,81 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 1130 │ + .line 1116 │ :cond_0 │ const/4 v0, 0x0 │ │ - .line 1131 │ + .line 1117 │ .local v0, "i":I │ :goto_0 │ iget v1, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/2addr v1, v0 │ │ iget v2, p0, Lcom/google/gson/stream/JsonReader;->limit:I │ │ if-ge v1, v2, :cond_1 │ │ - .line 1132 │ + .line 1118 │ iget-object v1, p0, Lcom/google/gson/stream/JsonReader;->buffer:[C │ │ iget v2, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/2addr v2, v0 │ │ aget-char v1, v1, v2 │ │ sparse-switch v1, :sswitch_data_0 │ │ - .line 1131 │ + .line 1117 │ add-int/lit8 v0, v0, 0x1 │ │ goto :goto_0 │ │ - .line 1138 │ + .line 1124 │ :sswitch_0 │ invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->checkLenient()V │ │ - .line 1150 │ + .line 1136 │ :sswitch_1 │ iget v1, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/2addr v1, v0 │ │ iput v1, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1156 │ + .line 1142 │ :goto_1 │ return-void │ │ - .line 1154 │ + .line 1140 │ :cond_1 │ iget v1, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ add-int/2addr v1, v0 │ │ iput v1, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1155 │ + .line 1141 │ const/4 v1, 0x1 │ │ invoke-direct {p0, v1}, Lcom/google/gson/stream/JsonReader;->fillBuffer(I)Z │ │ move-result v1 │ │ if-nez v1, :cond_0 │ │ goto :goto_1 │ │ - .line 1132 │ + .line 1118 │ nop │ │ :sswitch_data_0 │ .sparse-switch │ 0x9 -> :sswitch_1 │ 0xa -> :sswitch_1 │ 0xc -> :sswitch_1 │ @@ -3346,60 +2739,26 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 1573 │ + .line 1559 │ new-instance v0, Lcom/google/gson/stream/MalformedJsonException; │ │ new-instance v1, Ljava/lang/StringBuilder; │ │ invoke-direct {v1}, Ljava/lang/StringBuilder;->()V │ │ invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ - const-string v2, " at line " │ - │ - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v1 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getLineNumber()I │ - │ - move-result v2 │ - │ - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v1 │ - │ - const-string v2, " column " │ - │ - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v1 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getColumnNumber()I │ - │ - move-result v2 │ - │ - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v1 │ - │ - const-string v2, " path " │ - │ - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v1 │ - │ - invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->getPath()Ljava/lang/String; │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->locationString()Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ @@ -3429,15 +2788,15 @@ │ iget v0, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ .line 342 │ .local v0, "p":I │ if-nez v0, :cond_0 │ │ .line 343 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ + invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ │ move-result v0 │ │ .line 345 │ :cond_0 │ const/4 v1, 0x3 │ │ @@ -3456,15 +2815,15 @@ │ add-int/lit8 v2, v2, -0x1 │ │ aput v3, v1, v2 │ │ .line 348 │ iput v3, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 353 │ + .line 352 │ return-void │ │ .line 350 │ :cond_1 │ new-instance v1, Ljava/lang/IllegalStateException; │ │ new-instance v2, Ljava/lang/StringBuilder; │ @@ -3481,49 +2840,15 @@ │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ - const-string v3, " at line " │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getLineNumber()I │ - │ - move-result v3 │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - const-string v3, " column " │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getColumnNumber()I │ - │ - move-result v3 │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - const-string v3, " path " │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->getPath()Ljava/lang/String; │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->locationString()Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ @@ -3541,46 +2866,46 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 379 │ + .line 377 │ iget v0, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 380 │ + .line 378 │ .local v0, "p":I │ if-nez v0, :cond_0 │ │ - .line 381 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ + .line 379 │ + invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ │ move-result v0 │ │ - .line 383 │ + .line 381 │ :cond_0 │ const/4 v1, 0x1 │ │ if-ne v0, v1, :cond_1 │ │ - .line 384 │ + .line 382 │ const/4 v1, 0x3 │ │ invoke-direct {p0, v1}, Lcom/google/gson/stream/JsonReader;->push(I)V │ │ - .line 385 │ + .line 383 │ const/4 v1, 0x0 │ │ iput v1, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 390 │ + .line 387 │ return-void │ │ - .line 387 │ + .line 385 │ :cond_1 │ new-instance v1, Ljava/lang/IllegalStateException; │ │ new-instance v2, Ljava/lang/StringBuilder; │ │ invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ │ @@ -3594,49 +2919,15 @@ │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ - const-string v3, " at line " │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getLineNumber()I │ - │ - move-result v3 │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - const-string v3, " column " │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getColumnNumber()I │ - │ - move-result v3 │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - const-string v3, " path " │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->getPath()Ljava/lang/String; │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->locationString()Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ @@ -3656,94 +2947,666 @@ │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ const/4 v2, 0x0 │ │ - .line 1221 │ + .line 1208 │ iput v2, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 1222 │ + .line 1209 │ iget-object v0, p0, Lcom/google/gson/stream/JsonReader;->stack:[I │ │ const/16 v1, 0x8 │ │ aput v1, v0, v2 │ │ - .line 1223 │ + .line 1210 │ const/4 v0, 0x1 │ │ iput v0, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ - .line 1224 │ + .line 1211 │ iget-object v0, p0, Lcom/google/gson/stream/JsonReader;->in:Ljava/io/Reader; │ │ invoke-virtual {v0}, Ljava/io/Reader;->close()V │ │ - .line 1225 │ + .line 1212 │ return-void │ .end method │ │ +.method doPeek()I │ + .locals 9 │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/io/IOException; │ + } │ + .end annotation │ + │ + .prologue │ + const/4 v5, 0x7 │ + │ + const/4 v8, 0x5 │ + │ + const/4 v2, 0x4 │ + │ + const/4 v3, 0x2 │ + │ + const/4 v4, 0x1 │ + │ + .line 462 │ + iget-object v6, p0, Lcom/google/gson/stream/JsonReader;->stack:[I │ + │ + iget v7, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ + │ + add-int/lit8 v7, v7, -0x1 │ + │ + aget v1, v6, v7 │ + │ + .line 463 │ + .local v1, "peekStack":I │ + if-ne v1, v4, :cond_2 │ + │ + .line 464 │ + iget-object v6, p0, Lcom/google/gson/stream/JsonReader;->stack:[I │ + │ + iget v7, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ + │ + add-int/lit8 v7, v7, -0x1 │ + │ + aput v3, v6, v7 │ + │ + .line 549 │ + :cond_0 │ + :goto_0 │ + :pswitch_0 │ + :sswitch_0 │ + invoke-direct {p0, v4}, Lcom/google/gson/stream/JsonReader;->nextNonWhitespace(Z)I │ + │ + move-result v0 │ + │ + .line 550 │ + .local v0, "c":I │ + sparse-switch v0, :sswitch_data_0 │ + │ + .line 576 │ + iget v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ + │ + add-int/lit8 v3, v3, -0x1 │ + │ + iput v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ + │ + .line 579 │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->peekKeyword()I │ + │ + move-result v2 │ + │ + .line 580 │ + .local v2, "result":I │ + if-eqz v2, :cond_12 │ + │ + .line 594 │ + .end local v2 # "result":I │ + :cond_1 │ + :goto_1 │ + return v2 │ + │ + .line 465 │ + .end local v0 # "c":I │ + :cond_2 │ + if-ne v1, v3, :cond_3 │ + │ + .line 467 │ + invoke-direct {p0, v4}, Lcom/google/gson/stream/JsonReader;->nextNonWhitespace(Z)I │ + │ + move-result v0 │ + │ + .line 468 │ + .restart local v0 # "c":I │ + sparse-switch v0, :sswitch_data_1 │ + │ + .line 476 │ + const-string v3, "Unterminated array" │ + │ + invoke-direct {p0, v3}, Lcom/google/gson/stream/JsonReader;->syntaxError(Ljava/lang/String;)Ljava/io/IOException; │ + │ + move-result-object v3 │ + │ + throw v3 │ + │ + .line 470 │ + :sswitch_1 │ + iput v2, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ + │ + goto :goto_1 │ + │ + .line 472 │ + :sswitch_2 │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->checkLenient()V │ + │ + goto :goto_0 │ + │ + .line 478 │ + .end local v0 # "c":I │ + :cond_3 │ + const/4 v6, 0x3 │ + │ + if-eq v1, v6, :cond_4 │ + │ + if-ne v1, v8, :cond_8 │ + │ + .line 479 │ + :cond_4 │ + iget-object v5, p0, Lcom/google/gson/stream/JsonReader;->stack:[I │ + │ + iget v6, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ + │ + add-int/lit8 v6, v6, -0x1 │ + │ + aput v2, v5, v6 │ + │ + .line 481 │ + if-ne v1, v8, :cond_5 │ + │ + .line 482 │ + invoke-direct {p0, v4}, Lcom/google/gson/stream/JsonReader;->nextNonWhitespace(Z)I │ + │ + move-result v0 │ + │ + .line 483 │ + .restart local v0 # "c":I │ + sparse-switch v0, :sswitch_data_2 │ + │ + .line 491 │ + const-string v3, "Unterminated object" │ + │ + invoke-direct {p0, v3}, Lcom/google/gson/stream/JsonReader;->syntaxError(Ljava/lang/String;)Ljava/io/IOException; │ + │ + move-result-object v3 │ + │ + throw v3 │ + │ + .line 485 │ + :sswitch_3 │ + iput v3, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ + │ + move v2, v3 │ + │ + goto :goto_1 │ + │ + .line 487 │ + :sswitch_4 │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->checkLenient()V │ + │ + .line 494 │ + .end local v0 # "c":I │ + :cond_5 │ + :sswitch_5 │ + invoke-direct {p0, v4}, Lcom/google/gson/stream/JsonReader;->nextNonWhitespace(Z)I │ + │ + move-result v0 │ + │ + .line 495 │ + .restart local v0 # "c":I │ + sparse-switch v0, :sswitch_data_3 │ + │ + .line 508 │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->checkLenient()V │ + │ + .line 509 │ + iget v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ + │ + add-int/lit8 v3, v3, -0x1 │ + │ + iput v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ + │ + .line 510 │ + int-to-char v3, v0 │ + │ + invoke-direct {p0, v3}, Lcom/google/gson/stream/JsonReader;->isLiteral(C)Z │ + │ + move-result v3 │ + │ + if-eqz v3, :cond_7 │ + │ + .line 511 │ + const/16 v2, 0xe │ + │ + iput v2, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ + │ + goto :goto_1 │ + │ + .line 497 │ + :sswitch_6 │ + const/16 v2, 0xd │ + │ + iput v2, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ + │ + goto :goto_1 │ + │ + .line 499 │ + :sswitch_7 │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->checkLenient()V │ + │ + .line 500 │ + const/16 v2, 0xc │ + │ + iput v2, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ + │ + goto :goto_1 │ + │ + .line 502 │ + :sswitch_8 │ + if-eq v1, v8, :cond_6 │ + │ + .line 503 │ + iput v3, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ + │ + move v2, v3 │ + │ + goto :goto_1 │ + │ + .line 505 │ + :cond_6 │ + const-string v3, "Expected name" │ + │ + invoke-direct {p0, v3}, Lcom/google/gson/stream/JsonReader;->syntaxError(Ljava/lang/String;)Ljava/io/IOException; │ + │ + move-result-object v3 │ + │ + throw v3 │ + │ + .line 513 │ + :cond_7 │ + const-string v3, "Expected name" │ + │ + invoke-direct {p0, v3}, Lcom/google/gson/stream/JsonReader;->syntaxError(Ljava/lang/String;)Ljava/io/IOException; │ + │ + move-result-object v3 │ + │ + throw v3 │ + │ + .line 516 │ + .end local v0 # "c":I │ + :cond_8 │ + if-ne v1, v2, :cond_a │ + │ + .line 517 │ + iget-object v6, p0, Lcom/google/gson/stream/JsonReader;->stack:[I │ + │ + iget v7, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ + │ + add-int/lit8 v7, v7, -0x1 │ + │ + aput v8, v6, v7 │ + │ + .line 519 │ + invoke-direct {p0, v4}, Lcom/google/gson/stream/JsonReader;->nextNonWhitespace(Z)I │ + │ + move-result v0 │ + │ + .line 520 │ + .restart local v0 # "c":I │ + packed-switch v0, :pswitch_data_0 │ + │ + .line 530 │ + :pswitch_1 │ + const-string v3, "Expected \':\'" │ + │ + invoke-direct {p0, v3}, Lcom/google/gson/stream/JsonReader;->syntaxError(Ljava/lang/String;)Ljava/io/IOException; │ + │ + move-result-object v3 │ + │ + throw v3 │ + │ + .line 524 │ + :pswitch_2 │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->checkLenient()V │ + │ + .line 525 │ + iget v6, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ + │ + iget v7, p0, Lcom/google/gson/stream/JsonReader;->limit:I │ + │ + if-lt v6, v7, :cond_9 │ + │ + invoke-direct {p0, v4}, Lcom/google/gson/stream/JsonReader;->fillBuffer(I)Z │ + │ + move-result v6 │ + │ + if-eqz v6, :cond_0 │ + │ + :cond_9 │ + iget-object v6, p0, Lcom/google/gson/stream/JsonReader;->buffer:[C │ + │ + iget v7, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ + │ + aget-char v6, v6, v7 │ + │ + const/16 v7, 0x3e │ + │ + if-ne v6, v7, :cond_0 │ + │ + .line 526 │ + iget v6, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ + │ + add-int/lit8 v6, v6, 0x1 │ + │ + iput v6, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ + │ + goto/16 :goto_0 │ + │ + .line 532 │ + .end local v0 # "c":I │ + :cond_a │ + const/4 v6, 0x6 │ + │ + if-ne v1, v6, :cond_c │ + │ + .line 533 │ + iget-boolean v6, p0, Lcom/google/gson/stream/JsonReader;->lenient:Z │ + │ + if-eqz v6, :cond_b │ + │ + .line 534 │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->consumeNonExecutePrefix()V │ + │ + .line 536 │ + :cond_b │ + iget-object v6, p0, Lcom/google/gson/stream/JsonReader;->stack:[I │ + │ + iget v7, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ + │ + add-int/lit8 v7, v7, -0x1 │ + │ + aput v5, v6, v7 │ + │ + goto/16 :goto_0 │ + │ + .line 537 │ + :cond_c │ + if-ne v1, v5, :cond_e │ + │ + .line 538 │ + const/4 v6, 0x0 │ + │ + invoke-direct {p0, v6}, Lcom/google/gson/stream/JsonReader;->nextNonWhitespace(Z)I │ + │ + move-result v0 │ + │ + .line 539 │ + .restart local v0 # "c":I │ + const/4 v6, -0x1 │ + │ + if-ne v0, v6, :cond_d │ + │ + .line 540 │ + const/16 v2, 0x11 │ + │ + iput v2, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ + │ + goto/16 :goto_1 │ + │ + .line 542 │ + :cond_d │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->checkLenient()V │ + │ + .line 543 │ + iget v6, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ + │ + add-int/lit8 v6, v6, -0x1 │ + │ + iput v6, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ + │ + goto/16 :goto_0 │ + │ + .line 545 │ + .end local v0 # "c":I │ + :cond_e │ + const/16 v6, 0x8 │ + │ + if-ne v1, v6, :cond_0 │ + │ + .line 546 │ + new-instance v3, Ljava/lang/IllegalStateException; │ + │ + const-string v4, "JsonReader is closed" │ + │ + invoke-direct {v3, v4}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V │ + │ + throw v3 │ + │ + .line 552 │ + .restart local v0 # "c":I │ + :sswitch_9 │ + if-ne v1, v4, :cond_f │ + │ + .line 553 │ + iput v2, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ + │ + goto/16 :goto_1 │ + │ + .line 559 │ + :cond_f │ + :sswitch_a │ + if-eq v1, v4, :cond_10 │ + │ + if-ne v1, v3, :cond_11 │ + │ + .line 560 │ + :cond_10 │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->checkLenient()V │ + │ + .line 561 │ + iget v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ + │ + add-int/lit8 v3, v3, -0x1 │ + │ + iput v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ + │ + .line 562 │ + iput v5, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ + │ + move v2, v5 │ + │ + goto/16 :goto_1 │ + │ + .line 564 │ + :cond_11 │ + const-string v3, "Unexpected value" │ + │ + invoke-direct {p0, v3}, Lcom/google/gson/stream/JsonReader;->syntaxError(Ljava/lang/String;)Ljava/io/IOException; │ + │ + move-result-object v3 │ + │ + throw v3 │ + │ + .line 567 │ + :sswitch_b │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->checkLenient()V │ + │ + .line 568 │ + const/16 v2, 0x8 │ + │ + iput v2, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ + │ + goto/16 :goto_1 │ + │ + .line 570 │ + :sswitch_c │ + const/16 v2, 0x9 │ + │ + iput v2, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ + │ + goto/16 :goto_1 │ + │ + .line 572 │ + :sswitch_d │ + const/4 v2, 0x3 │ + │ + iput v2, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ + │ + goto/16 :goto_1 │ + │ + .line 574 │ + :sswitch_e │ + iput v4, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ + │ + move v2, v4 │ + │ + goto/16 :goto_1 │ + │ + .line 584 │ + .restart local v2 # "result":I │ + :cond_12 │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->peekNumber()I │ + │ + move-result v2 │ + │ + .line 585 │ + if-nez v2, :cond_1 │ + │ + .line 589 │ + iget-object v3, p0, Lcom/google/gson/stream/JsonReader;->buffer:[C │ + │ + iget v4, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ + │ + aget-char v3, v3, v4 │ + │ + invoke-direct {p0, v3}, Lcom/google/gson/stream/JsonReader;->isLiteral(C)Z │ + │ + move-result v3 │ + │ + if-nez v3, :cond_13 │ + │ + .line 590 │ + const-string v3, "Expected value" │ + │ + invoke-direct {p0, v3}, Lcom/google/gson/stream/JsonReader;->syntaxError(Ljava/lang/String;)Ljava/io/IOException; │ + │ + move-result-object v3 │ + │ + throw v3 │ + │ + .line 593 │ + :cond_13 │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->checkLenient()V │ + │ + .line 594 │ + const/16 v2, 0xa │ + │ + iput v2, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ + │ + goto/16 :goto_1 │ + │ + .line 550 │ + nop │ + │ + :sswitch_data_0 │ + .sparse-switch │ + 0x22 -> :sswitch_c │ + 0x27 -> :sswitch_b │ + 0x2c -> :sswitch_a │ + 0x3b -> :sswitch_a │ + 0x5b -> :sswitch_d │ + 0x5d -> :sswitch_9 │ + 0x7b -> :sswitch_e │ + .end sparse-switch │ + │ + .line 468 │ + :sswitch_data_1 │ + .sparse-switch │ + 0x2c -> :sswitch_0 │ + 0x3b -> :sswitch_2 │ + 0x5d -> :sswitch_1 │ + .end sparse-switch │ + │ + .line 483 │ + :sswitch_data_2 │ + .sparse-switch │ + 0x2c -> :sswitch_5 │ + 0x3b -> :sswitch_4 │ + 0x7d -> :sswitch_3 │ + .end sparse-switch │ + │ + .line 495 │ + :sswitch_data_3 │ + .sparse-switch │ + 0x22 -> :sswitch_6 │ + 0x27 -> :sswitch_7 │ + 0x7d -> :sswitch_8 │ + .end sparse-switch │ + │ + .line 520 │ + :pswitch_data_0 │ + .packed-switch 0x3a │ + :pswitch_0 │ + :pswitch_1 │ + :pswitch_1 │ + :pswitch_2 │ + .end packed-switch │ +.end method │ + │ .method public endArray()V │ .locals 4 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 360 │ + .line 359 │ iget v0, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 361 │ + .line 360 │ .local v0, "p":I │ if-nez v0, :cond_0 │ │ - .line 362 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ + .line 361 │ + invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ │ move-result v0 │ │ - .line 364 │ + .line 363 │ :cond_0 │ const/4 v1, 0x4 │ │ if-ne v0, v1, :cond_1 │ │ - .line 365 │ + .line 364 │ iget v1, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ add-int/lit8 v1, v1, -0x1 │ │ iput v1, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ - .line 366 │ + .line 365 │ iget-object v1, p0, Lcom/google/gson/stream/JsonReader;->pathIndices:[I │ │ iget v2, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ add-int/lit8 v2, v2, -0x1 │ │ aget v3, v1, v2 │ │ add-int/lit8 v3, v3, 0x1 │ │ aput v3, v1, v2 │ │ - .line 367 │ + .line 366 │ const/4 v1, 0x0 │ │ iput v1, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 372 │ + .line 370 │ return-void │ │ - .line 369 │ + .line 368 │ :cond_1 │ new-instance v1, Ljava/lang/IllegalStateException; │ │ new-instance v2, Ljava/lang/StringBuilder; │ │ invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ │ @@ -3757,49 +3620,15 @@ │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ - const-string v3, " at line " │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getLineNumber()I │ - │ - move-result v3 │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - const-string v3, " column " │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getColumnNumber()I │ - │ - move-result v3 │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - const-string v3, " path " │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->getPath()Ljava/lang/String; │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->locationString()Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ @@ -3817,70 +3646,70 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 397 │ + .line 394 │ iget v0, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 398 │ + .line 395 │ .local v0, "p":I │ if-nez v0, :cond_0 │ │ - .line 399 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ + .line 396 │ + invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ │ move-result v0 │ │ - .line 401 │ + .line 398 │ :cond_0 │ const/4 v1, 0x2 │ │ if-ne v0, v1, :cond_1 │ │ - .line 402 │ + .line 399 │ iget v1, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ add-int/lit8 v1, v1, -0x1 │ │ iput v1, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ - .line 403 │ + .line 400 │ iget-object v1, p0, Lcom/google/gson/stream/JsonReader;->pathNames:[Ljava/lang/String; │ │ iget v2, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ const/4 v3, 0x0 │ │ aput-object v3, v1, v2 │ │ - .line 404 │ + .line 401 │ iget-object v1, p0, Lcom/google/gson/stream/JsonReader;->pathIndices:[I │ │ iget v2, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ add-int/lit8 v2, v2, -0x1 │ │ aget v3, v1, v2 │ │ add-int/lit8 v3, v3, 0x1 │ │ aput v3, v1, v2 │ │ - .line 405 │ + .line 402 │ const/4 v1, 0x0 │ │ iput v1, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 410 │ + .line 406 │ return-void │ │ - .line 407 │ + .line 404 │ :cond_1 │ new-instance v1, Ljava/lang/IllegalStateException; │ │ new-instance v2, Ljava/lang/StringBuilder; │ │ invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ │ @@ -3894,49 +3723,15 @@ │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ - const-string v3, " at line " │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getLineNumber()I │ - │ - move-result v3 │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - const-string v3, " column " │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getColumnNumber()I │ - │ - move-result v3 │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - const-string v3, " path " │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->getPath()Ljava/lang/String; │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->locationString()Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ @@ -3949,51 +3744,51 @@ │ throw v1 │ .end method │ │ .method public getPath()Ljava/lang/String; │ .locals 5 │ │ .prologue │ - .line 1476 │ + .line 1459 │ new-instance v3, Ljava/lang/StringBuilder; │ │ invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ const/16 v4, 0x24 │ │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ - .line 1477 │ + .line 1460 │ .local v1, "result":Ljava/lang/StringBuilder; │ const/4 v0, 0x0 │ │ .local v0, "i":I │ iget v2, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ .local v2, "size":I │ :goto_0 │ if-ge v0, v2, :cond_1 │ │ - .line 1478 │ + .line 1461 │ iget-object v3, p0, Lcom/google/gson/stream/JsonReader;->stack:[I │ │ aget v3, v3, v0 │ │ packed-switch v3, :pswitch_data_0 │ │ - .line 1477 │ + .line 1460 │ :cond_0 │ :goto_1 │ add-int/lit8 v0, v0, 0x1 │ │ goto :goto_0 │ │ - .line 1481 │ + .line 1464 │ :pswitch_0 │ const/16 v3, 0x5b │ │ invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ move-result-object v3 │ │ @@ -4007,45 +3802,45 @@ │ │ const/16 v4, 0x5d │ │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ goto :goto_1 │ │ - .line 1487 │ + .line 1470 │ :pswitch_1 │ const/16 v3, 0x2e │ │ invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 1488 │ + .line 1471 │ iget-object v3, p0, Lcom/google/gson/stream/JsonReader;->pathNames:[Ljava/lang/String; │ │ aget-object v3, v3, v0 │ │ if-eqz v3, :cond_0 │ │ - .line 1489 │ + .line 1472 │ iget-object v3, p0, Lcom/google/gson/stream/JsonReader;->pathNames:[Ljava/lang/String; │ │ aget-object v3, v3, v0 │ │ invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ goto :goto_1 │ │ - .line 1499 │ + .line 1482 │ :cond_1 │ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v3 │ │ return-object v3 │ │ - .line 1478 │ + .line 1461 │ :pswitch_data_0 │ .packed-switch 0x1 │ :pswitch_0 │ :pswitch_0 │ :pswitch_1 │ :pswitch_1 │ :pswitch_1 │ @@ -4057,27 +3852,27 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 416 │ + .line 412 │ iget v0, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 417 │ + .line 413 │ .local v0, "p":I │ if-nez v0, :cond_0 │ │ - .line 418 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ + .line 414 │ + invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ │ move-result v0 │ │ - .line 420 │ + .line 416 │ :cond_0 │ const/4 v1, 0x2 │ │ if-eq v0, v1, :cond_1 │ │ const/4 v1, 0x4 │ │ @@ -4111,80 +3906,80 @@ │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ const/4 v1, 0x0 │ │ - .line 853 │ + .line 840 │ iget v0, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 854 │ + .line 841 │ .local v0, "p":I │ if-nez v0, :cond_0 │ │ - .line 855 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ + .line 842 │ + invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ │ move-result v0 │ │ - .line 857 │ + .line 844 │ :cond_0 │ const/4 v2, 0x5 │ │ if-ne v0, v2, :cond_1 │ │ - .line 858 │ + .line 845 │ iput v1, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 859 │ + .line 846 │ iget-object v1, p0, Lcom/google/gson/stream/JsonReader;->pathIndices:[I │ │ iget v2, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ add-int/lit8 v2, v2, -0x1 │ │ aget v3, v1, v2 │ │ add-int/lit8 v3, v3, 0x1 │ │ aput v3, v1, v2 │ │ - .line 860 │ + .line 847 │ const/4 v1, 0x1 │ │ - .line 864 │ + .line 851 │ :goto_0 │ return v1 │ │ - .line 861 │ + .line 848 │ :cond_1 │ const/4 v2, 0x6 │ │ if-ne v0, v2, :cond_2 │ │ - .line 862 │ + .line 849 │ iput v1, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 863 │ + .line 850 │ iget-object v2, p0, Lcom/google/gson/stream/JsonReader;->pathIndices:[I │ │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ add-int/lit8 v3, v3, -0x1 │ │ aget v4, v2, v3 │ │ add-int/lit8 v4, v4, 0x1 │ │ aput v4, v2, v3 │ │ goto :goto_0 │ │ - .line 866 │ + .line 853 │ :cond_2 │ new-instance v1, Ljava/lang/IllegalStateException; │ │ new-instance v2, Ljava/lang/StringBuilder; │ │ invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ │ @@ -4198,49 +3993,15 @@ │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ - const-string v3, " at line " │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getLineNumber()I │ - │ - move-result v3 │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - const-string v3, " column " │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getColumnNumber()I │ - │ - move-result v3 │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - const-string v3, " path " │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->getPath()Ljava/lang/String; │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->locationString()Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ @@ -4264,98 +4025,98 @@ │ .prologue │ const/16 v8, 0xb │ │ const/16 v4, 0x8 │ │ const/4 v7, 0x0 │ │ - .line 901 │ + .line 886 │ iget v0, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 902 │ + .line 887 │ .local v0, "p":I │ if-nez v0, :cond_0 │ │ - .line 903 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ + .line 888 │ + invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ │ move-result v0 │ │ - .line 906 │ + .line 891 │ :cond_0 │ const/16 v1, 0xf │ │ if-ne v0, v1, :cond_1 │ │ - .line 907 │ + .line 892 │ iput v7, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 908 │ + .line 893 │ iget-object v1, p0, Lcom/google/gson/stream/JsonReader;->pathIndices:[I │ │ iget v4, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ add-int/lit8 v4, v4, -0x1 │ │ aget v5, v1, v4 │ │ add-int/lit8 v5, v5, 0x1 │ │ aput v5, v1, v4 │ │ - .line 909 │ + .line 894 │ iget-wide v4, p0, Lcom/google/gson/stream/JsonReader;->peekedLong:J │ │ long-to-double v2, v4 │ │ - .line 933 │ + .line 917 │ :goto_0 │ return-wide v2 │ │ - .line 912 │ + .line 897 │ :cond_1 │ const/16 v1, 0x10 │ │ if-ne v0, v1, :cond_4 │ │ - .line 913 │ + .line 898 │ new-instance v1, Ljava/lang/String; │ │ iget-object v4, p0, Lcom/google/gson/stream/JsonReader;->buffer:[C │ │ iget v5, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ iget v6, p0, Lcom/google/gson/stream/JsonReader;->peekedNumberLength:I │ │ invoke-direct {v1, v4, v5, v6}, Ljava/lang/String;->([CII)V │ │ iput-object v1, p0, Lcom/google/gson/stream/JsonReader;->peekedString:Ljava/lang/String; │ │ - .line 914 │ + .line 899 │ iget v1, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ iget v4, p0, Lcom/google/gson/stream/JsonReader;->peekedNumberLength:I │ │ add-int/2addr v1, v4 │ │ iput v1, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 924 │ + .line 908 │ :cond_2 │ :goto_1 │ iput v8, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 925 │ + .line 909 │ iget-object v1, p0, Lcom/google/gson/stream/JsonReader;->peekedString:Ljava/lang/String; │ │ invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D │ │ move-result-wide v2 │ │ - .line 926 │ + .line 910 │ .local v2, "result":D │ iget-boolean v1, p0, Lcom/google/gson/stream/JsonReader;->lenient:Z │ │ if-nez v1, :cond_9 │ │ invoke-static {v2, v3}, Ljava/lang/Double;->isNaN(D)Z │ │ @@ -4365,15 +4126,15 @@ │ │ invoke-static {v2, v3}, Ljava/lang/Double;->isInfinite(D)Z │ │ move-result v1 │ │ if-eqz v1, :cond_9 │ │ - .line 927 │ + .line 911 │ :cond_3 │ new-instance v1, Lcom/google/gson/stream/MalformedJsonException; │ │ new-instance v4, Ljava/lang/StringBuilder; │ │ invoke-direct {v4}, Ljava/lang/StringBuilder;->()V │ │ @@ -4383,49 +4144,16 @@ │ │ move-result-object v4 │ │ invoke-virtual {v4, v2, v3}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder; │ │ move-result-object v4 │ │ - const-string v5, " at line " │ - │ - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v4 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getLineNumber()I │ - │ - move-result v5 │ - │ - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v4 │ - │ - const-string v5, " column " │ - │ - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v4 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getColumnNumber()I │ - │ - move-result v5 │ - │ - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v4 │ - │ - const-string v5, " path " │ - │ - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v4 │ - │ - invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->getPath()Ljava/lang/String; │ + .line 912 │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->locationString()Ljava/lang/String; │ │ move-result-object v5 │ │ invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v4 │ │ @@ -4433,24 +4161,24 @@ │ │ move-result-object v4 │ │ invoke-direct {v1, v4}, Lcom/google/gson/stream/MalformedJsonException;->(Ljava/lang/String;)V │ │ throw v1 │ │ - .line 915 │ + .line 900 │ .end local v2 # "result":D │ :cond_4 │ if-eq v0, v4, :cond_5 │ │ const/16 v1, 0x9 │ │ if-ne v0, v1, :cond_7 │ │ - .line 916 │ + .line 901 │ :cond_5 │ if-ne v0, v4, :cond_6 │ │ const/16 v1, 0x27 │ │ :goto_2 │ invoke-direct {p0, v1}, Lcom/google/gson/stream/JsonReader;->nextQuotedValue(C)Ljava/lang/String; │ @@ -4462,34 +4190,34 @@ │ goto :goto_1 │ │ :cond_6 │ const/16 v1, 0x22 │ │ goto :goto_2 │ │ - .line 917 │ + .line 902 │ :cond_7 │ const/16 v1, 0xa │ │ if-ne v0, v1, :cond_8 │ │ - .line 918 │ + .line 903 │ invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->nextUnquotedValue()Ljava/lang/String; │ │ move-result-object v1 │ │ iput-object v1, p0, Lcom/google/gson/stream/JsonReader;->peekedString:Ljava/lang/String; │ │ goto :goto_1 │ │ - .line 919 │ + .line 904 │ :cond_8 │ if-eq v0, v8, :cond_2 │ │ - .line 920 │ + .line 905 │ new-instance v1, Ljava/lang/IllegalStateException; │ │ new-instance v4, Ljava/lang/StringBuilder; │ │ invoke-direct {v4}, Ljava/lang/StringBuilder;->()V │ │ const-string v5, "Expected a double but was " │ @@ -4502,49 +4230,15 @@ │ │ move-result-object v5 │ │ invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ move-result-object v4 │ │ - const-string v5, " at line " │ - │ - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v4 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getLineNumber()I │ - │ - move-result v5 │ - │ - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v4 │ - │ - const-string v5, " column " │ - │ - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v4 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getColumnNumber()I │ - │ - move-result v5 │ - │ - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v4 │ - │ - const-string v5, " path " │ - │ - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v4 │ - │ - invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->getPath()Ljava/lang/String; │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->locationString()Ljava/lang/String; │ │ move-result-object v5 │ │ invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v4 │ │ @@ -4552,25 +4246,25 @@ │ │ move-result-object v4 │ │ invoke-direct {v1, v4}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V │ │ throw v1 │ │ - .line 930 │ + .line 914 │ .restart local v2 # "result":D │ :cond_9 │ const/4 v1, 0x0 │ │ iput-object v1, p0, Lcom/google/gson/stream/JsonReader;->peekedString:Ljava/lang/String; │ │ - .line 931 │ + .line 915 │ iput v7, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 932 │ + .line 916 │ iget-object v1, p0, Lcom/google/gson/stream/JsonReader;->pathIndices:[I │ │ iget v4, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ add-int/lit8 v4, v4, -0x1 │ │ aget v5, v1, v4 │ @@ -4587,52 +4281,54 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ + const/16 v7, 0xa │ + │ const/16 v6, 0x8 │ │ const/4 v10, 0x0 │ │ - .line 1169 │ + .line 1155 │ iget v2, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 1170 │ + .line 1156 │ .local v2, "p":I │ if-nez v2, :cond_0 │ │ - .line 1171 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ + .line 1157 │ + invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ │ move-result v2 │ │ - .line 1175 │ + .line 1161 │ :cond_0 │ const/16 v5, 0xf │ │ if-ne v2, v5, :cond_2 │ │ - .line 1176 │ + .line 1162 │ iget-wide v6, p0, Lcom/google/gson/stream/JsonReader;->peekedLong:J │ │ long-to-int v3, v6 │ │ - .line 1177 │ + .line 1163 │ .local v3, "result":I │ iget-wide v6, p0, Lcom/google/gson/stream/JsonReader;->peekedLong:J │ │ int-to-long v8, v3 │ │ cmp-long v5, v6, v8 │ │ if-eqz v5, :cond_1 │ │ - .line 1178 │ + .line 1164 │ new-instance v5, Ljava/lang/NumberFormatException; │ │ new-instance v6, Ljava/lang/StringBuilder; │ │ invoke-direct {v6}, Ljava/lang/StringBuilder;->()V │ │ const-string v7, "Expected an int but was " │ @@ -4643,49 +4339,15 @@ │ │ iget-wide v8, p0, Lcom/google/gson/stream/JsonReader;->peekedLong:J │ │ invoke-virtual {v6, v8, v9}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; │ │ move-result-object v6 │ │ - const-string v7, " at line " │ - │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v6 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getLineNumber()I │ - │ - move-result v7 │ - │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v6 │ - │ - const-string v7, " column " │ - │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v6 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getColumnNumber()I │ - │ - move-result v7 │ - │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v6 │ - │ - const-string v7, " path " │ - │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v6 │ - │ - invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->getPath()Ljava/lang/String; │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->locationString()Ljava/lang/String; │ │ move-result-object v7 │ │ invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v6 │ │ @@ -4693,94 +4355,94 @@ │ │ move-result-object v6 │ │ invoke-direct {v5, v6}, Ljava/lang/NumberFormatException;->(Ljava/lang/String;)V │ │ throw v5 │ │ - .line 1181 │ + .line 1166 │ :cond_1 │ iput v10, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 1182 │ + .line 1167 │ iget-object v5, p0, Lcom/google/gson/stream/JsonReader;->pathIndices:[I │ │ iget v6, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ add-int/lit8 v6, v6, -0x1 │ │ aget v7, v5, v6 │ │ add-int/lit8 v7, v7, 0x1 │ │ aput v7, v5, v6 │ │ move v4, v3 │ │ - .line 1214 │ + .line 1201 │ .end local v3 # "result":I │ .local v4, "result":I │ :goto_0 │ return v4 │ │ - .line 1186 │ + .line 1171 │ .end local v4 # "result":I │ :cond_2 │ const/16 v5, 0x10 │ │ if-ne v2, v5, :cond_3 │ │ - .line 1187 │ + .line 1172 │ new-instance v5, Ljava/lang/String; │ │ iget-object v6, p0, Lcom/google/gson/stream/JsonReader;->buffer:[C │ │ iget v7, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ iget v8, p0, Lcom/google/gson/stream/JsonReader;->peekedNumberLength:I │ │ invoke-direct {v5, v6, v7, v8}, Ljava/lang/String;->([CII)V │ │ iput-object v5, p0, Lcom/google/gson/stream/JsonReader;->peekedString:Ljava/lang/String; │ │ - .line 1188 │ + .line 1173 │ iget v5, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ iget v6, p0, Lcom/google/gson/stream/JsonReader;->peekedNumberLength:I │ │ add-int/2addr v5, v6 │ │ iput v5, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 1204 │ + .line 1192 │ :goto_1 │ const/16 v5, 0xb │ │ iput v5, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 1205 │ + .line 1193 │ iget-object v5, p0, Lcom/google/gson/stream/JsonReader;->peekedString:Ljava/lang/String; │ │ invoke-static {v5}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D │ │ move-result-wide v0 │ │ - .line 1206 │ + .line 1194 │ .local v0, "asDouble":D │ double-to-int v3, v0 │ │ - .line 1207 │ + .line 1195 │ .restart local v3 # "result":I │ int-to-double v6, v3 │ │ cmpl-double v5, v6, v0 │ │ - if-eqz v5, :cond_7 │ + if-eqz v5, :cond_8 │ │ - .line 1208 │ + .line 1196 │ new-instance v5, Ljava/lang/NumberFormatException; │ │ new-instance v6, Ljava/lang/StringBuilder; │ │ invoke-direct {v6}, Ljava/lang/StringBuilder;->()V │ │ const-string v7, "Expected an int but was " │ @@ -4791,49 +4453,15 @@ │ │ iget-object v7, p0, Lcom/google/gson/stream/JsonReader;->peekedString:Ljava/lang/String; │ │ invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v6 │ │ - const-string v7, " at line " │ - │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v6 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getLineNumber()I │ - │ - move-result v7 │ - │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v6 │ - │ - const-string v7, " column " │ - │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v6 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getColumnNumber()I │ - │ - move-result v7 │ - │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v6 │ - │ - const-string v7, " path " │ - │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v6 │ - │ - invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->getPath()Ljava/lang/String; │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->locationString()Ljava/lang/String; │ │ move-result-object v7 │ │ invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v6 │ │ @@ -4841,52 +4469,53 @@ │ │ move-result-object v6 │ │ invoke-direct {v5, v6}, Ljava/lang/NumberFormatException;->(Ljava/lang/String;)V │ │ throw v5 │ │ - .line 1189 │ + .line 1174 │ .end local v0 # "asDouble":D │ .end local v3 # "result":I │ :cond_3 │ if-eq v2, v6, :cond_4 │ │ const/16 v5, 0x9 │ │ - if-ne v2, v5, :cond_6 │ + if-eq v2, v5, :cond_4 │ │ - .line 1190 │ - :cond_4 │ - if-ne v2, v6, :cond_5 │ + if-ne v2, v7, :cond_7 │ │ - const/16 v5, 0x27 │ + .line 1175 │ + :cond_4 │ + if-ne v2, v7, :cond_5 │ │ - :goto_2 │ - invoke-direct {p0, v5}, Lcom/google/gson/stream/JsonReader;->nextQuotedValue(C)Ljava/lang/String; │ + .line 1176 │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->nextUnquotedValue()Ljava/lang/String; │ │ move-result-object v5 │ │ iput-object v5, p0, Lcom/google/gson/stream/JsonReader;->peekedString:Ljava/lang/String; │ │ - .line 1192 │ + .line 1181 │ + :goto_2 │ :try_start_0 │ iget-object v5, p0, Lcom/google/gson/stream/JsonReader;->peekedString:Ljava/lang/String; │ │ invoke-static {v5}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I │ │ move-result v3 │ │ - .line 1193 │ + .line 1182 │ .restart local v3 # "result":I │ const/4 v5, 0x0 │ │ iput v5, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 1194 │ + .line 1183 │ iget-object v5, p0, Lcom/google/gson/stream/JsonReader;->pathIndices:[I │ │ iget v6, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ add-int/lit8 v6, v6, -0x1 │ │ aget v7, v5, v6 │ @@ -4895,28 +4524,42 @@ │ │ aput v7, v5, v6 │ :try_end_0 │ .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 │ │ move v4, v3 │ │ - .line 1195 │ + .line 1184 │ .end local v3 # "result":I │ .restart local v4 # "result":I │ - goto/16 :goto_0 │ + goto :goto_0 │ │ - .line 1190 │ + .line 1178 │ .end local v4 # "result":I │ :cond_5 │ - const/16 v5, 0x22 │ + if-ne v2, v6, :cond_6 │ + │ + const/16 v5, 0x27 │ + │ + :goto_3 │ + invoke-direct {p0, v5}, Lcom/google/gson/stream/JsonReader;->nextQuotedValue(C)Ljava/lang/String; │ + │ + move-result-object v5 │ + │ + iput-object v5, p0, Lcom/google/gson/stream/JsonReader;->peekedString:Ljava/lang/String; │ │ goto :goto_2 │ │ - .line 1200 │ :cond_6 │ + const/16 v5, 0x22 │ + │ + goto :goto_3 │ + │ + .line 1189 │ + :cond_7 │ new-instance v5, Ljava/lang/IllegalStateException; │ │ new-instance v6, Ljava/lang/StringBuilder; │ │ invoke-direct {v6}, Ljava/lang/StringBuilder;->()V │ │ const-string v7, "Expected an int but was " │ @@ -4929,49 +4572,15 @@ │ │ move-result-object v7 │ │ invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ move-result-object v6 │ │ - const-string v7, " at line " │ - │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v6 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getLineNumber()I │ - │ - move-result v7 │ - │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v6 │ - │ - const-string v7, " column " │ - │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v6 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getColumnNumber()I │ - │ - move-result v7 │ - │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v6 │ - │ - const-string v7, " path " │ - │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v6 │ - │ - invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->getPath()Ljava/lang/String; │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->locationString()Ljava/lang/String; │ │ move-result-object v7 │ │ invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v6 │ │ @@ -4979,46 +4588,46 @@ │ │ move-result-object v6 │ │ invoke-direct {v5, v6}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V │ │ throw v5 │ │ - .line 1211 │ + .line 1198 │ .restart local v0 # "asDouble":D │ .restart local v3 # "result":I │ - :cond_7 │ + :cond_8 │ const/4 v5, 0x0 │ │ iput-object v5, p0, Lcom/google/gson/stream/JsonReader;->peekedString:Ljava/lang/String; │ │ - .line 1212 │ + .line 1199 │ iput v10, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 1213 │ + .line 1200 │ iget-object v5, p0, Lcom/google/gson/stream/JsonReader;->pathIndices:[I │ │ iget v6, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ add-int/lit8 v6, v6, -0x1 │ │ aget v7, v5, v6 │ │ add-int/lit8 v7, v7, 0x1 │ │ aput v7, v5, v6 │ │ move v4, v3 │ │ - .line 1214 │ + .line 1201 │ .end local v3 # "result":I │ .restart local v4 # "result":I │ goto/16 :goto_0 │ │ - .line 1196 │ + .line 1185 │ .end local v0 # "asDouble":D │ .end local v4 # "result":I │ :catch_0 │ move-exception v5 │ │ goto/16 :goto_1 │ .end method │ @@ -5028,113 +4637,115 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ + const/16 v7, 0xa │ + │ const/16 v6, 0x8 │ │ const/4 v9, 0x0 │ │ - .line 947 │ + .line 931 │ iget v2, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 948 │ + .line 932 │ .local v2, "p":I │ if-nez v2, :cond_0 │ │ - .line 949 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ + .line 933 │ + invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ │ move-result v2 │ │ - .line 952 │ + .line 936 │ :cond_0 │ const/16 v3, 0xf │ │ if-ne v2, v3, :cond_1 │ │ - .line 953 │ + .line 937 │ iput v9, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 954 │ + .line 938 │ iget-object v3, p0, Lcom/google/gson/stream/JsonReader;->pathIndices:[I │ │ iget v6, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ add-int/lit8 v6, v6, -0x1 │ │ aget v7, v3, v6 │ │ add-int/lit8 v7, v7, 0x1 │ │ aput v7, v3, v6 │ │ - .line 955 │ + .line 939 │ iget-wide v4, p0, Lcom/google/gson/stream/JsonReader;->peekedLong:J │ │ - .line 986 │ + .line 972 │ :goto_0 │ return-wide v4 │ │ - .line 958 │ + .line 942 │ :cond_1 │ const/16 v3, 0x10 │ │ if-ne v2, v3, :cond_2 │ │ - .line 959 │ + .line 943 │ new-instance v3, Ljava/lang/String; │ │ iget-object v6, p0, Lcom/google/gson/stream/JsonReader;->buffer:[C │ │ iget v7, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ iget v8, p0, Lcom/google/gson/stream/JsonReader;->peekedNumberLength:I │ │ invoke-direct {v3, v6, v7, v8}, Ljava/lang/String;->([CII)V │ │ iput-object v3, p0, Lcom/google/gson/stream/JsonReader;->peekedString:Ljava/lang/String; │ │ - .line 960 │ + .line 944 │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ iget v6, p0, Lcom/google/gson/stream/JsonReader;->peekedNumberLength:I │ │ add-int/2addr v3, v6 │ │ iput v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ - .line 976 │ + .line 963 │ :goto_1 │ const/16 v3, 0xb │ │ iput v3, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 977 │ + .line 964 │ iget-object v3, p0, Lcom/google/gson/stream/JsonReader;->peekedString:Ljava/lang/String; │ │ invoke-static {v3}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D │ │ move-result-wide v0 │ │ - .line 978 │ + .line 965 │ .local v0, "asDouble":D │ double-to-long v4, v0 │ │ - .line 979 │ + .line 966 │ .local v4, "result":J │ long-to-double v6, v4 │ │ cmpl-double v3, v6, v0 │ │ - if-eqz v3, :cond_6 │ + if-eqz v3, :cond_7 │ │ - .line 980 │ + .line 967 │ new-instance v3, Ljava/lang/NumberFormatException; │ │ new-instance v6, Ljava/lang/StringBuilder; │ │ invoke-direct {v6}, Ljava/lang/StringBuilder;->()V │ │ const-string v7, "Expected a long but was " │ @@ -5145,49 +4756,15 @@ │ │ iget-object v7, p0, Lcom/google/gson/stream/JsonReader;->peekedString:Ljava/lang/String; │ │ invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v6 │ │ - const-string v7, " at line " │ - │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v6 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getLineNumber()I │ - │ - move-result v7 │ - │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v6 │ - │ - const-string v7, " column " │ - │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v6 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getColumnNumber()I │ - │ - move-result v7 │ - │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v6 │ - │ - const-string v7, " path " │ - │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v6 │ - │ - invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->getPath()Ljava/lang/String; │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->locationString()Ljava/lang/String; │ │ move-result-object v7 │ │ invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v6 │ │ @@ -5195,83 +4772,98 @@ │ │ move-result-object v6 │ │ invoke-direct {v3, v6}, Ljava/lang/NumberFormatException;->(Ljava/lang/String;)V │ │ throw v3 │ │ - .line 961 │ + .line 945 │ .end local v0 # "asDouble":D │ .end local v4 # "result":J │ :cond_2 │ if-eq v2, v6, :cond_3 │ │ const/16 v3, 0x9 │ │ - if-ne v2, v3, :cond_5 │ + if-eq v2, v3, :cond_3 │ │ - .line 962 │ - :cond_3 │ - if-ne v2, v6, :cond_4 │ + if-ne v2, v7, :cond_6 │ │ - const/16 v3, 0x27 │ + .line 946 │ + :cond_3 │ + if-ne v2, v7, :cond_4 │ │ - :goto_2 │ - invoke-direct {p0, v3}, Lcom/google/gson/stream/JsonReader;->nextQuotedValue(C)Ljava/lang/String; │ + .line 947 │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->nextUnquotedValue()Ljava/lang/String; │ │ move-result-object v3 │ │ iput-object v3, p0, Lcom/google/gson/stream/JsonReader;->peekedString:Ljava/lang/String; │ │ - .line 964 │ + .line 952 │ + :goto_2 │ :try_start_0 │ iget-object v3, p0, Lcom/google/gson/stream/JsonReader;->peekedString:Ljava/lang/String; │ │ invoke-static {v3}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J │ │ move-result-wide v4 │ │ - .line 965 │ + .line 953 │ .restart local v4 # "result":J │ const/4 v3, 0x0 │ │ iput v3, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 966 │ + .line 954 │ iget-object v3, p0, Lcom/google/gson/stream/JsonReader;->pathIndices:[I │ │ iget v6, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ add-int/lit8 v6, v6, -0x1 │ │ aget v7, v3, v6 │ │ add-int/lit8 v7, v7, 0x1 │ │ aput v7, v3, v6 │ :try_end_0 │ .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - goto/16 :goto_0 │ + goto :goto_0 │ │ - .line 968 │ + .line 956 │ .end local v4 # "result":J │ :catch_0 │ move-exception v3 │ │ goto :goto_1 │ │ - .line 962 │ + .line 949 │ :cond_4 │ - const/16 v3, 0x22 │ + if-ne v2, v6, :cond_5 │ + │ + const/16 v3, 0x27 │ + │ + :goto_3 │ + invoke-direct {p0, v3}, Lcom/google/gson/stream/JsonReader;->nextQuotedValue(C)Ljava/lang/String; │ + │ + move-result-object v3 │ + │ + iput-object v3, p0, Lcom/google/gson/stream/JsonReader;->peekedString:Ljava/lang/String; │ │ goto :goto_2 │ │ - .line 972 │ :cond_5 │ + const/16 v3, 0x22 │ + │ + goto :goto_3 │ + │ + .line 960 │ + :cond_6 │ new-instance v3, Ljava/lang/IllegalStateException; │ │ new-instance v6, Ljava/lang/StringBuilder; │ │ invoke-direct {v6}, Ljava/lang/StringBuilder;->()V │ │ const-string v7, "Expected a long but was " │ @@ -5284,49 +4876,15 @@ │ │ move-result-object v7 │ │ invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ move-result-object v6 │ │ - const-string v7, " at line " │ - │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v6 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getLineNumber()I │ - │ - move-result v7 │ - │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v6 │ - │ - const-string v7, " column " │ - │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v6 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getColumnNumber()I │ - │ - move-result v7 │ - │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v6 │ - │ - const-string v7, " path " │ - │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v6 │ - │ - invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->getPath()Ljava/lang/String; │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->locationString()Ljava/lang/String; │ │ move-result-object v7 │ │ invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v6 │ │ @@ -5334,26 +4892,26 @@ │ │ move-result-object v6 │ │ invoke-direct {v3, v6}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V │ │ throw v3 │ │ - .line 983 │ + .line 969 │ .restart local v0 # "asDouble":D │ .restart local v4 # "result":J │ - :cond_6 │ + :cond_7 │ const/4 v3, 0x0 │ │ iput-object v3, p0, Lcom/google/gson/stream/JsonReader;->peekedString:Ljava/lang/String; │ │ - .line 984 │ + .line 970 │ iput v9, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 985 │ + .line 971 │ iget-object v3, p0, Lcom/google/gson/stream/JsonReader;->pathIndices:[I │ │ iget v6, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ add-int/lit8 v6, v6, -0x1 │ │ aget v7, v3, v6 │ @@ -5370,91 +4928,91 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 788 │ + .line 777 │ iget v0, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 789 │ + .line 778 │ .local v0, "p":I │ if-nez v0, :cond_0 │ │ - .line 790 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ + .line 779 │ + invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ │ move-result v0 │ │ - .line 793 │ + .line 782 │ :cond_0 │ const/16 v2, 0xe │ │ if-ne v0, v2, :cond_1 │ │ - .line 794 │ + .line 783 │ invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->nextUnquotedValue()Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 803 │ + .line 791 │ .local v1, "result":Ljava/lang/String; │ :goto_0 │ const/4 v2, 0x0 │ │ iput v2, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 804 │ + .line 792 │ iget-object v2, p0, Lcom/google/gson/stream/JsonReader;->pathNames:[Ljava/lang/String; │ │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ add-int/lit8 v3, v3, -0x1 │ │ aput-object v1, v2, v3 │ │ - .line 805 │ + .line 793 │ return-object v1 │ │ - .line 795 │ + .line 784 │ .end local v1 # "result":Ljava/lang/String; │ :cond_1 │ const/16 v2, 0xc │ │ if-ne v0, v2, :cond_2 │ │ - .line 796 │ + .line 785 │ const/16 v2, 0x27 │ │ invoke-direct {p0, v2}, Lcom/google/gson/stream/JsonReader;->nextQuotedValue(C)Ljava/lang/String; │ │ move-result-object v1 │ │ .restart local v1 # "result":Ljava/lang/String; │ goto :goto_0 │ │ - .line 797 │ + .line 786 │ .end local v1 # "result":Ljava/lang/String; │ :cond_2 │ const/16 v2, 0xd │ │ if-ne v0, v2, :cond_3 │ │ - .line 798 │ + .line 787 │ const/16 v2, 0x22 │ │ invoke-direct {p0, v2}, Lcom/google/gson/stream/JsonReader;->nextQuotedValue(C)Ljava/lang/String; │ │ move-result-object v1 │ │ .restart local v1 # "result":Ljava/lang/String; │ goto :goto_0 │ │ - .line 800 │ + .line 789 │ .end local v1 # "result":Ljava/lang/String; │ :cond_3 │ new-instance v2, Ljava/lang/IllegalStateException; │ │ new-instance v3, Ljava/lang/StringBuilder; │ │ invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ @@ -5469,49 +5027,15 @@ │ │ move-result-object v4 │ │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ move-result-object v3 │ │ - const-string v4, " at line " │ - │ - invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v3 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getLineNumber()I │ - │ - move-result v4 │ - │ - invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v3 │ - │ - const-string v4, " column " │ - │ - invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v3 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getColumnNumber()I │ - │ - move-result v4 │ - │ - invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v3 │ - │ - const-string v4, " path " │ - │ - invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v3 │ - │ - invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->getPath()Ljava/lang/String; │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->locationString()Ljava/lang/String; │ │ move-result-object v4 │ │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v3 │ │ @@ -5529,54 +5053,54 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 878 │ + .line 864 │ iget v0, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 879 │ + .line 865 │ .local v0, "p":I │ if-nez v0, :cond_0 │ │ - .line 880 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ + .line 866 │ + invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ │ move-result v0 │ │ - .line 882 │ + .line 868 │ :cond_0 │ const/4 v1, 0x7 │ │ if-ne v0, v1, :cond_1 │ │ - .line 883 │ + .line 869 │ const/4 v1, 0x0 │ │ iput v1, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 884 │ + .line 870 │ iget-object v1, p0, Lcom/google/gson/stream/JsonReader;->pathIndices:[I │ │ iget v2, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ add-int/lit8 v2, v2, -0x1 │ │ aget v3, v1, v2 │ │ add-int/lit8 v3, v3, 0x1 │ │ aput v3, v1, v2 │ │ - .line 889 │ + .line 874 │ return-void │ │ - .line 886 │ + .line 872 │ :cond_1 │ new-instance v1, Ljava/lang/IllegalStateException; │ │ new-instance v2, Ljava/lang/StringBuilder; │ │ invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ │ @@ -5590,49 +5114,15 @@ │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ - const-string v3, " at line " │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getLineNumber()I │ - │ - move-result v3 │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - const-string v3, " column " │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getColumnNumber()I │ - │ - move-result v3 │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - const-string v3, " path " │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->getPath()Ljava/lang/String; │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->locationString()Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ @@ -5650,160 +5140,160 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 817 │ + .line 805 │ iget v0, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 818 │ + .line 806 │ .local v0, "p":I │ if-nez v0, :cond_0 │ │ - .line 819 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ + .line 807 │ + invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ │ move-result v0 │ │ - .line 822 │ + .line 810 │ :cond_0 │ const/16 v2, 0xa │ │ if-ne v0, v2, :cond_1 │ │ - .line 823 │ + .line 811 │ invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->nextUnquotedValue()Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 840 │ + .line 827 │ .local v1, "result":Ljava/lang/String; │ :goto_0 │ const/4 v2, 0x0 │ │ iput v2, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 841 │ + .line 828 │ iget-object v2, p0, Lcom/google/gson/stream/JsonReader;->pathIndices:[I │ │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ add-int/lit8 v3, v3, -0x1 │ │ aget v4, v2, v3 │ │ add-int/lit8 v4, v4, 0x1 │ │ aput v4, v2, v3 │ │ - .line 842 │ + .line 829 │ return-object v1 │ │ - .line 824 │ + .line 812 │ .end local v1 # "result":Ljava/lang/String; │ :cond_1 │ const/16 v2, 0x8 │ │ if-ne v0, v2, :cond_2 │ │ - .line 825 │ + .line 813 │ const/16 v2, 0x27 │ │ invoke-direct {p0, v2}, Lcom/google/gson/stream/JsonReader;->nextQuotedValue(C)Ljava/lang/String; │ │ move-result-object v1 │ │ .restart local v1 # "result":Ljava/lang/String; │ goto :goto_0 │ │ - .line 826 │ + .line 814 │ .end local v1 # "result":Ljava/lang/String; │ :cond_2 │ const/16 v2, 0x9 │ │ if-ne v0, v2, :cond_3 │ │ - .line 827 │ + .line 815 │ const/16 v2, 0x22 │ │ invoke-direct {p0, v2}, Lcom/google/gson/stream/JsonReader;->nextQuotedValue(C)Ljava/lang/String; │ │ move-result-object v1 │ │ .restart local v1 # "result":Ljava/lang/String; │ goto :goto_0 │ │ - .line 828 │ + .line 816 │ .end local v1 # "result":Ljava/lang/String; │ :cond_3 │ const/16 v2, 0xb │ │ if-ne v0, v2, :cond_4 │ │ - .line 829 │ + .line 817 │ iget-object v1, p0, Lcom/google/gson/stream/JsonReader;->peekedString:Ljava/lang/String; │ │ - .line 830 │ + .line 818 │ .restart local v1 # "result":Ljava/lang/String; │ const/4 v2, 0x0 │ │ iput-object v2, p0, Lcom/google/gson/stream/JsonReader;->peekedString:Ljava/lang/String; │ │ goto :goto_0 │ │ - .line 831 │ + .line 819 │ .end local v1 # "result":Ljava/lang/String; │ :cond_4 │ const/16 v2, 0xf │ │ if-ne v0, v2, :cond_5 │ │ - .line 832 │ + .line 820 │ iget-wide v2, p0, Lcom/google/gson/stream/JsonReader;->peekedLong:J │ │ invoke-static {v2, v3}, Ljava/lang/Long;->toString(J)Ljava/lang/String; │ │ move-result-object v1 │ │ .restart local v1 # "result":Ljava/lang/String; │ goto :goto_0 │ │ - .line 833 │ + .line 821 │ .end local v1 # "result":Ljava/lang/String; │ :cond_5 │ const/16 v2, 0x10 │ │ if-ne v0, v2, :cond_6 │ │ - .line 834 │ + .line 822 │ new-instance v1, Ljava/lang/String; │ │ iget-object v2, p0, Lcom/google/gson/stream/JsonReader;->buffer:[C │ │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ iget v4, p0, Lcom/google/gson/stream/JsonReader;->peekedNumberLength:I │ │ invoke-direct {v1, v2, v3, v4}, Ljava/lang/String;->([CII)V │ │ - .line 835 │ + .line 823 │ .restart local v1 # "result":Ljava/lang/String; │ iget v2, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->peekedNumberLength:I │ │ add-int/2addr v2, v3 │ │ iput v2, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ goto :goto_0 │ │ - .line 837 │ + .line 825 │ .end local v1 # "result":Ljava/lang/String; │ :cond_6 │ new-instance v2, Ljava/lang/IllegalStateException; │ │ new-instance v3, Ljava/lang/StringBuilder; │ │ invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ @@ -5818,49 +5308,15 @@ │ │ move-result-object v4 │ │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ move-result-object v3 │ │ - const-string v4, " at line " │ - │ - invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v3 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getLineNumber()I │ - │ - move-result v4 │ - │ - invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v3 │ - │ - const-string v4, " column " │ - │ - invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v3 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getColumnNumber()I │ - │ - move-result v4 │ - │ - invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v3 │ - │ - const-string v4, " path " │ - │ - invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v3 │ - │ - invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->getPath()Ljava/lang/String; │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->locationString()Ljava/lang/String; │ │ move-result-object v4 │ │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v3 │ │ @@ -5878,100 +5334,100 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 427 │ + .line 423 │ iget v0, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 428 │ + .line 424 │ .local v0, "p":I │ if-nez v0, :cond_0 │ │ - .line 429 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ + .line 425 │ + invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ │ move-result v0 │ │ - .line 432 │ + .line 428 │ :cond_0 │ packed-switch v0, :pswitch_data_0 │ │ - .line 461 │ + .line 457 │ new-instance v1, Ljava/lang/AssertionError; │ │ invoke-direct {v1}, Ljava/lang/AssertionError;->()V │ │ throw v1 │ │ - .line 434 │ + .line 430 │ :pswitch_0 │ sget-object v1, Lcom/google/gson/stream/JsonToken;->BEGIN_OBJECT:Lcom/google/gson/stream/JsonToken; │ │ - .line 459 │ + .line 455 │ :goto_0 │ return-object v1 │ │ - .line 436 │ + .line 432 │ :pswitch_1 │ sget-object v1, Lcom/google/gson/stream/JsonToken;->END_OBJECT:Lcom/google/gson/stream/JsonToken; │ │ goto :goto_0 │ │ - .line 438 │ + .line 434 │ :pswitch_2 │ sget-object v1, Lcom/google/gson/stream/JsonToken;->BEGIN_ARRAY:Lcom/google/gson/stream/JsonToken; │ │ goto :goto_0 │ │ - .line 440 │ + .line 436 │ :pswitch_3 │ sget-object v1, Lcom/google/gson/stream/JsonToken;->END_ARRAY:Lcom/google/gson/stream/JsonToken; │ │ goto :goto_0 │ │ - .line 444 │ + .line 440 │ :pswitch_4 │ sget-object v1, Lcom/google/gson/stream/JsonToken;->NAME:Lcom/google/gson/stream/JsonToken; │ │ goto :goto_0 │ │ - .line 447 │ + .line 443 │ :pswitch_5 │ sget-object v1, Lcom/google/gson/stream/JsonToken;->BOOLEAN:Lcom/google/gson/stream/JsonToken; │ │ goto :goto_0 │ │ - .line 449 │ + .line 445 │ :pswitch_6 │ sget-object v1, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken; │ │ goto :goto_0 │ │ - .line 454 │ + .line 450 │ :pswitch_7 │ sget-object v1, Lcom/google/gson/stream/JsonToken;->STRING:Lcom/google/gson/stream/JsonToken; │ │ goto :goto_0 │ │ - .line 457 │ + .line 453 │ :pswitch_8 │ sget-object v1, Lcom/google/gson/stream/JsonToken;->NUMBER:Lcom/google/gson/stream/JsonToken; │ │ goto :goto_0 │ │ - .line 459 │ + .line 455 │ :pswitch_9 │ sget-object v1, Lcom/google/gson/stream/JsonToken;->END_DOCUMENT:Lcom/google/gson/stream/JsonToken; │ │ goto :goto_0 │ │ - .line 432 │ + .line 428 │ nop │ │ :pswitch_data_0 │ .packed-switch 0x1 │ :pswitch_0 │ :pswitch_1 │ :pswitch_2 │ @@ -6013,185 +5469,185 @@ │ .end annotation │ │ .prologue │ const/4 v5, 0x3 │ │ const/4 v4, 0x1 │ │ - .line 1233 │ + .line 1220 │ const/4 v0, 0x0 │ │ - .line 1235 │ + .line 1222 │ .local v0, "count":I │ :cond_0 │ iget v1, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 1236 │ + .line 1223 │ .local v1, "p":I │ if-nez v1, :cond_1 │ │ - .line 1237 │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ + .line 1224 │ + invoke-virtual {p0}, Lcom/google/gson/stream/JsonReader;->doPeek()I │ │ move-result v1 │ │ - .line 1240 │ + .line 1227 │ :cond_1 │ if-ne v1, v5, :cond_3 │ │ - .line 1241 │ + .line 1228 │ invoke-direct {p0, v4}, Lcom/google/gson/stream/JsonReader;->push(I)V │ │ - .line 1242 │ + .line 1229 │ add-int/lit8 v0, v0, 0x1 │ │ - .line 1261 │ + .line 1248 │ :cond_2 │ :goto_0 │ const/4 v2, 0x0 │ │ iput v2, p0, Lcom/google/gson/stream/JsonReader;->peeked:I │ │ - .line 1262 │ + .line 1249 │ if-nez v0, :cond_0 │ │ - .line 1264 │ + .line 1251 │ iget-object v2, p0, Lcom/google/gson/stream/JsonReader;->pathIndices:[I │ │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ add-int/lit8 v3, v3, -0x1 │ │ aget v4, v2, v3 │ │ add-int/lit8 v4, v4, 0x1 │ │ aput v4, v2, v3 │ │ - .line 1265 │ + .line 1252 │ iget-object v2, p0, Lcom/google/gson/stream/JsonReader;->pathNames:[Ljava/lang/String; │ │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ add-int/lit8 v3, v3, -0x1 │ │ const-string v4, "null" │ │ aput-object v4, v2, v3 │ │ - .line 1266 │ + .line 1253 │ return-void │ │ - .line 1243 │ + .line 1230 │ :cond_3 │ if-ne v1, v4, :cond_4 │ │ - .line 1244 │ + .line 1231 │ invoke-direct {p0, v5}, Lcom/google/gson/stream/JsonReader;->push(I)V │ │ - .line 1245 │ + .line 1232 │ add-int/lit8 v0, v0, 0x1 │ │ goto :goto_0 │ │ - .line 1246 │ + .line 1233 │ :cond_4 │ const/4 v2, 0x4 │ │ if-ne v1, v2, :cond_5 │ │ - .line 1247 │ + .line 1234 │ iget v2, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ add-int/lit8 v2, v2, -0x1 │ │ iput v2, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ - .line 1248 │ + .line 1235 │ add-int/lit8 v0, v0, -0x1 │ │ goto :goto_0 │ │ - .line 1249 │ + .line 1236 │ :cond_5 │ const/4 v2, 0x2 │ │ if-ne v1, v2, :cond_6 │ │ - .line 1250 │ + .line 1237 │ iget v2, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ add-int/lit8 v2, v2, -0x1 │ │ iput v2, p0, Lcom/google/gson/stream/JsonReader;->stackSize:I │ │ - .line 1251 │ + .line 1238 │ add-int/lit8 v0, v0, -0x1 │ │ goto :goto_0 │ │ - .line 1252 │ + .line 1239 │ :cond_6 │ const/16 v2, 0xe │ │ if-eq v1, v2, :cond_7 │ │ const/16 v2, 0xa │ │ if-ne v1, v2, :cond_8 │ │ - .line 1253 │ + .line 1240 │ :cond_7 │ invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->skipUnquotedValue()V │ │ goto :goto_0 │ │ - .line 1254 │ + .line 1241 │ :cond_8 │ const/16 v2, 0x8 │ │ if-eq v1, v2, :cond_9 │ │ const/16 v2, 0xc │ │ if-ne v1, v2, :cond_a │ │ - .line 1255 │ + .line 1242 │ :cond_9 │ const/16 v2, 0x27 │ │ invoke-direct {p0, v2}, Lcom/google/gson/stream/JsonReader;->skipQuotedValue(C)V │ │ goto :goto_0 │ │ - .line 1256 │ + .line 1243 │ :cond_a │ const/16 v2, 0x9 │ │ if-eq v1, v2, :cond_b │ │ const/16 v2, 0xd │ │ if-ne v1, v2, :cond_c │ │ - .line 1257 │ + .line 1244 │ :cond_b │ const/16 v2, 0x22 │ │ invoke-direct {p0, v2}, Lcom/google/gson/stream/JsonReader;->skipQuotedValue(C)V │ │ goto :goto_0 │ │ - .line 1258 │ + .line 1245 │ :cond_c │ const/16 v2, 0x10 │ │ if-ne v1, v2, :cond_2 │ │ - .line 1259 │ + .line 1246 │ iget v2, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ │ iget v3, p0, Lcom/google/gson/stream/JsonReader;->peekedNumberLength:I │ │ add-int/2addr v2, v3 │ │ iput v2, p0, Lcom/google/gson/stream/JsonReader;->pos:I │ @@ -6199,15 +5655,15 @@ │ goto :goto_0 │ .end method │ │ .method public toString()Ljava/lang/String; │ .locals 2 │ │ .prologue │ - .line 1467 │ + .line 1445 │ new-instance v0, Ljava/lang/StringBuilder; │ │ invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ │ invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ move-result-object v1 │ @@ -6216,41 +5672,21 @@ │ │ move-result-object v1 │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v0 │ │ - const-string v1, " at line " │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->locationString()Ljava/lang/String; │ │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v0 │ - │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getLineNumber()I │ - │ - move-result v1 │ - │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v0 │ - │ - const-string v1, " column " │ + move-result-object v1 │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v0 │ │ - invoke-direct {p0}, Lcom/google/gson/stream/JsonReader;->getColumnNumber()I │ - │ - move-result v1 │ - │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v0 │ - │ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ return-object v0 │ .end method ├── smali/com/google/gson/stream/JsonWriter.smali │ @@ -266,170 +266,152 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 580 │ + .line 612 │ invoke-direct {p0}, Lcom/google/gson/stream/JsonWriter;->peek()I │ │ move-result v0 │ │ - .line 581 │ + .line 613 │ .local v0, "context":I │ const/4 v1, 0x5 │ │ if-ne v0, v1, :cond_1 │ │ - .line 582 │ + .line 614 │ iget-object v1, p0, Lcom/google/gson/stream/JsonWriter;->out:Ljava/io/Writer; │ │ const/16 v2, 0x2c │ │ invoke-virtual {v1, v2}, Ljava/io/Writer;->write(I)V │ │ - .line 586 │ + .line 618 │ :cond_0 │ invoke-direct {p0}, Lcom/google/gson/stream/JsonWriter;->newline()V │ │ - .line 587 │ + .line 619 │ const/4 v1, 0x4 │ │ invoke-direct {p0, v1}, Lcom/google/gson/stream/JsonWriter;->replaceTop(I)V │ │ - .line 588 │ + .line 620 │ return-void │ │ - .line 583 │ + .line 615 │ :cond_1 │ const/4 v1, 0x3 │ │ if-eq v0, v1, :cond_0 │ │ - .line 584 │ + .line 616 │ new-instance v1, Ljava/lang/IllegalStateException; │ │ const-string v2, "Nesting problem." │ │ invoke-direct {v1, v2}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V │ │ throw v1 │ .end method │ │ -.method private beforeValue(Z)V │ +.method private beforeValue()V │ .locals 2 │ - .param p1, "root" # Z │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 600 │ + .line 629 │ invoke-direct {p0}, Lcom/google/gson/stream/JsonWriter;->peek()I │ │ move-result v0 │ │ packed-switch v0, :pswitch_data_0 │ │ - .line 631 │ + .line 656 │ :pswitch_0 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ const-string v1, "Nesting problem." │ │ invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V │ │ throw v0 │ │ - .line 602 │ + .line 631 │ :pswitch_1 │ iget-boolean v0, p0, Lcom/google/gson/stream/JsonWriter;->lenient:Z │ │ if-nez v0, :cond_0 │ │ - .line 603 │ + .line 632 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ const-string v1, "JSON must have only one top-level value." │ │ invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V │ │ throw v0 │ │ - .line 608 │ + .line 637 │ :cond_0 │ :pswitch_2 │ - iget-boolean v0, p0, Lcom/google/gson/stream/JsonWriter;->lenient:Z │ - │ - if-nez v0, :cond_1 │ - │ - if-nez p1, :cond_1 │ - │ - .line 609 │ - new-instance v0, Ljava/lang/IllegalStateException; │ - │ - const-string v1, "JSON must start with an array or an object." │ - │ - invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V │ - │ - throw v0 │ - │ - .line 612 │ - :cond_1 │ const/4 v0, 0x7 │ │ invoke-direct {p0, v0}, Lcom/google/gson/stream/JsonWriter;->replaceTop(I)V │ │ - .line 633 │ + .line 658 │ :goto_0 │ return-void │ │ - .line 616 │ + .line 641 │ :pswitch_3 │ const/4 v0, 0x2 │ │ invoke-direct {p0, v0}, Lcom/google/gson/stream/JsonWriter;->replaceTop(I)V │ │ - .line 617 │ + .line 642 │ invoke-direct {p0}, Lcom/google/gson/stream/JsonWriter;->newline()V │ │ goto :goto_0 │ │ - .line 621 │ + .line 646 │ :pswitch_4 │ iget-object v0, p0, Lcom/google/gson/stream/JsonWriter;->out:Ljava/io/Writer; │ │ const/16 v1, 0x2c │ │ invoke-virtual {v0, v1}, Ljava/io/Writer;->append(C)Ljava/io/Writer; │ │ - .line 622 │ + .line 647 │ invoke-direct {p0}, Lcom/google/gson/stream/JsonWriter;->newline()V │ │ goto :goto_0 │ │ - .line 626 │ + .line 651 │ :pswitch_5 │ iget-object v0, p0, Lcom/google/gson/stream/JsonWriter;->out:Ljava/io/Writer; │ │ iget-object v1, p0, Lcom/google/gson/stream/JsonWriter;->separator:Ljava/lang/String; │ │ invoke-virtual {v0, v1}, Ljava/io/Writer;->append(Ljava/lang/CharSequence;)Ljava/io/Writer; │ │ - .line 627 │ + .line 652 │ const/4 v0, 0x5 │ │ invoke-direct {p0, v0}, Lcom/google/gson/stream/JsonWriter;->replaceTop(I)V │ │ goto :goto_0 │ │ - .line 600 │ + .line 629 │ nop │ │ :pswitch_data_0 │ .packed-switch 0x1 │ :pswitch_3 │ :pswitch_4 │ :pswitch_0 │ @@ -534,49 +516,49 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 565 │ + .line 597 │ iget-object v2, p0, Lcom/google/gson/stream/JsonWriter;->indent:Ljava/lang/String; │ │ if-nez v2, :cond_1 │ │ - .line 573 │ + .line 605 │ :cond_0 │ return-void │ │ - .line 569 │ + .line 601 │ :cond_1 │ iget-object v2, p0, Lcom/google/gson/stream/JsonWriter;->out:Ljava/io/Writer; │ │ const-string v3, "\n" │ │ invoke-virtual {v2, v3}, Ljava/io/Writer;->write(Ljava/lang/String;)V │ │ - .line 570 │ + .line 602 │ const/4 v0, 0x1 │ │ .local v0, "i":I │ iget v1, p0, Lcom/google/gson/stream/JsonWriter;->stackSize:I │ │ .local v1, "size":I │ :goto_0 │ if-ge v0, v1, :cond_0 │ │ - .line 571 │ + .line 603 │ iget-object v2, p0, Lcom/google/gson/stream/JsonWriter;->out:Ljava/io/Writer; │ │ iget-object v3, p0, Lcom/google/gson/stream/JsonWriter;->indent:Ljava/lang/String; │ │ invoke-virtual {v2, v3}, Ljava/io/Writer;->write(Ljava/lang/String;)V │ │ - .line 570 │ + .line 602 │ add-int/lit8 v0, v0, 0x1 │ │ goto :goto_0 │ .end method │ │ .method private open(ILjava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ .locals 1 │ @@ -586,17 +568,15 @@ │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ .line 325 │ - const/4 v0, 0x1 │ - │ - invoke-direct {p0, v0}, Lcom/google/gson/stream/JsonWriter;->beforeValue(Z)V │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonWriter;->beforeValue()V │ │ .line 326 │ invoke-direct {p0, p1}, Lcom/google/gson/stream/JsonWriter;->push(I)V │ │ .line 327 │ iget-object v0, p0, Lcom/google/gson/stream/JsonWriter;->out:Ljava/io/Writer; │ │ @@ -712,157 +692,157 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 533 │ + .line 565 │ iget-boolean v6, p0, Lcom/google/gson/stream/JsonWriter;->htmlSafe:Z │ │ if-eqz v6, :cond_1 │ │ sget-object v5, Lcom/google/gson/stream/JsonWriter;->HTML_SAFE_REPLACEMENT_CHARS:[Ljava/lang/String; │ │ - .line 534 │ + .line 566 │ .local v5, "replacements":[Ljava/lang/String; │ :goto_0 │ iget-object v6, p0, Lcom/google/gson/stream/JsonWriter;->out:Ljava/io/Writer; │ │ const-string v7, "\"" │ │ invoke-virtual {v6, v7}, Ljava/io/Writer;->write(Ljava/lang/String;)V │ │ - .line 535 │ + .line 567 │ const/4 v2, 0x0 │ │ - .line 536 │ + .line 568 │ .local v2, "last":I │ invoke-virtual {p1}, Ljava/lang/String;->length()I │ │ move-result v3 │ │ - .line 537 │ + .line 569 │ .local v3, "length":I │ const/4 v1, 0x0 │ │ .local v1, "i":I │ :goto_1 │ if-ge v1, v3, :cond_6 │ │ - .line 538 │ + .line 570 │ invoke-virtual {p1, v1}, Ljava/lang/String;->charAt(I)C │ │ move-result v0 │ │ - .line 540 │ + .line 572 │ .local v0, "c":C │ const/16 v6, 0x80 │ │ if-ge v0, v6, :cond_2 │ │ - .line 541 │ + .line 573 │ aget-object v4, v5, v0 │ │ - .line 542 │ + .line 574 │ .local v4, "replacement":Ljava/lang/String; │ if-nez v4, :cond_3 │ │ - .line 537 │ + .line 569 │ .end local v4 # "replacement":Ljava/lang/String; │ :cond_0 │ :goto_2 │ add-int/lit8 v1, v1, 0x1 │ │ goto :goto_1 │ │ - .line 533 │ + .line 565 │ .end local v0 # "c":C │ .end local v1 # "i":I │ .end local v2 # "last":I │ .end local v3 # "length":I │ .end local v5 # "replacements":[Ljava/lang/String; │ :cond_1 │ sget-object v5, Lcom/google/gson/stream/JsonWriter;->REPLACEMENT_CHARS:[Ljava/lang/String; │ │ goto :goto_0 │ │ - .line 545 │ + .line 577 │ .restart local v0 # "c":C │ .restart local v1 # "i":I │ .restart local v2 # "last":I │ .restart local v3 # "length":I │ .restart local v5 # "replacements":[Ljava/lang/String; │ :cond_2 │ const/16 v6, 0x2028 │ │ if-ne v0, v6, :cond_5 │ │ - .line 546 │ + .line 578 │ const-string v4, "\\u2028" │ │ - .line 552 │ + .line 584 │ .restart local v4 # "replacement":Ljava/lang/String; │ :cond_3 │ :goto_3 │ if-ge v2, v1, :cond_4 │ │ - .line 553 │ + .line 585 │ iget-object v6, p0, Lcom/google/gson/stream/JsonWriter;->out:Ljava/io/Writer; │ │ sub-int v7, v1, v2 │ │ invoke-virtual {v6, p1, v2, v7}, Ljava/io/Writer;->write(Ljava/lang/String;II)V │ │ - .line 555 │ + .line 587 │ :cond_4 │ iget-object v6, p0, Lcom/google/gson/stream/JsonWriter;->out:Ljava/io/Writer; │ │ invoke-virtual {v6, v4}, Ljava/io/Writer;->write(Ljava/lang/String;)V │ │ - .line 556 │ + .line 588 │ add-int/lit8 v2, v1, 0x1 │ │ goto :goto_2 │ │ - .line 547 │ + .line 579 │ .end local v4 # "replacement":Ljava/lang/String; │ :cond_5 │ const/16 v6, 0x2029 │ │ if-ne v0, v6, :cond_0 │ │ - .line 548 │ + .line 580 │ const-string v4, "\\u2029" │ │ .restart local v4 # "replacement":Ljava/lang/String; │ goto :goto_3 │ │ - .line 558 │ + .line 590 │ .end local v0 # "c":C │ .end local v4 # "replacement":Ljava/lang/String; │ :cond_6 │ if-ge v2, v3, :cond_7 │ │ - .line 559 │ + .line 591 │ iget-object v6, p0, Lcom/google/gson/stream/JsonWriter;->out:Ljava/io/Writer; │ │ sub-int v7, v3, v2 │ │ invoke-virtual {v6, p1, v2, v7}, Ljava/io/Writer;->write(Ljava/lang/String;II)V │ │ - .line 561 │ + .line 593 │ :cond_7 │ iget-object v6, p0, Lcom/google/gson/stream/JsonWriter;->out:Ljava/io/Writer; │ │ const-string v7, "\"" │ │ invoke-virtual {v6, v7}, Ljava/io/Writer;->write(Ljava/lang/String;)V │ │ - .line 562 │ + .line 594 │ return-void │ .end method │ │ .method private writeDeferredName()V │ .locals 1 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ @@ -951,23 +931,23 @@ │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ const/4 v2, 0x1 │ │ - .line 523 │ + .line 555 │ iget-object v1, p0, Lcom/google/gson/stream/JsonWriter;->out:Ljava/io/Writer; │ │ invoke-virtual {v1}, Ljava/io/Writer;->close()V │ │ - .line 525 │ + .line 557 │ iget v0, p0, Lcom/google/gson/stream/JsonWriter;->stackSize:I │ │ - .line 526 │ + .line 558 │ .local v0, "size":I │ if-gt v0, v2, :cond_0 │ │ if-ne v0, v2, :cond_1 │ │ iget-object v1, p0, Lcom/google/gson/stream/JsonWriter;->stack:[I │ │ @@ -975,31 +955,31 @@ │ │ aget v1, v1, v2 │ │ const/4 v2, 0x7 │ │ if-eq v1, v2, :cond_1 │ │ - .line 527 │ + .line 559 │ :cond_0 │ new-instance v1, Ljava/io/IOException; │ │ const-string v2, "Incomplete document" │ │ invoke-direct {v1, v2}, Ljava/io/IOException;->(Ljava/lang/String;)V │ │ throw v1 │ │ - .line 529 │ + .line 561 │ :cond_1 │ const/4 v1, 0x0 │ │ iput v1, p0, Lcom/google/gson/stream/JsonWriter;->stackSize:I │ │ - .line 530 │ + .line 562 │ return-void │ .end method │ │ .method public endArray()Lcom/google/gson/stream/JsonWriter; │ .locals 3 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ @@ -1050,35 +1030,35 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 511 │ + .line 543 │ iget v0, p0, Lcom/google/gson/stream/JsonWriter;->stackSize:I │ │ if-nez v0, :cond_0 │ │ - .line 512 │ + .line 544 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ const-string v1, "JsonWriter is closed." │ │ invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V │ │ throw v0 │ │ - .line 514 │ + .line 546 │ :cond_0 │ iget-object v0, p0, Lcom/google/gson/stream/JsonWriter;->out:Ljava/io/Writer; │ │ invoke-virtual {v0}, Ljava/io/Writer;->flush()V │ │ - .line 515 │ + .line 547 │ return-void │ .end method │ │ .method public final getSerializeNulls()Z │ .locals 1 │ │ .prologue │ @@ -1104,14 +1084,53 @@ │ .prologue │ .line 242 │ iget-boolean v0, p0, Lcom/google/gson/stream/JsonWriter;->lenient:Z │ │ return v0 │ .end method │ │ +.method public jsonValue(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ + .locals 1 │ + .param p1, "value" # Ljava/lang/String; │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/io/IOException; │ + } │ + .end annotation │ + │ + .prologue │ + .line 431 │ + if-nez p1, :cond_0 │ + │ + .line 432 │ + invoke-virtual {p0}, Lcom/google/gson/stream/JsonWriter;->nullValue()Lcom/google/gson/stream/JsonWriter; │ + │ + move-result-object p0 │ + │ + .line 437 │ + .end local p0 # "this":Lcom/google/gson/stream/JsonWriter; │ + :goto_0 │ + return-object p0 │ + │ + .line 434 │ + .restart local p0 # "this":Lcom/google/gson/stream/JsonWriter; │ + :cond_0 │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonWriter;->writeDeferredName()V │ + │ + .line 435 │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonWriter;->beforeValue()V │ + │ + .line 436 │ + iget-object v0, p0, Lcom/google/gson/stream/JsonWriter;->out:Ljava/io/Writer; │ + │ + invoke-virtual {v0, p1}, Ljava/io/Writer;->append(Ljava/lang/CharSequence;)Ljava/io/Writer; │ + │ + goto :goto_0 │ +.end method │ + │ .method public name(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ .locals 2 │ .param p1, "name" # Ljava/lang/String; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ @@ -1171,45 +1190,43 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 429 │ + .line 446 │ iget-object v0, p0, Lcom/google/gson/stream/JsonWriter;->deferredName:Ljava/lang/String; │ │ if-eqz v0, :cond_0 │ │ - .line 430 │ + .line 447 │ iget-boolean v0, p0, Lcom/google/gson/stream/JsonWriter;->serializeNulls:Z │ │ if-eqz v0, :cond_1 │ │ - .line 431 │ + .line 448 │ invoke-direct {p0}, Lcom/google/gson/stream/JsonWriter;->writeDeferredName()V │ │ - .line 437 │ + .line 454 │ :cond_0 │ - const/4 v0, 0x0 │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonWriter;->beforeValue()V │ │ - invoke-direct {p0, v0}, Lcom/google/gson/stream/JsonWriter;->beforeValue(Z)V │ - │ - .line 438 │ + .line 455 │ iget-object v0, p0, Lcom/google/gson/stream/JsonWriter;->out:Ljava/io/Writer; │ │ const-string v1, "null" │ │ invoke-virtual {v0, v1}, Ljava/io/Writer;->write(Ljava/lang/String;)V │ │ - .line 439 │ + .line 456 │ :goto_0 │ return-object p0 │ │ - .line 433 │ + .line 450 │ :cond_1 │ const/4 v0, 0x0 │ │ iput-object v0, p0, Lcom/google/gson/stream/JsonWriter;->deferredName:Ljava/lang/String; │ │ goto :goto_0 │ .end method │ @@ -1294,28 +1311,28 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 462 │ + .line 494 │ invoke-static {p1, p2}, Ljava/lang/Double;->isNaN(D)Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ invoke-static {p1, p2}, Ljava/lang/Double;->isInfinite(D)Z │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ - .line 463 │ + .line 495 │ :cond_0 │ new-instance v0, Ljava/lang/IllegalArgumentException; │ │ new-instance v1, Ljava/lang/StringBuilder; │ │ invoke-direct {v1}, Ljava/lang/StringBuilder;->()V │ │ @@ -1333,108 +1350,158 @@ │ │ move-result-object v1 │ │ invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ throw v0 │ │ - .line 465 │ + .line 497 │ :cond_1 │ invoke-direct {p0}, Lcom/google/gson/stream/JsonWriter;->writeDeferredName()V │ │ - .line 466 │ - const/4 v0, 0x0 │ - │ - invoke-direct {p0, v0}, Lcom/google/gson/stream/JsonWriter;->beforeValue(Z)V │ + .line 498 │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonWriter;->beforeValue()V │ │ - .line 467 │ + .line 499 │ iget-object v0, p0, Lcom/google/gson/stream/JsonWriter;->out:Ljava/io/Writer; │ │ invoke-static {p1, p2}, Ljava/lang/Double;->toString(D)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-virtual {v0, v1}, Ljava/io/Writer;->append(Ljava/lang/CharSequence;)Ljava/io/Writer; │ │ - .line 468 │ + .line 500 │ return-object p0 │ .end method │ │ .method public value(J)Lcom/google/gson/stream/JsonWriter; │ .locals 3 │ .param p1, "value" # J │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 477 │ + .line 509 │ invoke-direct {p0}, Lcom/google/gson/stream/JsonWriter;->writeDeferredName()V │ │ - .line 478 │ - const/4 v0, 0x0 │ - │ - invoke-direct {p0, v0}, Lcom/google/gson/stream/JsonWriter;->beforeValue(Z)V │ + .line 510 │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonWriter;->beforeValue()V │ │ - .line 479 │ + .line 511 │ iget-object v0, p0, Lcom/google/gson/stream/JsonWriter;->out:Ljava/io/Writer; │ │ invoke-static {p1, p2}, Ljava/lang/Long;->toString(J)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-virtual {v0, v1}, Ljava/io/Writer;->write(Ljava/lang/String;)V │ │ - .line 480 │ + .line 512 │ return-object p0 │ .end method │ │ +.method public value(Ljava/lang/Boolean;)Lcom/google/gson/stream/JsonWriter; │ + .locals 2 │ + .param p1, "value" # Ljava/lang/Boolean; │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/io/IOException; │ + } │ + .end annotation │ + │ + .prologue │ + .line 477 │ + if-nez p1, :cond_0 │ + │ + .line 478 │ + invoke-virtual {p0}, Lcom/google/gson/stream/JsonWriter;->nullValue()Lcom/google/gson/stream/JsonWriter; │ + │ + move-result-object p0 │ + │ + .line 483 │ + .end local p0 # "this":Lcom/google/gson/stream/JsonWriter; │ + :goto_0 │ + return-object p0 │ + │ + .line 480 │ + .restart local p0 # "this":Lcom/google/gson/stream/JsonWriter; │ + :cond_0 │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonWriter;->writeDeferredName()V │ + │ + .line 481 │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonWriter;->beforeValue()V │ + │ + .line 482 │ + iget-object v1, p0, Lcom/google/gson/stream/JsonWriter;->out:Ljava/io/Writer; │ + │ + invoke-virtual {p1}, Ljava/lang/Boolean;->booleanValue()Z │ + │ + move-result v0 │ + │ + if-eqz v0, :cond_1 │ + │ + const-string v0, "true" │ + │ + :goto_1 │ + invoke-virtual {v1, v0}, Ljava/io/Writer;->write(Ljava/lang/String;)V │ + │ + goto :goto_0 │ + │ + :cond_1 │ + const-string v0, "false" │ + │ + goto :goto_1 │ +.end method │ + │ .method public value(Ljava/lang/Number;)Lcom/google/gson/stream/JsonWriter; │ .locals 4 │ .param p1, "value" # Ljava/lang/Number; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 491 │ + .line 523 │ if-nez p1, :cond_0 │ │ - .line 492 │ + .line 524 │ invoke-virtual {p0}, Lcom/google/gson/stream/JsonWriter;->nullValue()Lcom/google/gson/stream/JsonWriter; │ │ move-result-object p0 │ │ - .line 503 │ + .line 535 │ .end local p0 # "this":Lcom/google/gson/stream/JsonWriter; │ :goto_0 │ return-object p0 │ │ - .line 495 │ + .line 527 │ .restart local p0 # "this":Lcom/google/gson/stream/JsonWriter; │ :cond_0 │ invoke-direct {p0}, Lcom/google/gson/stream/JsonWriter;->writeDeferredName()V │ │ - .line 496 │ + .line 528 │ invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 497 │ + .line 529 │ .local v0, "string":Ljava/lang/String; │ iget-boolean v1, p0, Lcom/google/gson/stream/JsonWriter;->lenient:Z │ │ if-nez v1, :cond_2 │ │ const-string v1, "-Infinity" │ │ + .line 530 │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v1 │ │ if-nez v1, :cond_1 │ │ const-string v1, "Infinity" │ @@ -1449,15 +1516,15 @@ │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v1 │ │ if-eqz v1, :cond_2 │ │ - .line 499 │ + .line 531 │ :cond_1 │ new-instance v1, Ljava/lang/IllegalArgumentException; │ │ new-instance v2, Ljava/lang/StringBuilder; │ │ invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ │ @@ -1475,30 +1542,28 @@ │ │ move-result-object v2 │ │ invoke-direct {v1, v2}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ throw v1 │ │ - .line 501 │ + .line 533 │ :cond_2 │ - const/4 v1, 0x0 │ - │ - invoke-direct {p0, v1}, Lcom/google/gson/stream/JsonWriter;->beforeValue(Z)V │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonWriter;->beforeValue()V │ │ - .line 502 │ + .line 534 │ iget-object v1, p0, Lcom/google/gson/stream/JsonWriter;->out:Ljava/io/Writer; │ │ invoke-virtual {v1, v0}, Ljava/io/Writer;->append(Ljava/lang/CharSequence;)Ljava/io/Writer; │ │ goto :goto_0 │ .end method │ │ .method public value(Ljava/lang/String;)Lcom/google/gson/stream/JsonWriter; │ - .locals 1 │ + .locals 0 │ .param p1, "value" # Ljava/lang/String; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ @@ -1518,17 +1583,15 @@ │ │ .line 417 │ .restart local p0 # "this":Lcom/google/gson/stream/JsonWriter; │ :cond_0 │ invoke-direct {p0}, Lcom/google/gson/stream/JsonWriter;->writeDeferredName()V │ │ .line 418 │ - const/4 v0, 0x0 │ - │ - invoke-direct {p0, v0}, Lcom/google/gson/stream/JsonWriter;->beforeValue(Z)V │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonWriter;->beforeValue()V │ │ .line 419 │ invoke-direct {p0, p1}, Lcom/google/gson/stream/JsonWriter;->string(Ljava/lang/String;)V │ │ goto :goto_0 │ .end method │ │ @@ -1538,34 +1601,32 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 448 │ + .line 465 │ invoke-direct {p0}, Lcom/google/gson/stream/JsonWriter;->writeDeferredName()V │ │ - .line 449 │ - const/4 v0, 0x0 │ - │ - invoke-direct {p0, v0}, Lcom/google/gson/stream/JsonWriter;->beforeValue(Z)V │ + .line 466 │ + invoke-direct {p0}, Lcom/google/gson/stream/JsonWriter;->beforeValue()V │ │ - .line 450 │ + .line 467 │ iget-object v1, p0, Lcom/google/gson/stream/JsonWriter;->out:Ljava/io/Writer; │ │ if-eqz p1, :cond_0 │ │ const-string v0, "true" │ │ :goto_0 │ invoke-virtual {v1, v0}, Ljava/io/Writer;->write(Ljava/lang/String;)V │ │ - .line 451 │ + .line 468 │ return-object p0 │ │ - .line 450 │ + .line 467 │ :cond_0 │ const-string v0, "false" │ │ goto :goto_0 │ .end method ├── smali/com/melnykov/fab/R.smali │ @@ -21,10 +21,9 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 9 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 48 │ return-void │ .end method ├── smali/fly/speedmeter/grub/GpsServices$isStillStopped.smali │ @@ -30,14 +30,15 @@ │ │ .field timer:I │ │ │ # direct methods │ .method constructor (Lfly/speedmeter/grub/GpsServices;)V │ .locals 1 │ + .param p1, "this$0" # Lfly/speedmeter/grub/GpsServices; │ │ .prologue │ .line 128 │ iput-object p1, p0, Lfly/speedmeter/grub/GpsServices$isStillStopped;->this$0:Lfly/speedmeter/grub/GpsServices; │ │ invoke-direct {p0}, Landroid/os/AsyncTask;->()V │ │ @@ -49,21 +50,19 @@ │ return-void │ .end method │ │ │ # virtual methods │ .method protected bridge synthetic doInBackground([Ljava/lang/Object;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # [Ljava/lang/Object; │ │ .prologue │ .line 128 │ check-cast p1, [Ljava/lang/Void; │ │ - .end local p1 # "x0":[Ljava/lang/Object; │ invoke-virtual {p0, p1}, Lfly/speedmeter/grub/GpsServices$isStillStopped;->doInBackground([Ljava/lang/Void;)Ljava/lang/String; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ @@ -122,21 +121,19 @@ │ const-string v1, "return object when task is finished" │ │ goto :goto_1 │ .end method │ │ .method protected bridge synthetic onPostExecute(Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "x0" # Ljava/lang/Object; │ │ .prologue │ .line 128 │ check-cast p1, Ljava/lang/String; │ │ - .end local p1 # "x0":Ljava/lang/Object; │ invoke-virtual {p0, p1}, Lfly/speedmeter/grub/GpsServices$isStillStopped;->onPostExecute(Ljava/lang/String;)V │ │ return-void │ .end method │ │ .method protected onPostExecute(Ljava/lang/String;)V │ .locals 4 ├── smali/fly/speedmeter/grub/GpsServices.smali │ @@ -60,15 +60,14 @@ │ │ .line 26 │ iput-wide v2, p0, Lfly/speedmeter/grub/GpsServices;->lastLon:D │ │ .line 27 │ iput-wide v2, p0, Lfly/speedmeter/grub/GpsServices;->lastLat:D │ │ - .line 128 │ return-void │ .end method │ │ │ # virtual methods │ .method public onBind(Landroid/content/Intent;)Landroid/os/IBinder; │ .locals 1 │ @@ -411,30 +410,33 @@ │ │ move-result-object v3 │ │ invoke-direct {v2, v3}, Landroid/app/Notification$Builder;->(Landroid/content/Context;)V │ │ const v3, 0x7f0c002c │ │ + .line 83 │ invoke-virtual {p0, v3}, Lfly/speedmeter/grub/GpsServices;->getString(I)Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Landroid/app/Notification$Builder;->setContentTitle(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; │ │ move-result-object v2 │ │ const v3, 0x7f02004a │ │ + .line 84 │ invoke-virtual {v2, v3}, Landroid/app/Notification$Builder;->setSmallIcon(I)Landroid/app/Notification$Builder; │ │ move-result-object v2 │ │ iget-object v3, p0, Lfly/speedmeter/grub/GpsServices;->contentIntent:Landroid/app/PendingIntent; │ │ + .line 85 │ invoke-virtual {v2, v3}, Landroid/app/Notification$Builder;->setContentIntent(Landroid/app/PendingIntent;)Landroid/app/Notification$Builder; │ │ move-result-object v0 │ │ .line 87 │ .local v0, "builder":Landroid/app/Notification$Builder; │ if-eqz p1, :cond_0 ├── smali/fly/speedmeter/grub/MainActivity$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lfly/speedmeter/grub/MainActivity; │ │ │ # direct methods │ .method constructor (Lfly/speedmeter/grub/MainActivity;)V │ .locals 0 │ + .param p1, "this$0" # Lfly/speedmeter/grub/MainActivity; │ │ .prologue │ .line 72 │ iput-object p1, p0, Lfly/speedmeter/grub/MainActivity$1;->this$0:Lfly/speedmeter/grub/MainActivity; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/fly/speedmeter/grub/MainActivity$2.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic this$0:Lfly/speedmeter/grub/MainActivity; │ │ │ # direct methods │ .method constructor (Lfly/speedmeter/grub/MainActivity;)V │ .locals 1 │ + .param p1, "this$0" # Lfly/speedmeter/grub/MainActivity; │ │ .prologue │ .line 98 │ iput-object p1, p0, Lfly/speedmeter/grub/MainActivity$2;->this$0:Lfly/speedmeter/grub/MainActivity; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/fly/speedmeter/grub/MainActivity$3.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lfly/speedmeter/grub/MainActivity; │ │ │ # direct methods │ .method constructor (Lfly/speedmeter/grub/MainActivity;)V │ .locals 0 │ + .param p1, "this$0" # Lfly/speedmeter/grub/MainActivity; │ │ .prologue │ .line 298 │ iput-object p1, p0, Lfly/speedmeter/grub/MainActivity$3;->this$0:Lfly/speedmeter/grub/MainActivity; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/fly/speedmeter/grub/MainActivity.smali │ @@ -550,227 +550,225 @@ │ │ invoke-virtual {v0, v3}, Lcom/melnykov/fab/FloatingActionButton;->setVisibility(I)V │ │ goto :goto_0 │ .end method │ │ .method public onGpsStatusChanged(I)V │ - .locals 10 │ + .locals 9 │ .param p1, "event" # I │ │ .prologue │ - const/4 v9, 0x4 │ + const/4 v8, 0x4 │ │ .line 259 │ packed-switch p1, :pswitch_data_0 │ │ .line 293 │ :cond_0 │ :goto_0 │ :pswitch_0 │ return-void │ │ .line 261 │ :pswitch_1 │ - iget-object v6, p0, Lfly/speedmeter/grub/MainActivity;->mLocationManager:Landroid/location/LocationManager; │ + iget-object v5, p0, Lfly/speedmeter/grub/MainActivity;->mLocationManager:Landroid/location/LocationManager; │ │ - const/4 v7, 0x0 │ + const/4 v6, 0x0 │ │ - invoke-virtual {v6, v7}, Landroid/location/LocationManager;->getGpsStatus(Landroid/location/GpsStatus;)Landroid/location/GpsStatus; │ + invoke-virtual {v5, v6}, Landroid/location/LocationManager;->getGpsStatus(Landroid/location/GpsStatus;)Landroid/location/GpsStatus; │ │ move-result-object v0 │ │ .line 262 │ .local v0, "gpsStatus":Landroid/location/GpsStatus; │ - const/4 v4, 0x0 │ + const/4 v3, 0x0 │ │ .line 263 │ - .local v4, "satsInView":I │ - const/4 v5, 0x0 │ + .local v3, "satsInView":I │ + const/4 v4, 0x0 │ │ .line 264 │ - .local v5, "satsUsed":I │ + .local v4, "satsUsed":I │ invoke-virtual {v0}, Landroid/location/GpsStatus;->getSatellites()Ljava/lang/Iterable; │ │ - move-result-object v3 │ + move-result-object v2 │ │ .line 265 │ - .local v3, "sats":Ljava/lang/Iterable;, "Ljava/lang/Iterable;" │ - invoke-interface {v3}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator; │ + .local v2, "sats":Ljava/lang/Iterable;, "Ljava/lang/Iterable;" │ + invoke-interface {v2}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator; │ │ - move-result-object v1 │ + move-result-object v5 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :cond_1 │ :goto_1 │ - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v5}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v6 │ │ if-eqz v6, :cond_2 │ │ - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v5}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - check-cast v2, Landroid/location/GpsSatellite; │ + check-cast v1, Landroid/location/GpsSatellite; │ │ .line 266 │ - .local v2, "sat":Landroid/location/GpsSatellite; │ - add-int/lit8 v4, v4, 0x1 │ + .local v1, "sat":Landroid/location/GpsSatellite; │ + add-int/lit8 v3, v3, 0x1 │ │ .line 267 │ - invoke-virtual {v2}, Landroid/location/GpsSatellite;->usedInFix()Z │ + invoke-virtual {v1}, Landroid/location/GpsSatellite;->usedInFix()Z │ │ move-result v6 │ │ if-eqz v6, :cond_1 │ │ .line 268 │ - add-int/lit8 v5, v5, 0x1 │ + add-int/lit8 v4, v4, 0x1 │ │ goto :goto_1 │ │ .line 271 │ - .end local v2 # "sat":Landroid/location/GpsSatellite; │ + .end local v1 # "sat":Landroid/location/GpsSatellite; │ :cond_2 │ - iget-object v6, p0, Lfly/speedmeter/grub/MainActivity;->satellite:Landroid/widget/TextView; │ - │ - new-instance v7, Ljava/lang/StringBuilder; │ + iget-object v5, p0, Lfly/speedmeter/grub/MainActivity;->satellite:Landroid/widget/TextView; │ │ - invoke-direct {v7}, Ljava/lang/StringBuilder;->()V │ + new-instance v6, Ljava/lang/StringBuilder; │ │ - invoke-static {v5}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; │ + invoke-direct {v6}, Ljava/lang/StringBuilder;->()V │ │ - move-result-object v8 │ - │ - invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-static {v4}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; │ │ move-result-object v7 │ │ - const-string v8, "/" │ + invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + move-result-object v6 │ │ - move-result-object v7 │ + const-string v7, "/" │ │ - invoke-static {v4}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; │ + invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v8 │ + move-result-object v6 │ │ - invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-static {v3}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; │ │ move-result-object v7 │ │ - invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v7 │ + move-result-object v6 │ + │ + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - invoke-virtual {v6, v7}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V │ + move-result-object v6 │ + │ + invoke-virtual {v5, v6}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V │ │ .line 272 │ - if-nez v5, :cond_0 │ + if-nez v4, :cond_0 │ │ .line 273 │ - iget-object v6, p0, Lfly/speedmeter/grub/MainActivity;->fab:Lcom/melnykov/fab/FloatingActionButton; │ + iget-object v5, p0, Lfly/speedmeter/grub/MainActivity;->fab:Lcom/melnykov/fab/FloatingActionButton; │ │ invoke-virtual {p0}, Lfly/speedmeter/grub/MainActivity;->getResources()Landroid/content/res/Resources; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - const v8, 0x7f020046 │ + const v7, 0x7f020046 │ │ - invoke-virtual {v7, v8}, Landroid/content/res/Resources;->getDrawable(I)Landroid/graphics/drawable/Drawable; │ + invoke-virtual {v6, v7}, Landroid/content/res/Resources;->getDrawable(I)Landroid/graphics/drawable/Drawable; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - invoke-virtual {v6, v7}, Lcom/melnykov/fab/FloatingActionButton;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V │ + invoke-virtual {v5, v6}, Lcom/melnykov/fab/FloatingActionButton;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V │ │ .line 274 │ - sget-object v6, Lfly/speedmeter/grub/MainActivity;->data:Lfly/speedmeter/grub/Data; │ + sget-object v5, Lfly/speedmeter/grub/MainActivity;->data:Lfly/speedmeter/grub/Data; │ │ - const/4 v7, 0x0 │ + const/4 v6, 0x0 │ │ - invoke-virtual {v6, v7}, Lfly/speedmeter/grub/Data;->setRunning(Z)V │ + invoke-virtual {v5, v6}, Lfly/speedmeter/grub/Data;->setRunning(Z)V │ │ .line 275 │ - iget-object v6, p0, Lfly/speedmeter/grub/MainActivity;->status:Landroid/widget/TextView; │ + iget-object v5, p0, Lfly/speedmeter/grub/MainActivity;->status:Landroid/widget/TextView; │ │ - const-string v7, "" │ + const-string v6, "" │ │ - invoke-virtual {v6, v7}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V │ + invoke-virtual {v5, v6}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V │ │ .line 276 │ - new-instance v6, Landroid/content/Intent; │ + new-instance v5, Landroid/content/Intent; │ │ invoke-virtual {p0}, Lfly/speedmeter/grub/MainActivity;->getBaseContext()Landroid/content/Context; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - const-class v8, Lfly/speedmeter/grub/GpsServices; │ + const-class v7, Lfly/speedmeter/grub/GpsServices; │ │ - invoke-direct {v6, v7, v8}, Landroid/content/Intent;->(Landroid/content/Context;Ljava/lang/Class;)V │ + invoke-direct {v5, v6, v7}, Landroid/content/Intent;->(Landroid/content/Context;Ljava/lang/Class;)V │ │ - invoke-virtual {p0, v6}, Lfly/speedmeter/grub/MainActivity;->stopService(Landroid/content/Intent;)Z │ + invoke-virtual {p0, v5}, Lfly/speedmeter/grub/MainActivity;->stopService(Landroid/content/Intent;)Z │ │ .line 277 │ - iget-object v6, p0, Lfly/speedmeter/grub/MainActivity;->fab:Lcom/melnykov/fab/FloatingActionButton; │ + iget-object v5, p0, Lfly/speedmeter/grub/MainActivity;->fab:Lcom/melnykov/fab/FloatingActionButton; │ │ - invoke-virtual {v6, v9}, Lcom/melnykov/fab/FloatingActionButton;->setVisibility(I)V │ + invoke-virtual {v5, v8}, Lcom/melnykov/fab/FloatingActionButton;->setVisibility(I)V │ │ .line 278 │ - iget-object v6, p0, Lfly/speedmeter/grub/MainActivity;->refresh:Lcom/melnykov/fab/FloatingActionButton; │ + iget-object v5, p0, Lfly/speedmeter/grub/MainActivity;->refresh:Lcom/melnykov/fab/FloatingActionButton; │ │ - invoke-virtual {v6, v9}, Lcom/melnykov/fab/FloatingActionButton;->setVisibility(I)V │ + invoke-virtual {v5, v8}, Lcom/melnykov/fab/FloatingActionButton;->setVisibility(I)V │ │ .line 279 │ - iget-object v6, p0, Lfly/speedmeter/grub/MainActivity;->accuracy:Landroid/widget/TextView; │ + iget-object v5, p0, Lfly/speedmeter/grub/MainActivity;->accuracy:Landroid/widget/TextView; │ │ - const-string v7, "" │ + const-string v6, "" │ │ - invoke-virtual {v6, v7}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V │ + invoke-virtual {v5, v6}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V │ │ .line 280 │ - iget-object v6, p0, Lfly/speedmeter/grub/MainActivity;->status:Landroid/widget/TextView; │ + iget-object v5, p0, Lfly/speedmeter/grub/MainActivity;->status:Landroid/widget/TextView; │ │ invoke-virtual {p0}, Lfly/speedmeter/grub/MainActivity;->getResources()Landroid/content/res/Resources; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - const v8, 0x7f0c0033 │ + const v7, 0x7f0c0033 │ │ - invoke-virtual {v7, v8}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ + invoke-virtual {v6, v7}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - invoke-virtual {v6, v7}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V │ + invoke-virtual {v5, v6}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V │ │ .line 281 │ - const/4 v6, 0x1 │ + const/4 v5, 0x1 │ │ - iput-boolean v6, p0, Lfly/speedmeter/grub/MainActivity;->firstfix:Z │ + iput-boolean v5, p0, Lfly/speedmeter/grub/MainActivity;->firstfix:Z │ │ goto/16 :goto_0 │ │ .line 286 │ .end local v0 # "gpsStatus":Landroid/location/GpsStatus; │ - .end local v1 # "i$":Ljava/util/Iterator; │ - .end local v3 # "sats":Ljava/lang/Iterable;, "Ljava/lang/Iterable;" │ - .end local v4 # "satsInView":I │ - .end local v5 # "satsUsed":I │ + .end local v2 # "sats":Ljava/lang/Iterable;, "Ljava/lang/Iterable;" │ + .end local v3 # "satsInView":I │ + .end local v4 # "satsUsed":I │ :pswitch_2 │ - iget-object v6, p0, Lfly/speedmeter/grub/MainActivity;->mLocationManager:Landroid/location/LocationManager; │ + iget-object v5, p0, Lfly/speedmeter/grub/MainActivity;->mLocationManager:Landroid/location/LocationManager; │ │ - const-string v7, "gps" │ + const-string v6, "gps" │ │ - invoke-virtual {v6, v7}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z │ + invoke-virtual {v5, v6}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z │ │ - move-result v6 │ + move-result v5 │ │ - if-nez v6, :cond_0 │ + if-nez v5, :cond_0 │ │ .line 287 │ invoke-virtual {p0}, Lfly/speedmeter/grub/MainActivity;->showGpsDisabledDialog()V │ │ goto/16 :goto_0 │ │ .line 259 ├── smali/fly/speedmeter/grub/R.smali │ @@ -29,10 +29,9 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 10 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 2015 │ return-void │ .end method ├── smali/fly/speedmeter/grub/Settings.smali │ @@ -15,15 +15,14 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 17 │ invoke-direct {p0}, Landroid/support/v7/app/ActionBarActivity;->()V │ │ - .line 47 │ return-void │ .end method │ │ │ # virtual methods │ .method protected onCreate(Landroid/os/Bundle;)V │ .locals 4 │ @@ -68,28 +67,31 @@ │ invoke-virtual {v1, v2}, Landroid/support/v7/app/ActionBar;->setDisplayHomeAsUpEnabled(Z)V │ │ .line 30 │ invoke-virtual {p0}, Lfly/speedmeter/grub/Settings;->getFragmentManager()Landroid/app/FragmentManager; │ │ move-result-object v1 │ │ + .line 31 │ invoke-virtual {v1}, Landroid/app/FragmentManager;->beginTransaction()Landroid/app/FragmentTransaction; │ │ move-result-object v1 │ │ const v2, 0x7f0a005a │ │ new-instance v3, Lfly/speedmeter/grub/Settings$SettingsFragment; │ │ invoke-direct {v3}, Lfly/speedmeter/grub/Settings$SettingsFragment;->()V │ │ + .line 32 │ invoke-virtual {v1, v2, v3}, Landroid/app/FragmentTransaction;->replace(ILandroid/app/Fragment;)Landroid/app/FragmentTransaction; │ │ move-result-object v1 │ │ + .line 33 │ invoke-virtual {v1}, Landroid/app/FragmentTransaction;->commit()I │ │ .line 34 │ return-void │ .end method │ │ .method public onOptionsItemSelected(Landroid/view/MenuItem;)Z │ --- smali/com/google/gson/internal/bind/TypeAdapters$22$1.smali ├── +++ smali/com/google/gson/internal/bind/TypeAdapters$26$1.smali │┄ Files similar despite different names (difference score: 44) │ @@ -1,15 +1,15 @@ │ -.class Lcom/google/gson/internal/bind/TypeAdapters$22$1; │ +.class Lcom/google/gson/internal/bind/TypeAdapters$26$1; │ .super Lcom/google/gson/TypeAdapter; │ .source "TypeAdapters.java" │ │ │ # annotations │ .annotation system Ldalvik/annotation/EnclosingMethod; │ - value = Lcom/google/gson/internal/bind/TypeAdapters$22;->create(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ + value = Lcom/google/gson/internal/bind/TypeAdapters$26;->create(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ .end annotation │ │ .annotation system Ldalvik/annotation/InnerClass; │ accessFlags = 0x0 │ name = null │ .end annotation │ │ @@ -20,48 +20,48 @@ │ "Ljava/sql/Timestamp;", │ ">;" │ } │ .end annotation │ │ │ # instance fields │ -.field final synthetic this$0:Lcom/google/gson/internal/bind/TypeAdapters$22; │ +.field final synthetic this$0:Lcom/google/gson/internal/bind/TypeAdapters$26; │ │ .field final synthetic val$dateTypeAdapter:Lcom/google/gson/TypeAdapter; │ │ │ # direct methods │ -.method constructor (Lcom/google/gson/internal/bind/TypeAdapters$22;Lcom/google/gson/TypeAdapter;)V │ +.method constructor (Lcom/google/gson/internal/bind/TypeAdapters$26;Lcom/google/gson/TypeAdapter;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/google/gson/internal/bind/TypeAdapters$26; │ │ .prologue │ - .line 524 │ - iput-object p1, p0, Lcom/google/gson/internal/bind/TypeAdapters$22$1;->this$0:Lcom/google/gson/internal/bind/TypeAdapters$22; │ + .line 596 │ + iput-object p1, p0, Lcom/google/gson/internal/bind/TypeAdapters$26$1;->this$0:Lcom/google/gson/internal/bind/TypeAdapters$26; │ │ - iput-object p2, p0, Lcom/google/gson/internal/bind/TypeAdapters$22$1;->val$dateTypeAdapter:Lcom/google/gson/TypeAdapter; │ + iput-object p2, p0, Lcom/google/gson/internal/bind/TypeAdapters$26$1;->val$dateTypeAdapter:Lcom/google/gson/TypeAdapter; │ │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonReader; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 524 │ - invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$22$1;->read(Lcom/google/gson/stream/JsonReader;)Ljava/sql/Timestamp; │ + .line 596 │ + invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/TypeAdapters$26$1;->read(Lcom/google/gson/stream/JsonReader;)Ljava/sql/Timestamp; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public read(Lcom/google/gson/stream/JsonReader;)Ljava/sql/Timestamp; │ @@ -70,24 +70,24 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 526 │ - iget-object v1, p0, Lcom/google/gson/internal/bind/TypeAdapters$22$1;->val$dateTypeAdapter:Lcom/google/gson/TypeAdapter; │ + .line 598 │ + iget-object v1, p0, Lcom/google/gson/internal/bind/TypeAdapters$26$1;->val$dateTypeAdapter:Lcom/google/gson/TypeAdapter; │ │ invoke-virtual {v1, p1}, Lcom/google/gson/TypeAdapter;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/util/Date; │ │ - .line 527 │ + .line 599 │ .local v0, "date":Ljava/util/Date; │ if-eqz v0, :cond_0 │ │ new-instance v1, Ljava/sql/Timestamp; │ │ invoke-virtual {v0}, Ljava/util/Date;->getTime()J │ │ @@ -102,28 +102,25 @@ │ const/4 v1, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ .locals 0 │ - .param p1, "x0" # Lcom/google/gson/stream/JsonWriter; │ - .param p2, "x1" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 524 │ + .line 596 │ check-cast p2, Ljava/sql/Timestamp; │ │ - .end local p2 # "x1":Ljava/lang/Object; │ - invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$22$1;->write(Lcom/google/gson/stream/JsonWriter;Ljava/sql/Timestamp;)V │ + invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/TypeAdapters$26$1;->write(Lcom/google/gson/stream/JsonWriter;Ljava/sql/Timestamp;)V │ │ return-void │ .end method │ │ .method public write(Lcom/google/gson/stream/JsonWriter;Ljava/sql/Timestamp;)V │ .locals 1 │ .param p1, "out" # Lcom/google/gson/stream/JsonWriter; │ @@ -131,15 +128,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 531 │ - iget-object v0, p0, Lcom/google/gson/internal/bind/TypeAdapters$22$1;->val$dateTypeAdapter:Lcom/google/gson/TypeAdapter; │ + .line 603 │ + iget-object v0, p0, Lcom/google/gson/internal/bind/TypeAdapters$26$1;->val$dateTypeAdapter:Lcom/google/gson/TypeAdapter; │ │ invoke-virtual {v0, p1, p2}, Lcom/google/gson/TypeAdapter;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ │ - .line 532 │ + .line 604 │ return-void │ .end method │ --- smali/com/google/gson/TreeTypeAdapter$SingleTypeFactory.smali ├── +++ smali/com/google/gson/internal/bind/TreeTypeAdapter$SingleTypeFactory.smali │┄ Files similar despite different names (difference score: 24) │ @@ -1,22 +1,22 @@ │ -.class Lcom/google/gson/TreeTypeAdapter$SingleTypeFactory; │ +.class final Lcom/google/gson/internal/bind/TreeTypeAdapter$SingleTypeFactory; │ .super Ljava/lang/Object; │ .source "TreeTypeAdapter.java" │ │ # interfaces │ .implements Lcom/google/gson/TypeAdapterFactory; │ │ │ # annotations │ .annotation system Ldalvik/annotation/EnclosingClass; │ - value = Lcom/google/gson/TreeTypeAdapter; │ + value = Lcom/google/gson/internal/bind/TreeTypeAdapter; │ .end annotation │ │ .annotation system Ldalvik/annotation/InnerClass; │ - accessFlags = 0xa │ + accessFlags = 0x1a │ name = "SingleTypeFactory" │ .end annotation │ │ │ # instance fields │ .field private final deserializer:Lcom/google/gson/JsonDeserializer; │ .annotation system Ldalvik/annotation/Signature; │ @@ -54,15 +54,15 @@ │ "<*>;" │ } │ .end annotation │ .end field │ │ │ # direct methods │ -.method private constructor (Ljava/lang/Object;Lcom/google/gson/reflect/TypeToken;ZLjava/lang/Class;)V │ +.method constructor (Ljava/lang/Object;Lcom/google/gson/reflect/TypeToken;ZLjava/lang/Class;)V │ .locals 2 │ .param p1, "typeAdapter" # Ljava/lang/Object; │ .param p3, "matchRawType" # Z │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Ljava/lang/Object;", │ @@ -74,107 +74,92 @@ │ .end annotation │ │ .prologue │ .local p2, "exactType":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken<*>;" │ .local p4, "hierarchyType":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ const/4 v1, 0x0 │ │ - .line 116 │ + .line 127 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 117 │ + .line 128 │ instance-of v0, p1, Lcom/google/gson/JsonSerializer; │ │ if-eqz v0, :cond_1 │ │ move-object v0, p1 │ │ check-cast v0, Lcom/google/gson/JsonSerializer; │ │ :goto_0 │ - iput-object v0, p0, Lcom/google/gson/TreeTypeAdapter$SingleTypeFactory;->serializer:Lcom/google/gson/JsonSerializer; │ + iput-object v0, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter$SingleTypeFactory;->serializer:Lcom/google/gson/JsonSerializer; │ │ - .line 120 │ + .line 131 │ instance-of v0, p1, Lcom/google/gson/JsonDeserializer; │ │ if-eqz v0, :cond_2 │ │ check-cast p1, Lcom/google/gson/JsonDeserializer; │ │ .end local p1 # "typeAdapter":Ljava/lang/Object; │ :goto_1 │ - iput-object p1, p0, Lcom/google/gson/TreeTypeAdapter$SingleTypeFactory;->deserializer:Lcom/google/gson/JsonDeserializer; │ + iput-object p1, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter$SingleTypeFactory;->deserializer:Lcom/google/gson/JsonDeserializer; │ │ - .line 123 │ - iget-object v0, p0, Lcom/google/gson/TreeTypeAdapter$SingleTypeFactory;->serializer:Lcom/google/gson/JsonSerializer; │ + .line 134 │ + iget-object v0, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter$SingleTypeFactory;->serializer:Lcom/google/gson/JsonSerializer; │ │ if-nez v0, :cond_0 │ │ - iget-object v0, p0, Lcom/google/gson/TreeTypeAdapter$SingleTypeFactory;->deserializer:Lcom/google/gson/JsonDeserializer; │ + iget-object v0, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter$SingleTypeFactory;->deserializer:Lcom/google/gson/JsonDeserializer; │ │ if-eqz v0, :cond_3 │ │ :cond_0 │ const/4 v0, 0x1 │ │ :goto_2 │ invoke-static {v0}, Lcom/google/gson/internal/$Gson$Preconditions;->checkArgument(Z)V │ │ - .line 124 │ - iput-object p2, p0, Lcom/google/gson/TreeTypeAdapter$SingleTypeFactory;->exactType:Lcom/google/gson/reflect/TypeToken; │ + .line 135 │ + iput-object p2, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter$SingleTypeFactory;->exactType:Lcom/google/gson/reflect/TypeToken; │ │ - .line 125 │ - iput-boolean p3, p0, Lcom/google/gson/TreeTypeAdapter$SingleTypeFactory;->matchRawType:Z │ + .line 136 │ + iput-boolean p3, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter$SingleTypeFactory;->matchRawType:Z │ │ - .line 126 │ - iput-object p4, p0, Lcom/google/gson/TreeTypeAdapter$SingleTypeFactory;->hierarchyType:Ljava/lang/Class; │ + .line 137 │ + iput-object p4, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter$SingleTypeFactory;->hierarchyType:Ljava/lang/Class; │ │ - .line 127 │ + .line 138 │ return-void │ │ .restart local p1 # "typeAdapter":Ljava/lang/Object; │ :cond_1 │ move-object v0, v1 │ │ - .line 117 │ + .line 128 │ goto :goto_0 │ │ :cond_2 │ move-object p1, v1 │ │ - .line 120 │ + .line 131 │ goto :goto_1 │ │ - .line 123 │ + .line 134 │ .end local p1 # "typeAdapter":Ljava/lang/Object; │ :cond_3 │ const/4 v0, 0x0 │ │ goto :goto_2 │ .end method │ │ -.method synthetic constructor (Ljava/lang/Object;Lcom/google/gson/reflect/TypeToken;ZLjava/lang/Class;Lcom/google/gson/TreeTypeAdapter$1;)V │ - .locals 0 │ - .param p1, "x0" # Ljava/lang/Object; │ - .param p2, "x1" # Lcom/google/gson/reflect/TypeToken; │ - .param p3, "x2" # Z │ - .param p4, "x3" # Ljava/lang/Class; │ - .param p5, "x4" # Lcom/google/gson/TreeTypeAdapter$1; │ - │ - .prologue │ - .line 108 │ - invoke-direct {p0, p1, p2, p3, p4}, Lcom/google/gson/TreeTypeAdapter$SingleTypeFactory;->(Ljava/lang/Object;Lcom/google/gson/reflect/TypeToken;ZLjava/lang/Class;)V │ - │ - return-void │ -.end method │ - │ │ # virtual methods │ .method public create(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ - .locals 8 │ + .locals 7 │ .param p1, "gson" # Lcom/google/gson/Gson; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Lcom/google/gson/Gson;", │ @@ -182,91 +167,91 @@ │ ";)", │ "Lcom/google/gson/TypeAdapter", │ ";" │ } │ .end annotation │ │ .prologue │ + .line 143 │ .local p2, "type":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken;" │ - const/4 v6, 0x0 │ - │ - .line 131 │ - iget-object v0, p0, Lcom/google/gson/TreeTypeAdapter$SingleTypeFactory;->exactType:Lcom/google/gson/reflect/TypeToken; │ + iget-object v0, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter$SingleTypeFactory;->exactType:Lcom/google/gson/reflect/TypeToken; │ │ if-eqz v0, :cond_2 │ │ - iget-object v0, p0, Lcom/google/gson/TreeTypeAdapter$SingleTypeFactory;->exactType:Lcom/google/gson/reflect/TypeToken; │ + iget-object v0, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter$SingleTypeFactory;->exactType:Lcom/google/gson/reflect/TypeToken; │ │ + .line 144 │ invoke-virtual {v0, p2}, Lcom/google/gson/reflect/TypeToken;->equals(Ljava/lang/Object;)Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ - iget-boolean v0, p0, Lcom/google/gson/TreeTypeAdapter$SingleTypeFactory;->matchRawType:Z │ + iget-boolean v0, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter$SingleTypeFactory;->matchRawType:Z │ │ if-eqz v0, :cond_1 │ │ - iget-object v0, p0, Lcom/google/gson/TreeTypeAdapter$SingleTypeFactory;->exactType:Lcom/google/gson/reflect/TypeToken; │ + iget-object v0, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter$SingleTypeFactory;->exactType:Lcom/google/gson/reflect/TypeToken; │ │ invoke-virtual {v0}, Lcom/google/gson/reflect/TypeToken;->getType()Ljava/lang/reflect/Type; │ │ move-result-object v0 │ │ invoke-virtual {p2}, Lcom/google/gson/reflect/TypeToken;->getRawType()Ljava/lang/Class; │ │ move-result-object v1 │ │ if-ne v0, v1, :cond_1 │ │ :cond_0 │ - const/4 v7, 0x1 │ + const/4 v6, 0x1 │ │ - .line 134 │ - .local v7, "matches":Z │ + .line 146 │ + .local v6, "matches":Z │ :goto_0 │ - if-eqz v7, :cond_3 │ + if-eqz v6, :cond_3 │ │ - new-instance v0, Lcom/google/gson/TreeTypeAdapter; │ + new-instance v0, Lcom/google/gson/internal/bind/TreeTypeAdapter; │ │ - iget-object v1, p0, Lcom/google/gson/TreeTypeAdapter$SingleTypeFactory;->serializer:Lcom/google/gson/JsonSerializer; │ + iget-object v1, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter$SingleTypeFactory;->serializer:Lcom/google/gson/JsonSerializer; │ │ - iget-object v2, p0, Lcom/google/gson/TreeTypeAdapter$SingleTypeFactory;->deserializer:Lcom/google/gson/JsonDeserializer; │ + iget-object v2, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter$SingleTypeFactory;->deserializer:Lcom/google/gson/JsonDeserializer; │ │ move-object v3, p1 │ │ move-object v4, p2 │ │ move-object v5, p0 │ │ - invoke-direct/range {v0 .. v6}, Lcom/google/gson/TreeTypeAdapter;->(Lcom/google/gson/JsonSerializer;Lcom/google/gson/JsonDeserializer;Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;Lcom/google/gson/TypeAdapterFactory;Lcom/google/gson/TreeTypeAdapter$1;)V │ + invoke-direct/range {v0 .. v5}, Lcom/google/gson/internal/bind/TreeTypeAdapter;->(Lcom/google/gson/JsonSerializer;Lcom/google/gson/JsonDeserializer;Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;Lcom/google/gson/TypeAdapterFactory;)V │ │ :goto_1 │ return-object v0 │ │ - .line 131 │ - .end local v7 # "matches":Z │ + .line 144 │ + .end local v6 # "matches":Z │ :cond_1 │ - const/4 v7, 0x0 │ + const/4 v6, 0x0 │ │ goto :goto_0 │ │ :cond_2 │ - iget-object v0, p0, Lcom/google/gson/TreeTypeAdapter$SingleTypeFactory;->hierarchyType:Ljava/lang/Class; │ + iget-object v0, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter$SingleTypeFactory;->hierarchyType:Ljava/lang/Class; │ │ + .line 145 │ invoke-virtual {p2}, Lcom/google/gson/reflect/TypeToken;->getRawType()Ljava/lang/Class; │ │ move-result-object v1 │ │ invoke-virtual {v0, v1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z │ │ - move-result v7 │ + move-result v6 │ │ goto :goto_0 │ │ - .restart local v7 # "matches":Z │ + .line 146 │ + .restart local v6 # "matches":Z │ :cond_3 │ - move-object v0, v6 │ + const/4 v0, 0x0 │ │ - .line 134 │ goto :goto_1 │ .end method │ --- smali/com/google/gson/TreeTypeAdapter.smali ├── +++ smali/com/google/gson/internal/bind/TreeTypeAdapter.smali │┄ Files similar despite different names (difference score: 50) │ @@ -1,17 +1,17 @@ │ -.class final Lcom/google/gson/TreeTypeAdapter; │ +.class public final Lcom/google/gson/internal/bind/TreeTypeAdapter; │ .super Lcom/google/gson/TypeAdapter; │ .source "TreeTypeAdapter.java" │ │ │ # annotations │ .annotation system Ldalvik/annotation/MemberClasses; │ value = { │ - Lcom/google/gson/TreeTypeAdapter$1;, │ - Lcom/google/gson/TreeTypeAdapter$SingleTypeFactory; │ + Lcom/google/gson/internal/bind/TreeTypeAdapter$GsonContextImpl;, │ + Lcom/google/gson/internal/bind/TreeTypeAdapter$SingleTypeFactory; │ } │ .end annotation │ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ ";" │ } │ .end annotation │ │ │ # instance fields │ +.field private final context:Lcom/google/gson/internal/bind/TreeTypeAdapter$GsonContextImpl; │ + .annotation system Ldalvik/annotation/Signature; │ + value = { │ + "Lcom/google/gson/internal/bind/TreeTypeAdapter", │ + ".GsonContextImpl;" │ + } │ + .end annotation │ +.end field │ + │ .field private delegate:Lcom/google/gson/TypeAdapter; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Lcom/google/gson/TypeAdapter", │ ";" │ } │ .end annotation │ @@ -61,16 +70,16 @@ │ ";" │ } │ .end annotation │ .end field │ │ │ # direct methods │ -.method private constructor (Lcom/google/gson/JsonSerializer;Lcom/google/gson/JsonDeserializer;Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;Lcom/google/gson/TypeAdapterFactory;)V │ - .locals 0 │ +.method public constructor (Lcom/google/gson/JsonSerializer;Lcom/google/gson/JsonDeserializer;Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;Lcom/google/gson/TypeAdapterFactory;)V │ + .locals 2 │ .param p3, "gson" # Lcom/google/gson/Gson; │ .param p5, "skipPast" # Lcom/google/gson/TypeAdapterFactory; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Lcom/google/gson/JsonSerializer", │ ";", │ @@ -81,216 +90,204 @@ │ ";", │ "Lcom/google/gson/TypeAdapterFactory;", │ ")V" │ } │ .end annotation │ │ .prologue │ - .line 42 │ - .local p0, "this":Lcom/google/gson/TreeTypeAdapter;, "Lcom/google/gson/TreeTypeAdapter;" │ + .line 53 │ + .local p0, "this":Lcom/google/gson/internal/bind/TreeTypeAdapter;, "Lcom/google/gson/internal/bind/TreeTypeAdapter;" │ .local p1, "serializer":Lcom/google/gson/JsonSerializer;, "Lcom/google/gson/JsonSerializer;" │ .local p2, "deserializer":Lcom/google/gson/JsonDeserializer;, "Lcom/google/gson/JsonDeserializer;" │ .local p4, "typeToken":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken;" │ invoke-direct {p0}, Lcom/google/gson/TypeAdapter;->()V │ │ - .line 43 │ - iput-object p1, p0, Lcom/google/gson/TreeTypeAdapter;->serializer:Lcom/google/gson/JsonSerializer; │ + .line 47 │ + new-instance v0, Lcom/google/gson/internal/bind/TreeTypeAdapter$GsonContextImpl; │ │ - .line 44 │ - iput-object p2, p0, Lcom/google/gson/TreeTypeAdapter;->deserializer:Lcom/google/gson/JsonDeserializer; │ + const/4 v1, 0x0 │ │ - .line 45 │ - iput-object p3, p0, Lcom/google/gson/TreeTypeAdapter;->gson:Lcom/google/gson/Gson; │ + invoke-direct {v0, p0, v1}, Lcom/google/gson/internal/bind/TreeTypeAdapter$GsonContextImpl;->(Lcom/google/gson/internal/bind/TreeTypeAdapter;Lcom/google/gson/internal/bind/TreeTypeAdapter$1;)V │ │ - .line 46 │ - iput-object p4, p0, Lcom/google/gson/TreeTypeAdapter;->typeToken:Lcom/google/gson/reflect/TypeToken; │ + iput-object v0, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter;->context:Lcom/google/gson/internal/bind/TreeTypeAdapter$GsonContextImpl; │ │ - .line 47 │ - iput-object p5, p0, Lcom/google/gson/TreeTypeAdapter;->skipPast:Lcom/google/gson/TypeAdapterFactory; │ + .line 54 │ + iput-object p1, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter;->serializer:Lcom/google/gson/JsonSerializer; │ + │ + .line 55 │ + iput-object p2, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter;->deserializer:Lcom/google/gson/JsonDeserializer; │ + │ + .line 56 │ + iput-object p3, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter;->gson:Lcom/google/gson/Gson; │ + │ + .line 57 │ + iput-object p4, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter;->typeToken:Lcom/google/gson/reflect/TypeToken; │ │ - .line 48 │ + .line 58 │ + iput-object p5, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter;->skipPast:Lcom/google/gson/TypeAdapterFactory; │ + │ + .line 59 │ return-void │ .end method │ │ -.method synthetic constructor (Lcom/google/gson/JsonSerializer;Lcom/google/gson/JsonDeserializer;Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;Lcom/google/gson/TypeAdapterFactory;Lcom/google/gson/TreeTypeAdapter$1;)V │ - .locals 0 │ - .param p1, "x0" # Lcom/google/gson/JsonSerializer; │ - .param p2, "x1" # Lcom/google/gson/JsonDeserializer; │ - .param p3, "x2" # Lcom/google/gson/Gson; │ - .param p4, "x3" # Lcom/google/gson/reflect/TypeToken; │ - .param p5, "x4" # Lcom/google/gson/TypeAdapterFactory; │ - .param p6, "x5" # Lcom/google/gson/TreeTypeAdapter$1; │ +.method static synthetic access$100(Lcom/google/gson/internal/bind/TreeTypeAdapter;)Lcom/google/gson/Gson; │ + .locals 1 │ + .param p0, "x0" # Lcom/google/gson/internal/bind/TreeTypeAdapter; │ │ .prologue │ - .line 31 │ - .local p0, "this":Lcom/google/gson/TreeTypeAdapter;, "Lcom/google/gson/TreeTypeAdapter;" │ - invoke-direct/range {p0 .. p5}, Lcom/google/gson/TreeTypeAdapter;->(Lcom/google/gson/JsonSerializer;Lcom/google/gson/JsonDeserializer;Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;Lcom/google/gson/TypeAdapterFactory;)V │ + .line 41 │ + iget-object v0, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter;->gson:Lcom/google/gson/Gson; │ │ - return-void │ + return-object v0 │ .end method │ │ .method private delegate()Lcom/google/gson/TypeAdapter; │ .locals 4 │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "()", │ "Lcom/google/gson/TypeAdapter", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 75 │ - .local p0, "this":Lcom/google/gson/TreeTypeAdapter;, "Lcom/google/gson/TreeTypeAdapter;" │ - iget-object v0, p0, Lcom/google/gson/TreeTypeAdapter;->delegate:Lcom/google/gson/TypeAdapter; │ + .line 86 │ + .local p0, "this":Lcom/google/gson/internal/bind/TreeTypeAdapter;, "Lcom/google/gson/internal/bind/TreeTypeAdapter;" │ + iget-object v0, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter;->delegate:Lcom/google/gson/TypeAdapter; │ │ - .line 76 │ + .line 87 │ .local v0, "d":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ if-eqz v0, :cond_0 │ │ + .line 89 │ .end local v0 # "d":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ :goto_0 │ return-object v0 │ │ + .line 87 │ .restart local v0 # "d":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ :cond_0 │ - iget-object v1, p0, Lcom/google/gson/TreeTypeAdapter;->gson:Lcom/google/gson/Gson; │ + iget-object v1, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter;->gson:Lcom/google/gson/Gson; │ │ - iget-object v2, p0, Lcom/google/gson/TreeTypeAdapter;->skipPast:Lcom/google/gson/TypeAdapterFactory; │ + iget-object v2, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter;->skipPast:Lcom/google/gson/TypeAdapterFactory; │ │ - iget-object v3, p0, Lcom/google/gson/TreeTypeAdapter;->typeToken:Lcom/google/gson/reflect/TypeToken; │ + iget-object v3, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter;->typeToken:Lcom/google/gson/reflect/TypeToken; │ │ + .line 89 │ invoke-virtual {v1, v2, v3}, Lcom/google/gson/Gson;->getDelegateAdapter(Lcom/google/gson/TypeAdapterFactory;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; │ │ move-result-object v0 │ │ .end local v0 # "d":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter;" │ - iput-object v0, p0, Lcom/google/gson/TreeTypeAdapter;->delegate:Lcom/google/gson/TypeAdapter; │ + iput-object v0, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter;->delegate:Lcom/google/gson/TypeAdapter; │ │ goto :goto_0 │ .end method │ │ .method public static newFactory(Lcom/google/gson/reflect/TypeToken;Ljava/lang/Object;)Lcom/google/gson/TypeAdapterFactory; │ - .locals 6 │ + .locals 3 │ .param p1, "typeAdapter" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Lcom/google/gson/reflect/TypeToken", │ "<*>;", │ "Ljava/lang/Object;", │ ")", │ "Lcom/google/gson/TypeAdapterFactory;" │ } │ .end annotation │ │ .prologue │ + .line 96 │ .local p0, "exactType":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken<*>;" │ - const/4 v4, 0x0 │ - │ - .line 85 │ - new-instance v0, Lcom/google/gson/TreeTypeAdapter$SingleTypeFactory; │ - │ - const/4 v3, 0x0 │ + new-instance v0, Lcom/google/gson/internal/bind/TreeTypeAdapter$SingleTypeFactory; │ │ - move-object v1, p1 │ - │ - move-object v2, p0 │ + const/4 v1, 0x0 │ │ - move-object v5, v4 │ + const/4 v2, 0x0 │ │ - invoke-direct/range {v0 .. v5}, Lcom/google/gson/TreeTypeAdapter$SingleTypeFactory;->(Ljava/lang/Object;Lcom/google/gson/reflect/TypeToken;ZLjava/lang/Class;Lcom/google/gson/TreeTypeAdapter$1;)V │ + invoke-direct {v0, p1, p0, v1, v2}, Lcom/google/gson/internal/bind/TreeTypeAdapter$SingleTypeFactory;->(Ljava/lang/Object;Lcom/google/gson/reflect/TypeToken;ZLjava/lang/Class;)V │ │ return-object v0 │ .end method │ │ .method public static newFactoryWithMatchRawType(Lcom/google/gson/reflect/TypeToken;Ljava/lang/Object;)Lcom/google/gson/TypeAdapterFactory; │ - .locals 6 │ + .locals 3 │ .param p1, "typeAdapter" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Lcom/google/gson/reflect/TypeToken", │ "<*>;", │ "Ljava/lang/Object;", │ ")", │ "Lcom/google/gson/TypeAdapterFactory;" │ } │ .end annotation │ │ .prologue │ + .line 106 │ .local p0, "exactType":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken<*>;" │ - const/4 v4, 0x0 │ - │ - .line 95 │ invoke-virtual {p0}, Lcom/google/gson/reflect/TypeToken;->getType()Ljava/lang/reflect/Type; │ │ - move-result-object v0 │ + move-result-object v1 │ │ invoke-virtual {p0}, Lcom/google/gson/reflect/TypeToken;->getRawType()Ljava/lang/Class; │ │ - move-result-object v1 │ + move-result-object v2 │ │ - if-ne v0, v1, :cond_0 │ + if-ne v1, v2, :cond_0 │ │ - const/4 v3, 0x1 │ + const/4 v0, 0x1 │ │ - .line 96 │ - .local v3, "matchRawType":Z │ + .line 107 │ + .local v0, "matchRawType":Z │ :goto_0 │ - new-instance v0, Lcom/google/gson/TreeTypeAdapter$SingleTypeFactory; │ - │ - move-object v1, p1 │ - │ - move-object v2, p0 │ + new-instance v1, Lcom/google/gson/internal/bind/TreeTypeAdapter$SingleTypeFactory; │ │ - move-object v5, v4 │ + const/4 v2, 0x0 │ │ - invoke-direct/range {v0 .. v5}, Lcom/google/gson/TreeTypeAdapter$SingleTypeFactory;->(Ljava/lang/Object;Lcom/google/gson/reflect/TypeToken;ZLjava/lang/Class;Lcom/google/gson/TreeTypeAdapter$1;)V │ + invoke-direct {v1, p1, p0, v0, v2}, Lcom/google/gson/internal/bind/TreeTypeAdapter$SingleTypeFactory;->(Ljava/lang/Object;Lcom/google/gson/reflect/TypeToken;ZLjava/lang/Class;)V │ │ - return-object v0 │ + return-object v1 │ │ - .line 95 │ - .end local v3 # "matchRawType":Z │ + .line 106 │ + .end local v0 # "matchRawType":Z │ :cond_0 │ - const/4 v3, 0x0 │ + const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public static newTypeHierarchyFactory(Ljava/lang/Class;Ljava/lang/Object;)Lcom/google/gson/TypeAdapterFactory; │ - .locals 6 │ + .locals 3 │ .param p1, "typeAdapter" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Ljava/lang/Class", │ "<*>;", │ "Ljava/lang/Object;", │ ")", │ "Lcom/google/gson/TypeAdapterFactory;" │ } │ .end annotation │ │ .prologue │ + .line 116 │ .local p0, "hierarchyType":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ - const/4 v2, 0x0 │ - │ - .line 105 │ - new-instance v0, Lcom/google/gson/TreeTypeAdapter$SingleTypeFactory; │ - │ - const/4 v3, 0x0 │ - │ - move-object v1, p1 │ + new-instance v0, Lcom/google/gson/internal/bind/TreeTypeAdapter$SingleTypeFactory; │ │ - move-object v4, p0 │ + const/4 v1, 0x0 │ │ - move-object v5, v2 │ + const/4 v2, 0x0 │ │ - invoke-direct/range {v0 .. v5}, Lcom/google/gson/TreeTypeAdapter$SingleTypeFactory;->(Ljava/lang/Object;Lcom/google/gson/reflect/TypeToken;ZLjava/lang/Class;Lcom/google/gson/TreeTypeAdapter$1;)V │ + invoke-direct {v0, p1, v1, v2, p0}, Lcom/google/gson/internal/bind/TreeTypeAdapter$SingleTypeFactory;->(Ljava/lang/Object;Lcom/google/gson/reflect/TypeToken;ZLjava/lang/Class;)V │ │ return-object v0 │ .end method │ │ │ # virtual methods │ .method public read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ @@ -307,65 +304,63 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 51 │ - .local p0, "this":Lcom/google/gson/TreeTypeAdapter;, "Lcom/google/gson/TreeTypeAdapter;" │ - iget-object v1, p0, Lcom/google/gson/TreeTypeAdapter;->deserializer:Lcom/google/gson/JsonDeserializer; │ + .line 62 │ + .local p0, "this":Lcom/google/gson/internal/bind/TreeTypeAdapter;, "Lcom/google/gson/internal/bind/TreeTypeAdapter;" │ + iget-object v1, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter;->deserializer:Lcom/google/gson/JsonDeserializer; │ │ if-nez v1, :cond_0 │ │ - .line 52 │ - invoke-direct {p0}, Lcom/google/gson/TreeTypeAdapter;->delegate()Lcom/google/gson/TypeAdapter; │ + .line 63 │ + invoke-direct {p0}, Lcom/google/gson/internal/bind/TreeTypeAdapter;->delegate()Lcom/google/gson/TypeAdapter; │ │ move-result-object v1 │ │ invoke-virtual {v1, p1}, Lcom/google/gson/TypeAdapter;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; │ │ move-result-object v1 │ │ - .line 58 │ + .line 69 │ :goto_0 │ return-object v1 │ │ - .line 54 │ + .line 65 │ :cond_0 │ invoke-static {p1}, Lcom/google/gson/internal/Streams;->parse(Lcom/google/gson/stream/JsonReader;)Lcom/google/gson/JsonElement; │ │ move-result-object v0 │ │ - .line 55 │ + .line 66 │ .local v0, "value":Lcom/google/gson/JsonElement; │ invoke-virtual {v0}, Lcom/google/gson/JsonElement;->isJsonNull()Z │ │ move-result v1 │ │ if-eqz v1, :cond_1 │ │ - .line 56 │ + .line 67 │ const/4 v1, 0x0 │ │ goto :goto_0 │ │ - .line 58 │ + .line 69 │ :cond_1 │ - iget-object v1, p0, Lcom/google/gson/TreeTypeAdapter;->deserializer:Lcom/google/gson/JsonDeserializer; │ + iget-object v1, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter;->deserializer:Lcom/google/gson/JsonDeserializer; │ │ - iget-object v2, p0, Lcom/google/gson/TreeTypeAdapter;->typeToken:Lcom/google/gson/reflect/TypeToken; │ + iget-object v2, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter;->typeToken:Lcom/google/gson/reflect/TypeToken; │ │ invoke-virtual {v2}, Lcom/google/gson/reflect/TypeToken;->getType()Ljava/lang/reflect/Type; │ │ move-result-object v2 │ │ - iget-object v3, p0, Lcom/google/gson/TreeTypeAdapter;->gson:Lcom/google/gson/Gson; │ - │ - iget-object v3, v3, Lcom/google/gson/Gson;->deserializationContext:Lcom/google/gson/JsonDeserializationContext; │ + iget-object v3, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter;->context:Lcom/google/gson/internal/bind/TreeTypeAdapter$GsonContextImpl; │ │ invoke-interface {v1, v0, v2, v3}, Lcom/google/gson/JsonDeserializer;->deserialize(Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; │ │ move-result-object v1 │ │ goto :goto_0 │ .end method │ @@ -384,58 +379,56 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 62 │ - .local p0, "this":Lcom/google/gson/TreeTypeAdapter;, "Lcom/google/gson/TreeTypeAdapter;" │ + .line 73 │ + .local p0, "this":Lcom/google/gson/internal/bind/TreeTypeAdapter;, "Lcom/google/gson/internal/bind/TreeTypeAdapter;" │ .local p2, "value":Ljava/lang/Object;, "TT;" │ - iget-object v1, p0, Lcom/google/gson/TreeTypeAdapter;->serializer:Lcom/google/gson/JsonSerializer; │ + iget-object v1, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter;->serializer:Lcom/google/gson/JsonSerializer; │ │ if-nez v1, :cond_0 │ │ - .line 63 │ - invoke-direct {p0}, Lcom/google/gson/TreeTypeAdapter;->delegate()Lcom/google/gson/TypeAdapter; │ + .line 74 │ + invoke-direct {p0}, Lcom/google/gson/internal/bind/TreeTypeAdapter;->delegate()Lcom/google/gson/TypeAdapter; │ │ move-result-object v1 │ │ invoke-virtual {v1, p1, p2}, Lcom/google/gson/TypeAdapter;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V │ │ - .line 72 │ + .line 83 │ :goto_0 │ return-void │ │ - .line 66 │ + .line 77 │ :cond_0 │ if-nez p2, :cond_1 │ │ - .line 67 │ + .line 78 │ invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->nullValue()Lcom/google/gson/stream/JsonWriter; │ │ goto :goto_0 │ │ - .line 70 │ + .line 81 │ :cond_1 │ - iget-object v1, p0, Lcom/google/gson/TreeTypeAdapter;->serializer:Lcom/google/gson/JsonSerializer; │ + iget-object v1, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter;->serializer:Lcom/google/gson/JsonSerializer; │ │ - iget-object v2, p0, Lcom/google/gson/TreeTypeAdapter;->typeToken:Lcom/google/gson/reflect/TypeToken; │ + iget-object v2, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter;->typeToken:Lcom/google/gson/reflect/TypeToken; │ │ invoke-virtual {v2}, Lcom/google/gson/reflect/TypeToken;->getType()Ljava/lang/reflect/Type; │ │ move-result-object v2 │ │ - iget-object v3, p0, Lcom/google/gson/TreeTypeAdapter;->gson:Lcom/google/gson/Gson; │ - │ - iget-object v3, v3, Lcom/google/gson/Gson;->serializationContext:Lcom/google/gson/JsonSerializationContext; │ + iget-object v3, p0, Lcom/google/gson/internal/bind/TreeTypeAdapter;->context:Lcom/google/gson/internal/bind/TreeTypeAdapter$GsonContextImpl; │ │ invoke-interface {v1, p2, v2, v3}, Lcom/google/gson/JsonSerializer;->serialize(Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; │ │ move-result-object v0 │ │ - .line 71 │ + .line 82 │ .local v0, "tree":Lcom/google/gson/JsonElement; │ invoke-static {v0, p1}, Lcom/google/gson/internal/Streams;->write(Lcom/google/gson/JsonElement;Lcom/google/gson/stream/JsonWriter;)V │ │ goto :goto_0 │ .end method