diff options
author | Jay Berkenbilt <ejb@ql.org> | 2018-02-16 02:45:19 +0100 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2018-02-19 03:05:47 +0100 |
commit | e410b0fe0d8c1da3e0b0e075b54f247b952389ef (patch) | |
tree | 49020a0201961e9e6e0da9b4ab7fa2a498529759 /libqpdf/Pl_QPDFTokenizer.cc | |
parent | 1fdd86a04924e4ab9543133b74df3322cffbd358 (diff) | |
download | qpdf-e410b0fe0d8c1da3e0b0e075b54f247b952389ef.tar.zst |
Simplify TokenFilter interface
Expose Pl_QPDFTokenizer, and have it do more of the work of managing
the token filter's pipeline.
Diffstat (limited to 'libqpdf/Pl_QPDFTokenizer.cc')
-rw-r--r-- | libqpdf/Pl_QPDFTokenizer.cc | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/libqpdf/Pl_QPDFTokenizer.cc b/libqpdf/Pl_QPDFTokenizer.cc index 4fc37767..577c5cc7 100644 --- a/libqpdf/Pl_QPDFTokenizer.cc +++ b/libqpdf/Pl_QPDFTokenizer.cc @@ -15,14 +15,15 @@ Pl_QPDFTokenizer::Members::~Members() { } -Pl_QPDFTokenizer::Pl_QPDFTokenizer( - char const* identifier, - QPDFObjectHandle::TokenFilter* filter) - : - Pipeline(identifier, 0), +Pl_QPDFTokenizer::Pl_QPDFTokenizer(char const* identifier, + QPDFObjectHandle::TokenFilter* filter, + Pipeline* next) : + Pipeline(identifier, next), m(new Members) { m->filter = filter; + QPDFObjectHandle::TokenFilter::PipelineAccessor::setPipeline( + m->filter, next); m->tokenizer.allowEOF(); m->tokenizer.includeIgnorable(); } @@ -88,4 +89,11 @@ Pl_QPDFTokenizer::finish() } this->m->filter->handleEOF(); + QPDFObjectHandle::TokenFilter::PipelineAccessor::setPipeline( + m->filter, 0); + Pipeline* next = this->getNext(true); + if (next) + { + next->finish(); + } } |