-
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.
-
Lazily load MD5 and RC4 once in the life of the program. Only load the legacy provider if RC4 is actually being used.
-
* Define it even though previous experiments have shown it to be unnecessary since it seems like it may be necessary after all * Add QPDF_DLL_CLASS to QPDFObjectHelper and QPDFDocumentHelper in case there's some future unknown reason why someone may want to have them and/or in case it helps with the weird QPDFNameTreeObjectHelper problem.
-
Avoid representing as PDF Doc encoding any string whose PDF Doc encoding representation starts with a UTF-16 or UTF-8 marker.
-
Base implementation of the buffer on std::basic_string<unsigned char>.
-
An indirect object reference to 0, 0 is invalid. If it appears in the file or is parsed from a string, the parser catches it. This check would only be useful for someone explicitly calling getObject with 0, 0, and that would trigger an error during resolve().
-
This was broken for cross-compilation and has probably been unnecessary for several years now. Also fix extraneous whitespace in related some tests.
-
Replace operator== and operator!=, which were testing for the same underlying object, with isSameObjectAs. This change was motivated by the fact that pikepdf internally had its own operator== method for QPDFObjectHandle that did structural comparison. I backed out qpdf's operator== as a courtesy to pikepdf (in my own testing) but also because I think people might naturally assume that operator== does a structural comparison, and isSameObjectAs is clearer in its intent.
-
Expose functions to the C API to create new loggers and to setLogger and getLogger for QPDF and QPDFJob.