-
Preparing to change the class name back to QPDFObject
-
I decided that it's actually fine to copy a direct object to another QPDF. Even if we eventually prevent a QPDFObject from having multiple parents, this could happen if an object is moved.
-
When a QPDF is destroyed, changing indirect objects to direct nulls makes them effectively disappear silently when they sneak into other places. Instead, we should treat this as an error. Adding a destroyed object type makes this possible.
-
This is in preparation for restoring a QPDFObject.hh to ease the transition on qpdf_object_type_e. This commit was created by * Renaming QPDFObject.cc and QPDFObject.hh * Replacing QPDFObject\b with QPDFValueProxy (where \b is word boundary) * Running format-code * Manually resorting files in libqpdf/CMakeLists.txt * Manually refilling the comment in QPDF.hh near class Resolver
-
On destruction of the QPDF object replace all indirect object references with direct nulls. Remove all existing code to release resolved references. Fixes performance issue due to interaction of resetting QPDFValue::qpdf and og members and prior code.
-
Now that QPDFObject.hh is out of the public API, we don't really need QPDFObjAccessor. Also, the function didn't have to be virtual anymore.
-
This required moving some newly inlined functions back to the cc file, but that seems to have had no measurable performance impact.
-
Also, modify QPDFObject::swapWith to update the ObjGens of the swapped objects. Modify QPDF::newIndirect and QPDF::updateCache to keep object ObjGens up to date.
-
Add a new obj_cache entry or update an existing entry in place.
-
Also change QPDF::replaceObject and QPDF::swapObjects such that the QPDFObject assigned to an og in the obj_cache is never replaced; only QPDFObject::value is updated.
-
Centralise casting of QPDFObjects and reduce repeated dereferencing.
-
Also, inline method and add optional parameter error_msg.
-
Code tidy: remove redundant calls to smart_ptrs get() method
-
For consistency with similar methods, e.g. replaceObject.
-
Also, change test for QPDFObjGen::isIndirect to obj != 0. Delete comment from commit afd35f9.
-
Use 'QPDFObjGen const&' instead of 'int, int' in signature.
-
Change method signatures to use QPDFObjGen. Use QPDFObjGen methods where possible. Remove redundant QPDF::objGenToIndirect.
-
Change method signature to use QPDFObjGen.
-
Change method signature to use QPDFObjGen.
-
Also, revert inlining of unparse and operator << from commit 4c6640c in order to avoid exposing QUtil.
-
Rather than using object id -1 to mean "don't care", use object ID 0, and clarify the difference between that use and indication of a direct object.
-
Move responsibility for creating shared pointers to objects and cloning from QPDFObjectHandle to QPDFObject.
-
We need to know whether pushInheritedAttributesToPage or getAllPages have been called when generating JSON output. When reading the JSON back in, we have to call the same methods so that object numbers will line up properly.
-
Remove variables obsoleted by commit 4f24617.