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