-
- 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.
-
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.
-
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
-
Move all stream-specific methods to new class qpdf::Stream
-
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.