m-holger
b15d0bf6e1
Add new method QPDF_Stream::writeStreamJSON
...
(Replacing the temporary implementation from the last commit.)
2024-02-16 11:37:50 +00:00
m-holger
920e929864
Reimplement QPDF_Stream::getStreamJSON in terms of writeStreamJSON
...
writeStreamJSON is a temporary implementation minimally adapted from
getStreamJSON.
2024-02-16 11:07:20 +00:00
m-holger
9589fad1e5
Reimplement QPDFObjectHandle::getJSON in terms of writeJSON
2024-02-16 11:00:20 +00:00
m-holger
431987475b
Add new method QPDF_Name::analyzeJSONEncoding
...
Provide a custom method to check whether a name is valid utf8. Integrate
checking for characters that need to be escaped in JSON.
2024-02-16 10:52:44 +00:00
m-holger
e2737ab646
Add new writeJSON methods
...
Create an alternative to getJSON to allow an object handle to be written as JSON without the overhead of creating a JSON object.
2024-02-16 10:51:25 +00:00
m-holger
9e90007a4a
Add new private class JSON::Writer
...
Create a simple utility class for writing JSON to a pipeline.
2024-02-16 10:32:41 +00:00
Jay Berkenbilt
b1b789df42
Detect end of input inside an unfinished JSON string
2024-02-06 15:30:29 -05:00
Jay Berkenbilt
3490090fbc
Detect JSON object whose value is an indirect object
2024-02-06 15:12:41 -05:00
Jay Berkenbilt
7ae095fa09
Fix JSON parser error found by fuzz
2024-02-04 17:27:49 -05:00
Jay Berkenbilt
cb0f390cc1
Handle parse error stream data ( fixes #1123 )
...
A parse error in stream data in which stream data contained a nested
object would cause a crash because qpdf was not correctly updating its
internal state. Rework the QPDF json reactor to not be sensitive to
parse errors in this way.
2024-02-04 17:27:49 -05:00
Jay Berkenbilt
7caa9ddf5a
Format code
2024-02-04 16:12:01 -05:00
Jay Berkenbilt
532cc58d7e
Merge pull request #1138 from m-holger/j_key
...
Allow "n:/pdf-syntax" JSON syntax for dictionary keys
2024-02-03 13:09:31 -05:00
Jay Berkenbilt
b1ec5ba883
Merge branch 'fz' of github.com:m-holger/qpdf into fz
2024-02-03 11:21:35 -05:00
m-holger
8ff20b0089
Allow "n:/pdf-syntax" JSON syntax for dictionary keys
2024-01-29 13:22:58 +00:00
m-holger
d946ad6c30
In Pl_TIFFPredictor::processRow buffer output
2024-01-27 17:16:53 +00:00
m-holger
20ca1e8644
In Pl_TIFFPredictor::processRow optimize 8 bits_per_sample case
2024-01-27 12:04:36 +00:00
m-holger
b7abb12f55
In Pl_TIFFPredictor::processRow remove special case for first column
2024-01-26 20:56:21 +00:00
m-holger
c01fc3c2ae
In Pl_TIFFPredictor::processRow avoid repeated vector allocation
...
Also, modernize for loop.
2024-01-26 20:51:29 +00:00
m-holger
2e8b5f290c
In Pl_TIFFPredictor avoid repeated calls to getNext
2024-01-26 20:46:38 +00:00
m-holger
73dec35209
Simplify address arithmetic in Pl_TIFFPredictor
2024-01-26 20:44:07 +00:00
m-holger
5b7a44e1cc
In Pl_TIFFPredictor remove calls to memcpy
...
Instead of overwriting cur_row.data() use clear and insert.
2024-01-26 20:25:15 +00:00
m-holger
902fd6df71
Change Pl_TIFFPredictor::cur_row to std::vector<unsigned char>
2024-01-26 20:20:16 +00:00
Jay Berkenbilt
4660e23262
Merge pull request #1128 from m-holger/reconstruct
...
Tighten checks for invalid indirect references during xref reconstru…
2024-01-20 12:43:07 -05:00
m-holger
b6a2b5d3c1
Handle default-constructed JSON objects
2024-01-18 10:06:43 +00:00
m-holger
f0343565ed
Tighten checks for invalid indirect references during xref reconstruction
2024-01-17 14:11:57 +00:00
m-holger
ed43691bf3
Tighten checks for invalid indirect references in QPDFParser
2024-01-17 13:15:13 +00:00
m-holger
6e3b7982db
Fix incorrect handling of invalid negative object ids
...
Fix two errors introduced in #1110 and #1112 . Since
#1110 , encountering the invalid indirect reference #1110
-2147483648 n R produces an integer underflow which, if
undetected, immediately trigger a logic error. Since
#1112 , object -1 0 R may be incorrectly identified as
an earlier generation of itself and deleted,
invalidating a live iterator.
2024-01-17 10:39:06 +00:00
Jay Berkenbilt
37cf128501
Remove extraneous blank lines
2024-01-15 11:07:49 -05:00
m-holger
dca5927ba0
Tweak Handlers::json_handlers
...
Use std::vector instead of list and move shared pointers
2024-01-15 15:18:55 +00:00
m-holger
b85a590bc5
Tweak Handlers::beginUnderOverlay and beginPages
2024-01-15 15:03:33 +00:00
m-holger
a41b789995
Add new method JSON::getDictItem
2024-01-15 15:02:52 +00:00
Jay Berkenbilt
ebb10f3256
Fix null pointer issue on array copy
2024-01-12 08:05:22 -05:00
Jay Berkenbilt
90a97bf4ef
Include filename in verbose output for overlay/underlay
2024-01-11 06:13:57 -05:00
Jay Berkenbilt
5b2e543089
Honor repeated overlay/underlay
2024-01-11 06:13:57 -05:00
Jay Berkenbilt
6cf04b0a88
Allow repetition of overlay/underlay
...
This is just QPDFJob wiring.
2024-01-11 06:13:57 -05:00
Jay Berkenbilt
0161f62e38
QPDFJob JSON: allow single item in place of array
2024-01-11 06:13:57 -05:00
Jay Berkenbilt
7de0b3f3c0
JSONHandler: add fallback handler support
2024-01-11 06:13:57 -05:00
Jay Berkenbilt
12f7a4461b
Handle pages/under/overlay JSON file in begin
...
...since they have to be handled before other options. It was working
because, in both cases, `file` was alphabetically before the other
keys, but this implementation gives a stronger guarantee.
2024-01-10 16:45:14 -05:00
Jay Berkenbilt
9c723aeb56
Allow --file with --overlay and --underlay
2024-01-10 16:44:46 -05:00
Jay Berkenbilt
34f013c1be
Allow --file and --range with --pages
...
Accept --file and --range as named parameters in additional to
allowing positional arguments. This is in preparation for adding
additional flags.
2024-01-10 16:44:17 -05:00
Jay Berkenbilt
20a134826c
Fix arg parsing check with --collate
...
The check for the number of items was in the wrong place.
2024-01-10 06:49:31 -05:00
m-holger
5e9de5cd50
Tune handling of sparse arrays in QPDF_Array
...
Sparse arrays are rare. Dynamically create the variables needed to manage
them only when needed.
2024-01-10 09:36:18 +00:00
m-holger
e28625144d
Tweak QPDF::getCompressibleObjGens
2024-01-08 10:55:51 -05:00
Jay Berkenbilt
adb866efd3
Fix error from older gcc versions
2024-01-08 10:55:51 -05:00
m-holger
8715d6a693
Tweak QPDF::replaceObject
2024-01-08 11:54:33 +00:00
m-holger
5641832e54
Tweak QPDF::read_xref
2024-01-08 11:43:57 +00:00
Jay Berkenbilt
07f6c635a9
Bug fix: treat old generations of reused objects as null
2024-01-07 17:16:14 -05:00
Jay Berkenbilt
df61f3a6c6
Improve getCompressibleObjGens fix to handle gen > 0
2024-01-07 15:22:04 -05:00
m-holger
ba477e0b33
Tune QPDF::getCompressibleObjGens
...
Change set visited to std::vector<bool>
2024-01-07 17:39:40 +00:00
m-holger
6195499598
Tune QPDF::getCompressibleObjGens
...
Swap front and back, and change queue from list to vector
2024-01-07 16:39:03 +00:00