When we suspend at the end of input, we failed to update the
parser's m_processor field to point to the epilogProcessor. When
the regular contentProcessor runs with no input, it returns an
error (which is what you usually want). If we had not suspended,
in those circumstances we would have run the epilogProcessor
instead, so we just make sure this is the processor we will invoke
when we resume parsing.
switch (parser->m_parsingStatus.parsing) {
case XML_SUSPENDED:
*nextPtr = next;
+ if (end == next) {
+ parser->m_processor = epilogProcessor;
+ }
return XML_ERROR_NONE;
case XML_FINISHED:
return XML_ERROR_ABORTED;