From 998a6cbee911ee8d49b2ce2f24e0cb4898289492 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Mon, 2 Aug 2010 22:40:52 +0000 Subject: remove stream_data_handler; it wouldn't work as designed. replacement data implemented but not tested git-svn-id: svn+q:///qpdf/trunk@988 71b93d88-0707-0410-a8cf-f5a4172ac649 --- libqpdf/QPDFObjectHandle.cc | 7 ------- libqpdf/QPDF_Stream.cc | 25 ++++++++++++++----------- libqpdf/qpdf/QPDF_Stream.hh | 3 --- 3 files changed, 14 insertions(+), 21 deletions(-) (limited to 'libqpdf') diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc index 2fff0e31..756f3f55 100644 --- a/libqpdf/QPDFObjectHandle.cc +++ b/libqpdf/QPDFObjectHandle.cc @@ -362,13 +362,6 @@ QPDFObjectHandle::replaceStreamData(PointerHolder data, data, filter, decode_parms); } -void -QPDFObjectHandle::replaceStreamData(PointerHolder dh) -{ - assertType("Stream", isStream()); - dynamic_cast(obj.getPointer())->replaceStreamData(dh); -} - int QPDFObjectHandle::getObjectID() const { diff --git a/libqpdf/QPDF_Stream.cc b/libqpdf/QPDF_Stream.cc index 500dfb10..5e53b2ae 100644 --- a/libqpdf/QPDF_Stream.cc +++ b/libqpdf/QPDF_Stream.cc @@ -319,10 +319,20 @@ QPDF_Stream::pipeStreamData(Pipeline* pipeline, bool filter, } } - // XXX handle stream_data and stream_data_handler - QPDF::Pipe::pipeStreamData(this->qpdf, this->objid, this->generation, - this->offset, this->length, - this->stream_dict, pipeline); + if (this->stream_data.getPointer()) + { + QTC::TC("qpdf", "QPDF_Stream pipe replaced stream data"); + Buffer& b = *(this->stream_data.getPointer()); + pipeline->write(b.getBuffer(), b.getSize()); + pipeline->finish(); + } + else + { + QTC::TC("qpdf", "QPDF_Stream pipe original stream data"); + QPDF::Pipe::pipeStreamData(this->qpdf, this->objid, this->generation, + this->offset, this->length, + this->stream_dict, pipeline); + } return filter; } @@ -339,10 +349,3 @@ QPDF_Stream::replaceStreamData(PointerHolder data, QPDFObjectHandle::newInteger( data.getPointer()->getSize())); } - -void -QPDF_Stream::replaceStreamData( - PointerHolder dh) -{ - this->stream_data_handler = dh; -} diff --git a/libqpdf/qpdf/QPDF_Stream.hh b/libqpdf/qpdf/QPDF_Stream.hh index cc7cbf0a..86a585c9 100644 --- a/libqpdf/qpdf/QPDF_Stream.hh +++ b/libqpdf/qpdf/QPDF_Stream.hh @@ -25,8 +25,6 @@ class QPDF_Stream: public QPDFObject void replaceStreamData(PointerHolder data, QPDFObjectHandle filter, QPDFObjectHandle decode_parms); - void replaceStreamData( - PointerHolder dh); private: bool filterable(std::vector& filters, @@ -38,7 +36,6 @@ class QPDF_Stream: public QPDFObject QPDFObjectHandle stream_dict; off_t offset; int length; - PointerHolder stream_data_handler; PointerHolder stream_data; }; -- cgit v1.2.3-70-g09d2