diff --git a/ChangeLog b/ChangeLog index fe5e925e..551d6d03 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2022-09-01 Jay Berkenbilt + + * More optimizations and cleanup from m-holger (#726, #730) + including major refactor of QPDF's internal representations of + objects. In addition to a large performance improvement, this also + made it possible for QPDFObjectHandle::getOwningQPDF() to return a + null pointer if the owning QPDF had been destroyed. (A more + complete solution to this problem will be introduced for qpdf 12.) + This work also paves the way for a future alternative to + QPDFObjectHandle that is more idiomatic C++ and has greater type + safety. + 2022-08-31 Jay Berkenbilt * From m-holger (#729): refactor QPDF's parser into a new diff --git a/manual/release-notes.rst b/manual/release-notes.rst index 01a19249..54e85b71 100644 --- a/manual/release-notes.rst +++ b/manual/release-notes.rst @@ -12,7 +12,7 @@ For a detailed list of changes, please see the file - Many performance enhancements have been added. In developer performance benchmarks, gains on the order of 20% have been observed. Most of that work, including major optimization of - qpdf's lexical layer, was done by M. Holger. + qpdf's lexical and parsing layers, was done by M. Holger. - Replacement of ``PointerHolder`` with ``std::shared_ptr`` @@ -178,6 +178,12 @@ For a detailed list of changes, please see the file ``replaceKeyAndGetOld``, a ``null`` object if the object was not previously there. + - The method ``QPDFObjectHandle::getOwningQPDF`` now returns a + null pointer (rather than an invalid pointer) if the owning + ``QPDF`` object has been destroyed. This situation should + generally not happen for correct code, but at least the + situation is detectible now. + - Add new ``Pipeline`` methods to reduce the amount of casting that is needed: @@ -247,6 +253,9 @@ For a detailed list of changes, please see the file some additional caching to reduce the overhead of repeatedly reading environment variables at runtime. + - Lots of code cleanup and refactoring work was contributed in + multiple pull requests by M. Holger. + 10.6.3: March 8, 2022 - Announcement of upcoming change: