diff options
author | Jay Berkenbilt <ejb@ql.org> | 2022-09-08 14:03:57 +0200 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2022-09-08 16:36:39 +0200 |
commit | dba61da1bfb7e4d74c723f369d1c017df9707a14 (patch) | |
tree | 04c51f86dc066c710c23423fe178e051b20b49d9 /libqpdf/QPDFValueProxy.cc | |
parent | 264e25f391f83bcbeb60590f18ff96719b086454 (diff) | |
download | qpdf-dba61da1bfb7e4d74c723f369d1c017df9707a14.tar.zst |
Create a special "destroyed" type rather than using null
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.
Diffstat (limited to 'libqpdf/QPDFValueProxy.cc')
-rw-r--r-- | libqpdf/QPDFValueProxy.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libqpdf/QPDFValueProxy.cc b/libqpdf/QPDFValueProxy.cc index 461d8177..befaaf8b 100644 --- a/libqpdf/QPDFValueProxy.cc +++ b/libqpdf/QPDFValueProxy.cc @@ -1,6 +1,7 @@ #include <qpdf/QPDFValueProxy.hh> #include <qpdf/QPDF.hh> +#include <qpdf/QPDF_Destroyed.hh> void QPDFValueProxy::doResolve() @@ -8,3 +9,10 @@ QPDFValueProxy::doResolve() auto og = value->og; QPDF::Resolver::resolve(value->qpdf, og); } + +void +QPDFValueProxy::destroy() +{ + // See comments in reset() for why this isn't part of reset. + value = QPDF_Destroyed::getInstance(); +} |