aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf
diff options
context:
space:
mode:
Diffstat (limited to 'libqpdf')
-rw-r--r--libqpdf/QPDFObjectHandle.cc20
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