diff --git a/include/qpdf/QPDF.hh b/include/qpdf/QPDF.hh index 863650a..75cc238 100644 --- a/include/qpdf/QPDF.hh +++ b/include/qpdf/QPDF.hh @@ -791,7 +791,6 @@ class QPDF class Doc; class Writer; - class Resolver; class StreamCopier; class Pipe; class JobSetter; diff --git a/libqpdf/qpdf/QPDFObjectHandle_private.hh b/libqpdf/qpdf/QPDFObjectHandle_private.hh index 41a1eef..b16232f 100644 --- a/libqpdf/qpdf/QPDFObjectHandle_private.hh +++ b/libqpdf/qpdf/QPDFObjectHandle_private.hh @@ -577,7 +577,7 @@ namespace qpdf return &std::get(obj->value); } if (std::holds_alternative(obj->value)) { - return BaseHandle(QPDF::Resolver::resolved(obj->qpdf, obj->og)).as(); + return BaseHandle(QPDF::Doc::Resolver::resolved(obj->qpdf, obj->og)).as(); } if (std::holds_alternative(obj->value)) { // see comment in QPDF_Reference. @@ -676,7 +676,7 @@ namespace qpdf return ::ot_uninitialized; } if (raw_type_code() == ::ot_unresolved) { - return QPDF::Resolver::resolved(obj->qpdf, obj->og)->getTypeCode(); + return QPDF::Doc::Resolver::resolved(obj->qpdf, obj->og)->getTypeCode(); } return raw_type_code(); } @@ -688,7 +688,7 @@ namespace qpdf return ::ot_uninitialized; } if (raw_type_code() == ::ot_unresolved) { - return QPDF::Resolver::resolved(obj->qpdf, obj->og)->getTypeCode(); + return QPDF::Doc::Resolver::resolved(obj->qpdf, obj->og)->getTypeCode(); } if (raw_type_code() == ::ot_reference) { return std::get(obj->value).obj->getTypeCode(); @@ -728,7 +728,7 @@ inline qpdf_object_type_e QPDFObject::getResolvedTypeCode() const { if (getTypeCode() == ::ot_unresolved) { - return QPDF::Resolver::resolved(qpdf, og)->getTypeCode(); + return QPDF::Doc::Resolver::resolved(qpdf, og)->getTypeCode(); } if (getTypeCode() == ::ot_reference) { return std::get(value).obj->getTypeCode(); diff --git a/libqpdf/qpdf/QPDF_private.hh b/libqpdf/qpdf/QPDF_private.hh index 69943f0..e92faf3 100644 --- a/libqpdf/qpdf/QPDF_private.hh +++ b/libqpdf/qpdf/QPDF_private.hh @@ -13,21 +13,6 @@ using namespace qpdf; -// The Resolver class is restricted to QPDFObject so that only it can resolve indirect -// references. -class QPDF::Resolver -{ - friend class QPDFObject; - friend class qpdf::BaseHandle; - - private: - static std::shared_ptr const& - resolved(QPDF* qpdf, QPDFObjGen og) - { - return qpdf->resolve(og); - } -}; - // StreamCopier class is restricted to QPDFObjectHandle so it can copy stream data. class QPDF::StreamCopier { @@ -383,6 +368,7 @@ class QPDF::Doc { public: class ParseGuard; + class Resolver; Doc() = delete; Doc(Doc const&) = delete; @@ -540,6 +526,21 @@ class QPDF::Members std::map> object_to_obj_users; }; +// The Resolver class is restricted to QPDFObject and BaseHandle so that only it can resolve +// indirect references. +class QPDF::Doc::Resolver +{ + friend class QPDFObject; + friend class qpdf::BaseHandle; + + private: + static std::shared_ptr const& + resolved(QPDF* qpdf, QPDFObjGen og) + { + return qpdf->resolve(og); + } +}; + // JobSetter class is restricted to QPDFJob. class QPDF::JobSetter {