-
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.
-
The last offset is irrelevant to not being able to find /Root.
-
Where not possible, use "auto" to get the iterator type. Editorial note: I have avoid this change for a long time because of not wanting to make gratuitous changes to version history, which can obscure when certain changes were made, but with having recently touched every single file to apply automatic code formatting and with making several broad changes to the API, I decided it was time to take the plunge and get rid of the older (pre-C++11) verbose iterator syntax. The new code is just easier to read and understand, and in many cases, it will be more effecient as fewer temporary copies are being made. m-holger, if you're reading, you can see that I've finally come around. :-)
-
Change .clang-format and commit automated changes from a fresh run of format-code