aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/Pl_QPDFTokenizer.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2018-02-16 02:45:19 +0100
committerJay Berkenbilt <ejb@ql.org>2018-02-19 03:05:47 +0100
commite410b0fe0d8c1da3e0b0e075b54f247b952389ef (patch)
tree49020a0201961e9e6e0da9b4ab7fa2a498529759 /libqpdf/Pl_QPDFTokenizer.cc
parent1fdd86a04924e4ab9543133b74df3322cffbd358 (diff)
downloadqpdf-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.cc18
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();
+ }
}