aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2017-08-28 23:05:34 +0200
committerJay Berkenbilt <ejb@ql.org>2017-08-29 04:16:31 +0200
commitc6872d2c700a9d27105debe93662ecaaf8beb3bd (patch)
treee1e4384f22c6823e470da4286140bea7cd0a272d /libqpdf
parentc16aa1aca7c56de4bd54976dab7edf600c8c1e29 (diff)
downloadqpdf-c6872d2c700a9d27105debe93662ecaaf8beb3bd.tar.zst
Clean up circular references in QPDF_Stream
Diffstat (limited to 'libqpdf')
-rw-r--r--libqpdf/QPDF_Stream.cc7
-rw-r--r--libqpdf/qpdf/QPDF_Stream.hh3
2 files changed, 10 insertions, 0 deletions
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;