-
Move all array-specific methods to new class qpdf::Array.
-
Move all dictionary specific methods to BaseDictionary. Create new subclass Dictionary to allow QPDFObjectHandle to access the moved methods.
-
Replace data member oh with accessors. Remove redundant overloads from QPDFObjGen::set.
-
The new class is only usable as base classes and does not support direct instantiation or upcasting. Add operators to convert to bool, QPDFObjectHandle and QPDFObjGen. Derive QPDFObjectHandle from BaseHandle and make final.
-
Tune JSON::JSON_string
-
Remove member encoded and encode strings only when required. Encoded is only used when writing JSON. Since most JSON writing is now done on the fly without creating a JSON representation, creating and storing the encoded string in almost all cases no longer serves any purpose.
-
Push mode is not used by qpdf and is not tested. It is difficult to see a legitimate use for it. Continuing to support it creates unnecessary constraints and effort when adapting the tokenizer.
-
If duplicate keys are encountered, overwrite earlier values with the latest value.
-
Except for virtual functions to avoid the need for users to update code.
-
Also, move Buffer::Members definition to Buffer.cc
-
Removing it was ABI-breaking. I must have done it forgetting Pl_DCT.hh was in the public API.
-
This improves indentation of long strings. This commit also fixes some trailing whitespace in ChangeLog.
-
Fixes oss-fuzz case 394129398. Issue arose from chaining multiple runlength filters and inflating a compressed stream of ~100 bytes to several gigabytes. There is no obvious fix without imposing an arbitrary implementation limit and therefore potentially excluding valid PDF files.
-
This requires a special build option.
-
This reverts commit ff2a78f579ebdd06b417e34260a17dba06e71137, reversing changes made to 8f54319f7a6514110f4b05cbbf1cb1c9fc8cb6a0.
-
This reverts commit c648b9a018105a3c30b3e7f3c5f8a058d3ddd92c, reversing changes made to 12b67a3227df6b6df3a4f5f098e11cce173ff7d5.
-
Also, tidy pipeline constructors and make subclasses final where possible.
-
Add new commands --remove-metadata and --remove-info
-
Also, delay adjustments for compressed objects until needed by linearization checks.