Commit 1e0ab79aecf5e8e2a1da0618538109819b1ea139

Authored by m-holger
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;
... ...