diff options
author | m-holger <m-holger@kubitscheck.org> | 2022-08-02 17:20:24 +0200 |
---|---|---|
committer | m-holger <m-holger@kubitscheck.org> | 2022-08-31 23:47:11 +0200 |
commit | 2a2eebcaea2b27bc86390dac2ee27ad5620f5eda (patch) | |
tree | 3bc8a88d4349bee6275d9f36dd65e8af7773cc2f /libqpdf/QPDFObjectHandle.cc | |
parent | 16841bec32bb4323a60699cf42f0d74ef495b73f (diff) | |
download | qpdf-2a2eebcaea2b27bc86390dac2ee27ad5620f5eda.tar.zst |
Modify newIndirect to set QPDFObjectHandle::obj
Diffstat (limited to 'libqpdf/QPDFObjectHandle.cc')
-rw-r--r-- | libqpdf/QPDFObjectHandle.cc | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc index 8c98c87b..f872e984 100644 --- a/libqpdf/QPDFObjectHandle.cc +++ b/libqpdf/QPDFObjectHandle.cc @@ -21,6 +21,7 @@ #include <qpdf/QPDF_Reserved.hh> #include <qpdf/QPDF_Stream.hh> #include <qpdf/QPDF_String.hh> +#include <qpdf/QPDF_Unresolved.hh> #include <qpdf/SparseOHArray.hh> #include <qpdf/QIntC.hh> @@ -240,13 +241,6 @@ QPDFObjectHandle::QPDFObjectHandle() : { } -QPDFObjectHandle::QPDFObjectHandle(QPDF* qpdf, QPDFObjGen const& og) : - initialized(true), - qpdf(qpdf), - og(og) -{ -} - QPDFObjectHandle::QPDFObjectHandle(std::shared_ptr<QPDFObject> const& data) : initialized(true), qpdf(nullptr), @@ -1953,7 +1947,7 @@ QPDFObjectHandle::newIndirect(QPDF* qpdf, QPDFObjGen const& og) return newNull(); } - return QPDFObjectHandle(qpdf, og); + return QPDFObjectHandle(qpdf, og, QPDF_Unresolved::create()); } QPDFObjectHandle @@ -2553,10 +2547,11 @@ QPDFObjectHandle::dereference() if (!this->initialized) { return false; } - if (this->obj() == nullptr || + if ((this->obj->getTypeCode() == QPDFObject::ot_unresolved) || (getObjectID() && QPDF::Resolver::objectChanged(this->qpdf, getObjGen(), this->obj))) { - obj = QPDF::Resolver::resolve(this->qpdf, getObjGen()); + this->obj = QPDF::Resolver::resolve(this->qpdf, getObjGen()); + } return true; } |