-
... and use it in QPDFWriter and QPDF::generateHintStream.
-
Also, remove redundant QPDFWriter::writeBuffer.
-
Also, - use Pl_Discard when only checking whether stream is filterable - get last char directly from output string
-
... containing objects with no white-space between them. To enforce the rule that objects end at the start-offset of the next object, each object is parsed in it own object stream. To facilitate this, a new private API input source is::OffsetBuffer has been added which only contains the object but reports offsets relative to the start of the object stream. This is adapted from OffsetInputSource by changing the direction of the offset, endowing it with its own BufferInputSource and striooing out checks duplicated in BufferInputSource. Fixes the expected failure in the test case added in #1266.
-
Only build strings when needed.
-
Refine recovery from missing startxref (fixes #1335)
-
Refactor xref table reconstruction (Fixes #1362)
-
Improve support for reading into std::string objects.
-
Move qpdf private inline methods to private header file.
-
If startxref cannot be found in the last 1024 try finding it in the whole file and check whether it is valid.
-
Split reconstruction into three passes - scanning of input for objects and trailer, insertion of objects into the xref table, and loading the trailer. This allows insertion to take place in the usual reverse order and removes the need for a separate insertReconstructedXrefEntry method. It also allows trailer to be tried from most recent to oldest. Ignore any found trailers without /Root entry.
-
There simply is no chance Members will be required during the life of qpdf 12.
-
...and include ObjectHandle.hh first in QPDFObjectHandle so there is at least one place (other than check_abi get-sizes) that includes it first.
-
- Add missing export for operator QPDFObjGen. - Fix handling of indirect references. The use of the type_code method in various switch statements bypassed the special handling of ::ot_reference objects. Replace with new method resolved_type_code. Add tests for ::ot_reference objects.
-
Enhance error checking of object stream object ids and offsets
-
The original test file contains multiple entries with id 0 and offset 0. One entry has been modified such that the id is valid (6). Object streams with invalid offsets are a source of unreproduceable oss-fuzz time-outs.
-
Also remove some shared pointers and use std::string instead of Pl_Buffer in Pl_QPDFTokenizer.
-
Update release notes and reverse making QPDFObjectHandle final
-
and delay to qpdf 13 to give users notice of the change.
-
Remove remaining QPDFTokenizer private methods. Remove QPDFTokenizer privileged access to Tokenizer.
-
Add new private Util.hh header to define inline functions and expose as ordinary functions in QUtil.
-
- Remove unnecessary QPDF_DLLs - make deleted constructors public - move some comments to support tooltips - modernise some constructors and destructors - change some member shared pointers to unique pointers
-
Clean up comments in QPDFObject.hh