From 218f069a69ef74d0b0cc9c7ba0796e9360cef379 Mon Sep 17 00:00:00 2001 From: m-holger Date: Fri, 16 Dec 2022 16:19:15 +0000 Subject: [PATCH] Add new method QPDFObject::setDefaultDescription --- libqpdf/QPDF.cc | 9 ++------- libqpdf/qpdf/QPDFObject_private.hh | 8 ++++++-- libqpdf/qpdf/QPDFValue.hh | 9 +++++++++ 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/libqpdf/QPDF.cc b/libqpdf/QPDF.cc index 86846675..b1eefd3b 100644 --- a/libqpdf/QPDF.cc +++ b/libqpdf/QPDF.cc @@ -1848,9 +1848,7 @@ QPDF::resolve(QPDFObjGen og) } auto result(this->m->obj_cache[og].object); - if (!result->hasDescription()) { - result->setDescription(this, ("object " + og.unparse(' '))); - } + result->setDefaultDescription(this, og); } void @@ -1946,10 +1944,7 @@ QPDF::resolveObjectsInStream(int obj_stream_number) QPDFObjectHandle QPDF::newIndirect(QPDFObjGen const& og, std::shared_ptr const& obj) { - obj->setObjGen(this, og); - if (!obj->hasDescription()) { - obj->setDescription(this, "object " + og.unparse(' ')); - } + obj->setDefaultDescription(this, og); return QPDFObjectHandle::Factory::newIndirect(obj); } diff --git a/libqpdf/qpdf/QPDFObject_private.hh b/libqpdf/qpdf/QPDFObject_private.hh index 2efda859..3356e3e5 100644 --- a/libqpdf/qpdf/QPDFObject_private.hh +++ b/libqpdf/qpdf/QPDFObject_private.hh @@ -68,7 +68,6 @@ class QPDFObject { return value->og; } - void setDescription( QPDF* qpdf, std::string const& description, qpdf_offset_t offset = -1) @@ -112,9 +111,14 @@ class QPDFObject } void - setObjGen(QPDF* qpdf, QPDFObjGen const& og) + setDefaultDescription(QPDF* qpdf, QPDFObjGen const& og) { // Intended for use by the QPDF class + value->setDefaultDescription(qpdf, og); + } + void + setObjGen(QPDF* qpdf, QPDFObjGen const& og) + { value->qpdf = qpdf; value->og = og; } diff --git a/libqpdf/qpdf/QPDFValue.hh b/libqpdf/qpdf/QPDFValue.hh index 9a0e8cba..e4c038b6 100644 --- a/libqpdf/qpdf/QPDFValue.hh +++ b/libqpdf/qpdf/QPDFValue.hh @@ -31,6 +31,15 @@ class QPDFValue object_description = description; setParsedOffset(offset); } + void + setDefaultDescription(QPDF* a_qpdf, QPDFObjGen const& a_og) + { + if (object_description.empty()) { + object_description = "object " + a_og.unparse(' '); + } + qpdf = a_qpdf; + og = a_og; + } bool getDescription(QPDF*& qpdf_p, std::string& description) {