-
Avoid dynamic casting.
-
Exclude uninitialized, destroyed and reserved objects.
-
Move test for m->linearized outside loop.
-
This creates an output used by emacs lsp-mode.
-
It is common to just read a few objects. Checking extraction of the first page exercises this to make sure we don't accidentally introduce a change that makes that case worse, such as adding an unnecessary traversal of the file, prematurely resolving objects we don't need, etc.
-
A new private overload of QPDF::makeIndirectObject breaks pikepdf's build, so renaming function.
-
…ternal2 and copyObject2
-
copyObject2 repeats a second time what new_obj = QPDFObjectHandle(obj->copy(true)) in shallowCopyInternal2 already did.
-
…ternal2 and copyObject2
-
Have separate versions for unsafeShallowCopy, shallowCopy and makeDirect.
-
Add optional parameter shallow. Change logic errors to runtime errors.