xo-reader2: bugfix: checkpoint before allocating SSMs
This commit is contained in:
parent
ce655ed6bd
commit
66d9bc5cd6
18 changed files with 78 additions and 36 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue