2
1
mirror of https://github.com/qpdf/qpdf.git synced 2024-12-22 10:58:58 +00:00

Documentation fix

Remove paragraph about traversal during destruction since this is still necessary with the
new implementation.
This commit is contained in:
Jay Berkenbilt 2022-09-10 07:39:25 -04:00 committed by GitHub
parent 8a3cdfd2af
commit 93f176a2a0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -398,7 +398,7 @@ Prior to qpdf 11, the functionality of the ``QPDFValue`` and
``QPDFObject`` classes were contained in a single ``QPDFObject`` ``QPDFObject`` classes were contained in a single ``QPDFObject``
class, which served the dual purpose of being the cache entry for class, which served the dual purpose of being the cache entry for
``QPDF`` and being the abstract base class for all the different PDF ``QPDF`` and being the abstract base class for all the different PDF
object types. The behavior was nearly the same, but there were a few object types. The behavior was nearly the same, but there were some
problems: problems:
- While changes to a ``QPDFObjectHandle`` through mutation were - While changes to a ``QPDFObjectHandle`` through mutation were
@ -412,11 +412,6 @@ problems:
replace its internal ``QPDFObject`` pointer. This added overhead to replace its internal ``QPDFObject`` pointer. This added overhead to
every indirect object access even if no objects were ever changed. every indirect object access even if no objects were ever changed.
- When a ``QPDF`` object was destroyed, it was necessary to
recursively traverse the structure of every object in the file to
break any circular references. For complex files, this significantly
increased the cost of destroying ``QPDF`` objects.
- When a ``QPDF`` object was destroyed, any ``QPDFObjectHandle`` - When a ``QPDF`` object was destroyed, any ``QPDFObjectHandle``
objects that referenced it would maintain a potentially invalid objects that referenced it would maintain a potentially invalid
pointer as the owning ``QPDF``. In practice, this wasn't usually a pointer as the owning ``QPDF``. In practice, this wasn't usually a
@ -426,8 +421,8 @@ problems:
software to do its own bookkeeping to ensure that an object's owner software to do its own bookkeeping to ensure that an object's owner
was still valid. was still valid.
All of these problems were effectively solved by splitting These problems were solved by splitting ``QPDFObject`` into
``QPDFObject`` into ``QPDFObject`` and ``QPDFValue``. ``QPDFObject`` and ``QPDFValue``.
.. _casting: .. _casting: