m-holger
4d37389bef
Refactor QPDF_Array::eraseItem and rename to erase
2023-04-01 13:56:16 +01:00
m-holger
1bb23d0545
Refactor QPDF_Array::insertItem and rename to insert
2023-04-01 13:56:10 +01:00
m-holger
cedb37caa1
Refactor QPDF_Array::appendItem and rename to push_back
2023-04-01 13:55:14 +01:00
m-holger
c6179da961
Add new method QPDFValue::checkOwnership
2023-04-01 13:54:44 +01:00
m-holger
a1a8f35b63
Refactor QPDF_Array::getItem and rename to at
2023-04-01 13:54:17 +01:00
m-holger
51d350c98c
Inline QPDF_Array::getNItems and rename to size
2023-04-01 12:25:15 +01:00
m-holger
e6db8ddeba
Change SparseOHArray index type to int and elements type to map
...
There are no reasons other than historical to use size_t.
On balance, using map is more efficient. Hold shared pointers to
QPDFObjects rather than QPDFObjectHandles for consistencey with
QPDF_Array.
2023-04-01 12:25:06 +01:00
m-holger
ea5164938e
Remove temporary OHArray
2023-04-01 12:24:52 +01:00
m-holger
9e30de8032
Remove temporary OHArray::erase, insert and copy
2023-03-29 13:15:39 +01:00
m-holger
0db65e7912
Remove temporary OHArray::disconnect and setAt
2023-03-29 13:06:26 +01:00
m-holger
1367226002
Remove temporary OHArray::at
2023-03-29 13:00:28 +01:00
m-holger
ad2875a4aa
Remove temporary OHArray::size, append and remove_last
...
Also, add const overload of QPDFObjectHandle::getObj
2023-03-29 12:34:07 +01:00
m-holger
8fdc3f0964
Optimize QPDFParser for non-sparse QPDF_Arrays
...
Stop using nullptr to represent null objects.
Count null array elements and trigger creation of sparse arrays if null count is
greater than 100.
2023-03-29 12:10:19 +01:00
m-holger
18c1ffe0df
Change underlying data structure of QPDF_Array in non-sparse mode to std::vector
2023-03-29 12:01:24 +01:00
m-holger
38cf7c1628
Add separate sparse mode to QPDF_Array
...
Add temporary clone of SparseOHArray to implement non-sparse mode.
2023-03-29 11:48:21 +01:00
m-holger
de29fd56c4
Remove redundant QPDF_Array::addExplicitElementsToList
2023-03-29 10:47:37 +01:00
m-holger
5f4f553c35
Refactor QUtil::hex_decode
2023-03-23 20:25:42 +00:00
m-holger
0795b6952b
Add new function QUtil::hex_decode_char
2023-03-23 20:23:37 +00:00
m-holger
ce66604290
Tune indentations in QPDFWriter::unparseObject
...
Set indent differently for qdf and non-qdf files.
Combine with preceding newline for qdf files.
2023-03-21 10:59:05 +00:00
Jay Berkenbilt
f89196b6c8
Merge pull request #814 from m-holger/check
...
Warn if catalog type entry is invalid (fixes #810 )
2023-03-20 06:59:47 -04:00
m-holger
d8acccd5c8
Warn if catalog type entry is invalid ( fixes #810 )
2023-03-19 20:07:53 +00:00
m-holger
9c7aa2cbbd
Code tidy re-throwing of exceptions
...
Avoid copying exceptions.
2023-03-19 17:27:39 +00:00
Jay Berkenbilt
fe36ef141c
Merge pull request #924 from cdosborn/main
...
Improve --optimize-images to find images nested within XObjects
2023-03-18 15:34:27 -04:00
Jay Berkenbilt
a2c7471e66
Merge pull request #920 from m-holger/fixqdf_rl
...
Refactor QdfFixer::processLines
2023-03-18 13:59:47 -04:00
Jay Berkenbilt
84e29026f5
Merge pull request #926 from m-holger/omap
...
Remove redundant parameter depth from QPDF::updateObjectMaps
2023-03-18 13:28:19 -04:00
Jay Berkenbilt
b480f7186f
Merge pull request #928 from m-holger/wr_og
...
Add new data member QPDFWriter::Members::root_og
2023-03-18 13:28:12 -04:00
m-holger
b7791566f6
Add new data member QPDFWriter::Members::root_og
...
Also, uninitialize QPDFWriter::Members members.
2023-03-17 11:19:48 +00:00
Connor Osborn
8de2497a8f
Improve --optimize-images to find images nested within XObjects
2023-03-15 23:27:05 -04:00
m-holger
5af32b53a3
Remove redundant parameter depth from QPDF::updateObjectMaps
2023-03-15 17:50:17 +00:00
m-holger
43d9ee56ea
Split QPDFJob::run into createQPDF and writeQPDF
...
Also, change QPDFJob to use unique_ptr<QPDF> instead of shared pointers.
2023-03-09 17:21:55 +00:00
m-holger
4ee6ff0a73
Add new procedure QUtil::read_file_into_string
2023-03-08 21:00:26 +00:00
m-holger
b27be3ed27
Remove redundant parameter from QPDFJob::handlePageSpecs and doSplitPages
2023-03-05 09:01:49 -05:00
Jay Berkenbilt
c304bf737b
Spell check
2023-02-25 14:19:38 -05:00
Jay Berkenbilt
c99a1ecd4f
Update copyright to 2023
2023-02-25 14:18:13 -05:00
Jay Berkenbilt
78f7dc9fe8
Overlay/underlay: capture origial page as form XObject ( fixes #904 )
2023-02-25 12:58:51 -05:00
Jay Berkenbilt
48bacbf2e6
Refactor overlay/underlay in preparation for change
2023-02-25 11:25:28 -05:00
m-holger
f099246b52
Refactor removal of reserved objects in QPDF::JSONReactor
...
At the end of importing a JSON file, scan the object cache for reserved
objects and replace with null objects.
2023-02-19 16:49:09 +00:00
m-holger
7ae1e80fd6
Change JSON::Members::value to std::unique_ptr
2023-02-19 12:06:36 +00:00
m-holger
a4f3dddb79
Change JSON_dictionary and JSON_array to store JSON objects rather than std::shared_ptr<JSON_value>
...
Recognise that JSON objects are effectively shared pointers to JSON_value.
2023-02-19 12:05:53 +00:00
Jay Berkenbilt
0f97e98203
Handle linearization warnings as proper warning ( fixes #851 )
2023-02-18 19:38:49 -05:00
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
m-holger
cba1c352e3
In JSONParser add lex_state ls_number_minus
2023-02-01 14:01:57 +00:00
m-holger
b6b4d3b299
Add new method JSONParser::numberError
2023-02-01 14:01:57 +00:00
m-holger
1787d85096
Refactor JSON::addDictionaryMember
2023-01-28 14:49:37 -05:00
m-holger
dce43d4f7f
Refactor JSON::JSON_string::write
2023-01-28 14:49:32 -05:00
m-holger
4c914aee96
Refactor JSON::writeDictionaryKey
2023-01-28 14:49:32 -05:00
m-holger
3dde66ddcd
Refactor JSON::writeNext
2023-01-28 14:49:32 -05:00
m-holger
dfa7d414f5
Refactor JSON::writeClose
2023-01-28 14:49:32 -05:00
Jay Berkenbilt
1308c45090
Implement --remove-restrictions ( fixes #833 )
2023-01-28 13:42:19 -05:00
Jay Berkenbilt
fe11f13d63
Add stub for --remove-restrictions
2023-01-28 13:24:45 -05:00
Jay Berkenbilt
acfc9db051
QPDFJob: switch to C++11-style field initializers
2023-01-28 13:24:30 -05:00