Commit 1e0ab79aecf5e8e2a1da0618538109819b1ea139
1 parent
83f972ce
Remove redundant JSONParser::before_point etc
Showing
1 changed file
with
5 additions
and
37 deletions
libqpdf/JSON.cc
| ... | ... | @@ -600,11 +600,6 @@ namespace |
| 600 | 600 | is(is), |
| 601 | 601 | reactor(reactor), |
| 602 | 602 | lex_state(ls_top), |
| 603 | - number_before_point(0), | |
| 604 | - number_after_point(0), | |
| 605 | - number_after_e(0), | |
| 606 | - number_saw_point(false), | |
| 607 | - number_saw_e(false), | |
| 608 | 603 | bytes(0), |
| 609 | 604 | p(buf), |
| 610 | 605 | u_count(0), |
| ... | ... | @@ -663,11 +658,6 @@ namespace |
| 663 | 658 | InputSource& is; |
| 664 | 659 | JSON::Reactor* reactor; |
| 665 | 660 | lex_state_e lex_state; |
| 666 | - size_t number_before_point; | |
| 667 | - size_t number_after_point; | |
| 668 | - size_t number_after_e; | |
| 669 | - bool number_saw_point; | |
| 670 | - bool number_saw_e; | |
| 671 | 661 | char buf[16384]; |
| 672 | 662 | size_t bytes; |
| 673 | 663 | char const* p; |
| ... | ... | @@ -808,7 +798,8 @@ void |
| 808 | 798 | JSONParser::numberError() |
| 809 | 799 | { |
| 810 | 800 | if (*p == '.') { |
| 811 | - if (number_saw_e) { | |
| 801 | + if (lex_state == ls_number || lex_state == ls_number_e || | |
| 802 | + lex_state == ls_number_e_sign) { | |
| 812 | 803 | QTC::TC("libtests", "JSON parse point after e"); |
| 813 | 804 | throw std::runtime_error( |
| 814 | 805 | "JSON: offset " + std::to_string(offset) + |
| ... | ... | @@ -874,25 +865,10 @@ JSONParser::getToken() |
| 874 | 865 | lex_state = ls_alpha; |
| 875 | 866 | } else if (*p == '-') { |
| 876 | 867 | lex_state = ls_number_minus; |
| 877 | - number_before_point = 0; | |
| 878 | - number_after_point = 0; | |
| 879 | - number_after_e = 0; | |
| 880 | - number_saw_point = false; | |
| 881 | - number_saw_e = false; | |
| 882 | 868 | } else if ((*p >= '1') && (*p <= '9')) { |
| 883 | 869 | lex_state = ls_number_before_point; |
| 884 | - number_before_point = 1; | |
| 885 | - number_after_point = 0; | |
| 886 | - number_after_e = 0; | |
| 887 | - number_saw_point = false; | |
| 888 | - number_saw_e = false; | |
| 889 | 870 | } else if (*p == '0') { |
| 890 | 871 | lex_state = ls_number_leading_zero; |
| 891 | - number_before_point = 1; | |
| 892 | - number_after_point = 0; | |
| 893 | - number_after_e = 0; | |
| 894 | - number_saw_point = false; | |
| 895 | - number_saw_e = false; | |
| 896 | 872 | } else if (strchr("{}[]:,", *p)) { |
| 897 | 873 | ready = true; |
| 898 | 874 | } else { |
| ... | ... | @@ -905,10 +881,8 @@ JSONParser::getToken() |
| 905 | 881 | |
| 906 | 882 | case ls_number_minus: |
| 907 | 883 | if ((*p >= '1') && (*p <= '9')) { |
| 908 | - ++number_before_point; | |
| 909 | 884 | lex_state = ls_number_before_point; |
| 910 | 885 | } else if (*p == '0') { |
| 911 | - ++number_before_point; | |
| 912 | 886 | lex_state = ls_number_leading_zero; |
| 913 | 887 | } else { |
| 914 | 888 | QTC::TC("libtests", "JSON parse number minus no digits"); |
| ... | ... | @@ -930,7 +904,6 @@ JSONParser::getToken() |
| 930 | 904 | action = reread; |
| 931 | 905 | ready = true; |
| 932 | 906 | } else if (*p == 'e' || *p == 'E') { |
| 933 | - number_saw_e = true; | |
| 934 | 907 | lex_state = ls_number_e; |
| 935 | 908 | } else { |
| 936 | 909 | QTC::TC("libtests", "JSON parse leading zero"); |
| ... | ... | @@ -942,9 +915,8 @@ JSONParser::getToken() |
| 942 | 915 | |
| 943 | 916 | case ls_number_before_point: |
| 944 | 917 | if ((*p >= '0') && (*p <= '9')) { |
| 945 | - ++number_before_point; | |
| 918 | + // continue | |
| 946 | 919 | } else if (*p == '.') { |
| 947 | - number_saw_point = true; | |
| 948 | 920 | lex_state = ls_number_point; |
| 949 | 921 | } else if (QUtil::is_space(*p)) { |
| 950 | 922 | lex_state = ls_number; |
| ... | ... | @@ -955,7 +927,6 @@ JSONParser::getToken() |
| 955 | 927 | action = reread; |
| 956 | 928 | ready = true; |
| 957 | 929 | } else if (*p == 'e' || *p == 'E') { |
| 958 | - number_saw_e = true; | |
| 959 | 930 | lex_state = ls_number_e; |
| 960 | 931 | } else { |
| 961 | 932 | numberError(); |
| ... | ... | @@ -964,7 +935,6 @@ JSONParser::getToken() |
| 964 | 935 | |
| 965 | 936 | case ls_number_point: |
| 966 | 937 | if ((*p >= '0') && (*p <= '9')) { |
| 967 | - ++number_after_point; | |
| 968 | 938 | lex_state = ls_number_after_point; |
| 969 | 939 | } else { |
| 970 | 940 | numberError(); |
| ... | ... | @@ -973,7 +943,7 @@ JSONParser::getToken() |
| 973 | 943 | |
| 974 | 944 | case ls_number_after_point: |
| 975 | 945 | if ((*p >= '0') && (*p <= '9')) { |
| 976 | - ++number_after_point; | |
| 946 | + // continue | |
| 977 | 947 | } else if (QUtil::is_space(*p)) { |
| 978 | 948 | lex_state = ls_number; |
| 979 | 949 | action = ignore; |
| ... | ... | @@ -983,7 +953,6 @@ JSONParser::getToken() |
| 983 | 953 | action = reread; |
| 984 | 954 | ready = true; |
| 985 | 955 | } else if (*p == 'e' || *p == 'E') { |
| 986 | - number_saw_e = true; | |
| 987 | 956 | lex_state = ls_number_e; |
| 988 | 957 | } else { |
| 989 | 958 | numberError(); |
| ... | ... | @@ -992,7 +961,6 @@ JSONParser::getToken() |
| 992 | 961 | |
| 993 | 962 | case ls_number_e: |
| 994 | 963 | if ((*p >= '0') && (*p <= '9')) { |
| 995 | - ++number_after_e; | |
| 996 | 964 | lex_state = ls_number; |
| 997 | 965 | } else if ((*p == '+') || (*p == '-')) { |
| 998 | 966 | lex_state = ls_number_e_sign; |
| ... | ... | @@ -1012,7 +980,7 @@ JSONParser::getToken() |
| 1012 | 980 | case ls_number: |
| 1013 | 981 | // We only get here after we have seen an exponent. |
| 1014 | 982 | if ((*p >= '0') && (*p <= '9')) { |
| 1015 | - ++number_after_e; | |
| 983 | + // continue | |
| 1016 | 984 | } else if (QUtil::is_space(*p)) { |
| 1017 | 985 | action = ignore; |
| 1018 | 986 | ready = true; | ... | ... |