From f772c43de80e1d1636a61bb88fe12f01281de046 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Thu, 1 Sep 2022 17:41:30 -0400 Subject: Stop including QPDFObject.hh from other than private files This required moving some newly inlined functions back to the cc file, but that seems to have had no measurable performance impact. --- libqpdf/QPDF.cc | 1 + libqpdf/QPDFObjectHandle.cc | 31 +++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) (limited to 'libqpdf') diff --git a/libqpdf/QPDF.cc b/libqpdf/QPDF.cc index 9593c44f..98ad2267 100644 --- a/libqpdf/QPDF.cc +++ b/libqpdf/QPDF.cc @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc index cb1e9e45..a1019955 100644 --- a/libqpdf/QPDFObjectHandle.cc +++ b/libqpdf/QPDFObjectHandle.cc @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -2770,6 +2771,36 @@ QPDFObjectHandle::QPDFArrayItems::end() return iterator(oh, false); } +QPDFObjGen +QPDFObjectHandle::getObjGen() const +{ + return isInitialized() ? obj->getObjGen() : QPDFObjGen(); +} + +// Indirect object accessors +QPDF* +QPDFObjectHandle::getOwningQPDF( + bool allow_nullptr, std::string const& error_msg) const +{ + // Will be null for direct objects + auto result = isInitialized() ? this->obj->getQPDF() : nullptr; + if (!allow_nullptr && (result == nullptr)) { + throw std::runtime_error( + error_msg == "" ? "attempt to use a null qpdf object" : error_msg); + } + return result; +} + +void +QPDFObjectHandle::setParsedOffset(qpdf_offset_t offset) +{ + // This is called during parsing on newly created direct objects, + // so we can't call dereference() here. + if (isInitialized()) { + this->obj->setParsedOffset(offset); + } +} + QPDFObjectHandle operator""_qpdf(char const* v, size_t len) { return QPDFObjectHandle::parse( -- cgit v1.2.3-54-g00ecf