From 1bb40238e0d788e9de1ad752dcb7bfd4ff975885 Mon Sep 17 00:00:00 2001 From: m-holger Date: Sun, 14 Aug 2022 11:32:20 +0100 Subject: Add method QPDFObject::getObjGen and remove QPDFObjectHandle::og --- include/qpdf/QPDFObject.hh | 6 ++++++ include/qpdf/QPDFObjectHandle.hh | 8 +++----- libqpdf/QPDFObjectHandle.cc | 2 -- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/include/qpdf/QPDFObject.hh b/include/qpdf/QPDFObject.hh index 6801cd5b..e6d1d18b 100644 --- a/include/qpdf/QPDFObject.hh +++ b/include/qpdf/QPDFObject.hh @@ -103,6 +103,12 @@ class QPDFObject { return value->qpdf; } + QPDFObjGen + getObjGen() const + { + return value->og; + } + void setDescription(QPDF* qpdf, std::string const& description) { diff --git a/include/qpdf/QPDFObjectHandle.hh b/include/qpdf/QPDFObjectHandle.hh index d23d0fd4..399d1b01 100644 --- a/include/qpdf/QPDFObjectHandle.hh +++ b/include/qpdf/QPDFObjectHandle.hh @@ -1584,7 +1584,6 @@ class QPDFObjectHandle QPDF* qpdf, QPDFObjGen const& og, std::shared_ptr const& obj) : - og(og), obj(obj) { } @@ -1640,7 +1639,6 @@ class QPDFObjectHandle // Moving members of QPDFObjectHandle into a smart pointer incurs // a substantial performance penalty since QPDFObjectHandle // objects are copied around so frequently. - QPDFObjGen og; std::shared_ptr obj; }; @@ -1864,19 +1862,19 @@ class QPDFObjectHandle::QPDFArrayItems inline QPDFObjGen QPDFObjectHandle::getObjGen() const { - return og; + return isInitialized() ? obj->getObjGen() : QPDFObjGen(); } inline int QPDFObjectHandle::getObjectID() const { - return og.getObj(); + return getObjGen().getObj(); } inline int QPDFObjectHandle::getGeneration() const { - return og.getGen(); + return getObjGen().getGen(); } inline bool diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc index 2c93dcbf..7a614bbf 100644 --- a/libqpdf/QPDFObjectHandle.cc +++ b/libqpdf/QPDFObjectHandle.cc @@ -2282,8 +2282,6 @@ QPDFObjectHandle::copyObject( " reserved object handle direct"); } - og = QPDFObjGen(); - std::shared_ptr new_obj; if (isBool() || isInteger() || isName() || isNull() || isReal() || -- cgit v1.2.3-54-g00ecf