diff options
Diffstat (limited to 'libqpdf')
-rw-r--r-- | libqpdf/QPDFObjectHandle.cc | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc index 6bb182e8..54897b83 100644 --- a/libqpdf/QPDFObjectHandle.cc +++ b/libqpdf/QPDFObjectHandle.cc @@ -442,6 +442,19 @@ QPDFObjectHandle::replaceStreamData(PointerHolder<Buffer> data, } void +QPDFObjectHandle::replaceStreamData(std::string const& data, + QPDFObjectHandle const& filter, + QPDFObjectHandle const& decode_parms) +{ + assertStream(); + PointerHolder<Buffer> b = new Buffer(data.length()); + unsigned char* bp = b->getBuffer(); + memcpy(bp, (char*)data.c_str(), data.length()); + dynamic_cast<QPDF_Stream*>(obj.getPointer())->replaceStreamData( + b, filter, decode_parms); +} + +void QPDFObjectHandle::replaceStreamData(PointerHolder<StreamDataProvider> provider, QPDFObjectHandle const& filter, QPDFObjectHandle const& decode_parms) @@ -978,10 +991,9 @@ QPDFObjectHandle QPDFObjectHandle::newStream(QPDF* qpdf, std::string const& data) { QTC::TC("qpdf", "QPDFObjectHandle newStream with string"); - PointerHolder<Buffer> b = new Buffer(data.length()); - unsigned char* bp = b->getBuffer(); - memcpy(bp, (char*)data.c_str(), data.length()); - return QPDFObjectHandle::newStream(qpdf, b); + QPDFObjectHandle result = newStream(qpdf); + result.replaceStreamData(data, newNull(), newNull()); + return result; } QPDFObjectHandle |