-
Lazily load MD5 and RC4 once in the life of the program. Only load the legacy provider if RC4 is actually being used.
-
From time to time, someone has a problem because their build is grabbing an old version of qpdf header files that are installed somewhere on their system. I am hoping this will put an end to that.
-
Some new symbols were exported.
-
These markers are being added for nested classes that are already marked with QPDF_DLL_CLASS. They don't make any different on Linux, but they matter on Windows.
-
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.
-
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.
-
Add copy_if_fallback and explain how it differs from copy_if_shared.
-
* Just removing a header file would cause build errors with no hint as to what happened. This way, people get a warning rather than error for the life of qpdf 11, and the warning tells them what to do. * This avoids build surprises resulting from having two versions of QPDF headers installed at once. If you were building code out of a checkout of qpdf but had an older version installed on your system, if your code included <qpdf/QPDFObject.hh>, everything would work, but then your code would break without QPDFObject.hh later.
-
This results in measurable performance improvements to packaged binary libqpdf distributions. QTC remains available for library users and is still selectively enabled in CI.
-
Remove any ambiguity around whether old or new value is being returned.
-
When there is no context for writing output or error messages, use the default logger.
-
This includes the output PDF, streams from --show-object and attachments from --save-attachment. This also enables --verbose and --progress to work with saving to stdout.