xo-reader2: bugfix: checkpoint before allocating SSMs

This commit is contained in:
Roland Conybeare 2026-02-16 11:03:09 -05:00
commit 66d9bc5cd6
18 changed files with 78 additions and 36 deletions

View file

@ -164,12 +164,14 @@ namespace xo {
optype op,
ParserStateMachine * p_psm)
{
DArena::Checkpoint ckp = parser_mm.checkpoint();
DProgressSsm * progress_ssm
= DProgressSsm::make(parser_mm, lhs, op);
obj<ASyntaxStateMachine,DProgressSsm> ssm(progress_ssm);
p_psm->push_ssm(ssm);
p_psm->push_ssm(ckp, ssm);
}
void
@ -324,8 +326,6 @@ namespace xo {
{
scope log(XO_DEBUG(p_psm->debug_flag()));
(void)tk;
obj<AExpression> expr = this->assemble_expr(p_psm);
p_psm->pop_ssm(); // completes self