summaryrefslogtreecommitdiff
path: root/sax/src/sax_processor.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sax/src/sax_processor.cc')
-rw-r--r--sax/src/sax_processor.cc9
1 files changed, 4 insertions, 5 deletions
diff --git a/sax/src/sax_processor.cc b/sax/src/sax_processor.cc
index afc9d3b..2b627e0 100644
--- a/sax/src/sax_processor.cc
+++ b/sax/src/sax_processor.cc
@@ -1,7 +1,5 @@
#include "sax_processor.hh"
-#include <iostream>
-
#include "buffer.hh"
#include "guessing_decoder.hh"
#include "processor.hh"
@@ -304,7 +302,6 @@ class ProcessorImpl : public Processor {
while (true) {
if (cmds_.empty()) {
if (!buffer_->empty()) {
- std::cerr << make_string_view(buffer_->rspan()) << std::endl;
delegate_->error("Extra data at end");
}
return consumed;
@@ -430,7 +427,8 @@ class ProcessorImpl : public Processor {
std::size_t tmp = offset;
auto wspan = buffer_->wspan(4);
- switch (decoder_->decode(data, tmp, wspan, consumed)) {
+ std::size_t wrote = 0;
+ switch (decoder_->decode(data, tmp, wspan, wrote)) {
case Decoder::State::GOOD:
break;
case Decoder::State::NEED_MORE:
@@ -439,7 +437,8 @@ class ProcessorImpl : public Processor {
delegate_->error("Invalid data");
return Process::ERROR;
}
- buffer_->commit(consumed);
+ buffer_->commit(wrote);
+ consumed = tmp - offset;
return Process::CONTINUE;
}