-
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.
-
Deprecate QPDFObjectHandle::parse overload and undeprecate isInitialized
-
Use Tokenizer instead of QPDFTokenizer internally in qpdf
-
Avoid creating new identical descriptions for each content stream token.
-
Also remove some shared pointers and use std::string instead of Pl_Buffer in Pl_QPDFTokenizer.
-
Modernise constructors, make classes final, etc.
-
Update release notes and reverse making QPDFObjectHandle final
-
Move QPDFObject::copy, disconnect, unparse and write_json to BaseHandle
-
and delay to qpdf 13 to give users notice of the change.
-
Refactor QPDFTokenizer
-
Remove remaining QPDFTokenizer private methods. Remove QPDFTokenizer privileged access to Tokenizer.
-
Tidy public header files
-
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
-
Register crypto
-
Clean up comments in QPDFObject.hh
-
Refactor QPDFObject / QPDFObjectHandle