From 1c944e4c89cf09d86f4e3f79ff57d937dab9b60f Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Sat, 14 Jul 2012 08:07:23 -0400 Subject: Have QPDFWriter detect foreign objects while writing Throw an exception that directs the user to QPDF::copyForeignObject. --- libqpdf/QPDFWriter.cc | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'libqpdf/QPDFWriter.cc') diff --git a/libqpdf/QPDFWriter.cc b/libqpdf/QPDFWriter.cc index a7c78b19..ce5cb3e0 100644 --- a/libqpdf/QPDFWriter.cc +++ b/libqpdf/QPDFWriter.cc @@ -761,6 +761,15 @@ QPDFWriter::enqueueObject(QPDFObjectHandle object) { if (object.isIndirect()) { + if (object.getOwningQPDF() != &(this->pdf)) + { + QTC::TC("qpdf", "QPDFWriter foreign object"); + throw std::logic_error( + "QPDFObjectHandle from different QPDF found while writing." + " Use QPDF::copyForeignObject to add objects from" + " another file."); + } + if (object.isNull()) { // This is a place-holder object for an object stream -- cgit v1.2.3-54-g00ecf