diff options
author | Jay Berkenbilt <ejb@ql.org> | 2022-09-07 17:29:17 +0200 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2022-09-07 23:26:39 +0200 |
commit | 0132261ee06e9b94bdc011eb4dc3fcd3a403e5f3 (patch) | |
tree | 1d1d441bed9ca3621d6b0ee58aff664358311913 /libqpdf/QPDF.cc | |
parent | bac559559e7c218dd8a987cfebb395b2bc45eaee (diff) | |
download | qpdf-0132261ee06e9b94bdc011eb4dc3fcd3a403e5f3.tar.zst |
Revert getOwningQPDF, and add getQPDF that returns a reference
Diffstat (limited to 'libqpdf/QPDF.cc')
-rw-r--r-- | libqpdf/QPDF.cc | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/libqpdf/QPDF.cc b/libqpdf/QPDF.cc index aa97de4b..921e943b 100644 --- a/libqpdf/QPDF.cc +++ b/libqpdf/QPDF.cc @@ -2299,14 +2299,14 @@ QPDF::copyForeignObject(QPDFObjectHandle foreign) throw std::logic_error( "QPDF::copyForeign called with direct object handle"); } - QPDF* other = foreign.getOwningQPDF(false); - if (other == this) { + QPDF& other = foreign.getQPDF(); + if (&other == this) { QTC::TC("qpdf", "QPDF copyForeign not foreign"); throw std::logic_error( "QPDF::copyForeign called with object from this QPDF"); } - ObjCopier& obj_copier = this->m->object_copiers[other->m->unique_id]; + ObjCopier& obj_copier = this->m->object_copiers[other.m->unique_id]; if (!obj_copier.visiting.empty()) { throw std::logic_error("obj_copier.visiting is not empty" " at the beginning of copyForeignObject"); @@ -2490,8 +2490,8 @@ QPDF::copyStreamData(QPDFObjectHandle result, QPDFObjectHandle foreign) // Copy information from the foreign stream so we can pipe its // data later without keeping the original QPDF object around. - QPDF* foreign_stream_qpdf = foreign.getOwningQPDF( - false, "unable to retrieve owning qpdf from foreign stream"); + QPDF& foreign_stream_qpdf = + foreign.getQPDF("unable to retrieve owning qpdf from foreign stream"); auto stream = QPDFObjectHandle::ObjAccessor::asStream(foreign); if (stream == nullptr) { @@ -2499,7 +2499,7 @@ QPDF::copyStreamData(QPDFObjectHandle result, QPDFObjectHandle foreign) " stream object from foreign stream"); } std::shared_ptr<Buffer> stream_buffer = stream->getStreamDataBuffer(); - if ((foreign_stream_qpdf->m->immediate_copy_from) && + if ((foreign_stream_qpdf.m->immediate_copy_from) && (stream_buffer == nullptr)) { // Pull the stream data into a buffer before attempting // the copy operation. Do it on the source stream so that @@ -2529,8 +2529,8 @@ QPDF::copyStreamData(QPDFObjectHandle result, QPDFObjectHandle foreign) dict.getKey("/DecodeParms")); } else { auto foreign_stream_data = std::make_shared<ForeignStreamData>( - foreign_stream_qpdf->m->encp, - foreign_stream_qpdf->m->file, + foreign_stream_qpdf.m->encp, + foreign_stream_qpdf.m->file, foreign.getObjGen(), stream->getOffset(), stream->getLength(), |