diff options
Diffstat (limited to 'libqpdf/QPDF.cc')
-rw-r--r-- | libqpdf/QPDF.cc | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/libqpdf/QPDF.cc b/libqpdf/QPDF.cc index 3177d38b..6219509e 100644 --- a/libqpdf/QPDF.cc +++ b/libqpdf/QPDF.cc @@ -68,27 +68,37 @@ QPDF::ForeignStreamData::ForeignStreamData( QPDF::CopiedStreamDataProvider::CopiedStreamDataProvider( QPDF& destination_qpdf) : + QPDFObjectHandle::StreamDataProvider(true), destination_qpdf(destination_qpdf) { } -void +bool QPDF::CopiedStreamDataProvider::provideStreamData( - int objid, int generation, Pipeline* pipeline) + int objid, int generation, Pipeline* pipeline, + bool suppress_warnings, bool will_retry) { PointerHolder<ForeignStreamData> foreign_data = this->foreign_stream_data[QPDFObjGen(objid, generation)]; + bool result = false; if (foreign_data.getPointer()) { - destination_qpdf.pipeForeignStreamData( - foreign_data, pipeline, 0, qpdf_dl_none); + result = destination_qpdf.pipeForeignStreamData( + foreign_data, pipeline, suppress_warnings, will_retry); + QTC::TC("qpdf", "QPDF copy foreign with data", + result ? 0 : 1); } else { QPDFObjectHandle foreign_stream = this->foreign_streams[QPDFObjGen(objid, generation)]; - foreign_stream.pipeStreamData(pipeline, 0, qpdf_dl_none); + result = foreign_stream.pipeStreamData( + pipeline, nullptr, 0, qpdf_dl_none, + suppress_warnings, will_retry); + QTC::TC("qpdf", "QPDF copy foreign with foreign_stream", + result ? 0 : 1); } + return result; } void @@ -2851,8 +2861,7 @@ bool QPDF::pipeForeignStreamData( PointerHolder<ForeignStreamData> foreign, Pipeline* pipeline, - int encode_flags, - qpdf_stream_decode_level_e decode_level) + bool suppress_warnings, bool will_retry) { if (foreign->encp->encrypted) { @@ -2863,7 +2872,7 @@ QPDF::pipeForeignStreamData( foreign->foreign_objid, foreign->foreign_generation, foreign->offset, foreign->length, foreign->local_dict, foreign->is_attachment_stream, - pipeline, false, false); + pipeline, suppress_warnings, will_retry); } void |