-
This reverts commit bb045907a043b5c6de9fb804ff11087333747329.
-
Split QPDF.cc into QPDF.cc and QPDF_objects.cc
-
Move methods responsible for loading or keeping track of objects to QPDF_objects.cc. The split was part of the reverted #1297. Reintroducing it now makes it easier/safer to keep the work to refactor the xref and object tables in sync with main.
-
Refine recovery from missing startxref (fixes #1335)
-
Refactor xref table reconstruction (Fixes #1362)
-
Refactor InputSource
-
linearization parameter dictionary. Spec states that that linearization parameter dictionary must be the first object.
-
Improve support for reading into std::string objects.
-
Move qpdf private inline methods to private header file.
-
Minor code tidy and update .git-blame-ignore-revs
-
Ignore reverted #1272, #1289, #1297 and #1301. Ignore last two commits.
-
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.
-
I always think of doing this after I have already tagged the release.
-
There simply is no chance Members will be required during the life of qpdf 12.
-
Figuring out which classes are part of the public API by using library symbols is fragile (dependent on specific compiler optimizations) and unreliable (misses some inline things). Instead, use castxml, a tool that parses C++ to an abstract syntax tree and generates XML, to get a reliable accounting of public classes and their sizes.
-
...and include ObjectHandle.hh first in QPDFObjectHandle so there is at least one place (other than check_abi get-sizes) that includes it first.
-
Use BaseHandle::operator QPDFObjGen in examples
-
Fix two BaseHandle bugs
-
- 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.