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,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;