From e410b0fe0d8c1da3e0b0e075b54f247b952389ef Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Thu, 15 Feb 2018 20:45:19 -0500 Subject: Simplify TokenFilter interface Expose Pl_QPDFTokenizer, and have it do more of the work of managing the token filter's pipeline. --- libqpdf/Pl_QPDFTokenizer.cc | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'libqpdf/Pl_QPDFTokenizer.cc') 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(); + } } -- cgit v1.2.3-54-g00ecf