diff options
author | m-holger <m-holger@kubitscheck.org> | 2022-08-12 16:14:11 +0200 |
---|---|---|
committer | m-holger <m-holger@kubitscheck.org> | 2022-09-01 18:09:07 +0200 |
commit | 89061d5b33baa7e8f4e3486d0c7ccf2447500b13 (patch) | |
tree | aac88e38fb22b33ca4b3daaab36a544f6a037bd8 /libqpdf | |
parent | ae6e484e23e4f11878689be32bfcc6a28259b708 (diff) | |
download | qpdf-89061d5b33baa7e8f4e3486d0c7ccf2447500b13.tar.zst |
Change QPDF_Unresolved::create method to take QPDF* and QPDFObjGen parameters
Diffstat (limited to 'libqpdf')
-rw-r--r-- | libqpdf/QPDF.cc | 5 | ||||
-rw-r--r-- | libqpdf/QPDF_Unresolved.cc | 12 | ||||
-rw-r--r-- | libqpdf/qpdf/QPDF_Unresolved.hh | 4 |
3 files changed, 11 insertions, 10 deletions
diff --git a/libqpdf/QPDF.cc b/libqpdf/QPDF.cc index 553c1a41..f33e2920 100644 --- a/libqpdf/QPDF.cc +++ b/libqpdf/QPDF.cc @@ -2183,9 +2183,8 @@ QPDF::getObject(QPDFObjGen const& og) if (!og.isIndirect()) { return QPDFObjectHandle::newNull(); } - // auto obj = (og.getObj() != 0) ? resolve(og) : QPDF_Null::create(); - if (!m->obj_cache.count(og)) { - m->obj_cache[og] = ObjCache(QPDF_Unresolved::create(), -1, -1); + if (!isCached(og)) { + m->obj_cache[og] = ObjCache(QPDF_Unresolved::create(this, og), -1, -1); } return newIndirect(og, m->obj_cache[og].object); } diff --git a/libqpdf/QPDF_Unresolved.cc b/libqpdf/QPDF_Unresolved.cc index 40d4874e..f824a9a6 100644 --- a/libqpdf/QPDF_Unresolved.cc +++ b/libqpdf/QPDF_Unresolved.cc @@ -2,21 +2,23 @@ #include <stdexcept> -QPDF_Unresolved::QPDF_Unresolved() : - QPDFValue(::ot_unresolved, "unresolved") +QPDF_Unresolved::QPDF_Unresolved(QPDF* qpdf, QPDFObjGen const& og) : + QPDFValue(::ot_unresolved, "unresolved", qpdf, og) { } std::shared_ptr<QPDFObject> -QPDF_Unresolved::create() +QPDF_Unresolved::create(QPDF* qpdf, QPDFObjGen const& og) { - return do_create(new QPDF_Unresolved()); + return do_create(new QPDF_Unresolved(qpdf, og)); } std::shared_ptr<QPDFObject> QPDF_Unresolved::shallowCopy() { - return create(); + throw std::logic_error( + "attempted to shallow copy unresolved QPDFObjectHandle"); + return create(qpdf, og); } std::string diff --git a/libqpdf/qpdf/QPDF_Unresolved.hh b/libqpdf/qpdf/QPDF_Unresolved.hh index c1231590..efcf4e3d 100644 --- a/libqpdf/qpdf/QPDF_Unresolved.hh +++ b/libqpdf/qpdf/QPDF_Unresolved.hh @@ -7,13 +7,13 @@ class QPDF_Unresolved: public QPDFValue { public: virtual ~QPDF_Unresolved() = default; - static std::shared_ptr<QPDFObject> create(); + static std::shared_ptr<QPDFObject> create(QPDF* qpdf, QPDFObjGen const& og); virtual std::shared_ptr<QPDFObject> shallowCopy(); virtual std::string unparse(); virtual JSON getJSON(int json_version); private: - QPDF_Unresolved(); + QPDF_Unresolved(QPDF* qpdf, QPDFObjGen const& og); }; #endif // QPDF_UNRESOLVED_HH |