2
1
mirror of https://github.com/qpdf/qpdf.git synced 2025-01-03 15:17:29 +00:00
Commit Graph

1470 Commits

Author SHA1 Message Date
Jay Berkenbilt
088fabd9b9 Move most QPDF initializations to header 2023-02-18 19:38:37 -05:00
Jay Berkenbilt
6a48534e53
Merge pull request #896 from m-holger/jrod
Refactor setting of object descriptions in QPDF::JSONReactor
2023-02-18 17:58:49 -05:00
Jay Berkenbilt
b3cfa1010f
Merge pull request #902 from m-holger/od
Refactor creation of object descriptions
2023-02-18 17:49:18 -05:00
Jay Berkenbilt
e4e03e9ac1
Merge pull request #890 from m-holger/jpsp
Eliminate the use of shared pointers in JSONParser
2023-02-18 17:43:02 -05:00
m-holger
07bb5c3dd6 Overload QPDF_Null::create to take a child object description 2023-02-18 08:35:45 +00:00
m-holger
1496472e1c Add method QPDFValue::setChildDescription 2023-02-18 08:35:45 +00:00
m-holger
3df4ce6d1a Initialize QPDF::JSONReactor data members 2023-02-18 08:34:50 +00:00
m-holger
da14ab4dc7 Move definition of QPDF::JSONReactor into QPDF_json
Allow access to private header files when defining data members.
2023-02-18 08:33:08 +00:00
m-holger
dab27c9bb3 Refactor setting of object descriptions in QPDF::JSONReactor 2023-02-18 08:33:08 +00:00
m-holger
fe74f28dc4 Refactor QPDFValue::setDefaultDescription 2023-02-18 08:33:08 +00:00
m-holger
f989de1bd7 Remove restriction that only owned objects can have descriptions 2023-02-18 08:33:08 +00:00
m-holger
32907fc14c Change type of QPDFValue::object_description to std::shared_ptr<std::variant>
Also, name the type QPDFValue::Description.
2023-02-18 08:33:08 +00:00
m-holger
d58ec90310 Un-inline QPDFValue::getDescription 2023-02-18 08:33:08 +00:00
m-holger
d80b63c3c0 Refactor JSON type checks 2023-02-11 15:44:03 -05:00
m-holger
deb1c33086 Replace strchr in QPDF_Name::normalizeName 2023-02-05 08:29:21 -05:00
m-holger
3ee552fec5 Replace strchr in QPDFTokenizer::is_delimiter 2023-02-05 08:29:21 -05:00
m-holger
b6f048546f Eliminate the use of shared pointers in JSONParser 2023-02-05 12:46:38 +00:00
m-holger
f6c9019597 Add new methods JSONParser::append and ignore
Reduce boilerplate and increase efficiency by avoiding setting and
branching on action and ready in getToken.
2023-02-05 12:44:38 +00:00
m-holger
415e67951b Refactor JSON::encode_string 2023-02-04 15:06:43 -05:00
m-holger
d3152869b6 In JSONParser::getToken handle structural and space chars early 2023-02-04 15:00:21 +00:00
m-holger
ee32235f54 In JSONParser::getToken handle legal control chars early
Also, reject them in strings.
2023-02-04 15:00:21 +00:00
m-holger
f5b7448a27 Extend scope of JSONParser::numberError and rename tokenError
Handle all incomplete token type errors in tokenError.
2023-02-04 14:55:49 +00:00
m-holger
5ac6a12e0a In JSONParser::getToken reject illegal control characters 2023-02-04 14:55:49 +00:00
m-holger
1b89e7684e Remove redundant template toO in JSON 2023-02-04 14:06:26 +00:00
m-holger
98d9ae51fc Integrate JSONParser::decode_string into getToken 2023-02-04 14:06:26 +00:00
m-holger
320245e0d1 In JSONParser::getToken decode escaped chars inside state ls_backslash
(except '\\' and '\uXXXX')
2023-02-04 14:06:26 +00:00
m-holger
cee746fc15 In JSONParser::getToken avoid copying '"' characters in strings 2023-02-04 14:06:26 +00:00
m-holger
a9a0667904 Make JSONParser::getToken responsible for decoding strings 2023-02-04 14:06:26 +00:00
m-holger
126dd31cad In JSONParser combine stacks 2023-02-04 13:53:23 +00:00
m-holger
6748bd33f7 In JSONParser::handleToken remove next_state 2023-02-04 13:53:23 +00:00
m-holger
29093a167b In JSONParser::handleToken refactor container creation 2023-02-04 13:53:23 +00:00
m-holger
a39043f65e In JSONParser::handleToken avoid creating JSON objects for dictionary keys 2023-02-04 13:53:23 +00:00
m-holger
f2e46c20b6 In JSONParser::handleToken move remaining validations into second switch statement 2023-02-04 13:53:23 +00:00
m-holger
0de032bcdd In JSONParser::handleToken simplify setting of start and end 2023-02-04 13:53:22 +00:00
m-holger
77ceebd6c9 In JSONParser::handleToken move processing for ls_end_array and ls_end_dict into switch statement 2023-02-04 13:53:22 +00:00
m-holger
a7338ab15a In JSONParser::handleToken move processing for ls_colon and ls_comma into switch statement 2023-02-04 13:53:22 +00:00
m-holger
4dba3c95dd In JSONParser::handleToken move validation for ls_colon etc into switch statement 2023-02-04 13:53:22 +00:00
m-holger
6f94a3a89a In JSONParser::handleToken move string decoding into switch statement 2023-02-04 13:53:22 +00:00
m-holger
fcc123a62a Avoid copying delimiters in JSONParser::getToken 2023-02-04 13:53:22 +00:00
m-holger
bb89a60320 Add data member JSONParser::token_start 2023-02-04 13:52:55 +00:00
m-holger
39dfd305c8 In JSONParser add lexer states for delimiters 2023-02-04 13:44:39 +00:00
m-holger
1e0ab79aec Remove redundant JSONParser::before_point etc 2023-02-01 14:19:08 +00:00
m-holger
83f972ceda Refactor end of input handling in JSONParser 2023-02-01 14:18:57 +00:00
m-holger
8fd6e1c5b2 Refactor handling of ls_number in JSONParser::getToken
Reflect that the ls_number case only handles the digits after an 'e'.

Also, change state to ls_number for all 'ready' numbers.
2023-02-01 14:18:39 +00:00
m-holger
6ea543e6c7 In JSONParser add lex_state ls_number_e_sign 2023-02-01 14:12:32 +00:00
m-holger
04333bbc20 In JSONParser add lex_state ls_number_e
Also, allow 'E' as alternative to 'e'.
2023-02-01 14:09:39 +00:00
m-holger
972ebca505 In JSONParser add lex_state ls_number_after_point 2023-02-01 14:01:57 +00:00
m-holger
cdd1f0a9f6 In JSONParser add lex_state ls_number_point
Also. remove '.' as  starting char in lsTop.
2023-02-01 14:01:57 +00:00
m-holger
bfda62aeeb In JSONParser add lex_state ls_number_before_point 2023-02-01 14:01:57 +00:00
m-holger
08e768909d In JSONParser add lex_state ls_number_leading_zero 2023-02-01 14:01:57 +00:00