aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/qpdf/QPDFObjectHandle.hh1
-rw-r--r--libqpdf/QPDF_Stream.cc7
-rw-r--r--libqpdf/qpdf/QPDF_Stream.hh3
3 files changed, 11 insertions, 0 deletions
diff --git a/include/qpdf/QPDFObjectHandle.hh b/include/qpdf/QPDFObjectHandle.hh
index 8c38fffe..936ccc5d 100644
--- a/include/qpdf/QPDFObjectHandle.hh
+++ b/include/qpdf/QPDFObjectHandle.hh
@@ -597,6 +597,7 @@ class QPDFObjectHandle
{
friend class QPDF_Dictionary;
friend class QPDF_Array;
+ friend class QPDF_Stream;
private:
static void releaseResolved(QPDFObjectHandle& o)
{
diff --git a/libqpdf/QPDF_Stream.cc b/libqpdf/QPDF_Stream.cc
index bcf9be92..27c6b477 100644
--- a/libqpdf/QPDF_Stream.cc
+++ b/libqpdf/QPDF_Stream.cc
@@ -45,6 +45,13 @@ QPDF_Stream::~QPDF_Stream()
}
void
+QPDF_Stream::releaseResolved()
+{
+ this->stream_provider = 0;
+ QPDFObjectHandle::ReleaseResolver::releaseResolved(this->stream_dict);
+}
+
+void
QPDF_Stream::setObjGen(int objid, int generation)
{
if (! ((this->objid == 0) && (this->generation == 0)))
diff --git a/libqpdf/qpdf/QPDF_Stream.hh b/libqpdf/qpdf/QPDF_Stream.hh
index 8b960f00..a2bd5d61 100644
--- a/libqpdf/qpdf/QPDF_Stream.hh
+++ b/libqpdf/qpdf/QPDF_Stream.hh
@@ -43,6 +43,9 @@ class QPDF_Stream: public QPDFObject
// when adding streams to files.
void setObjGen(int objid, int generation);
+ protected:
+ virtual void releaseResolved();
+
private:
static std::map<std::string, std::string> filter_abbreviations;