diff options
| author | Omar Rizwan <omar@omar.website> | 2023-06-06 05:49:08 +0000 |
|---|---|---|
| committer | Omar Rizwan <omar@omar.website> | 2023-06-06 05:49:08 +0000 |
| commit | 830c5a3658bb4401fe00f21e38dff7501b9c3eaf (patch) | |
| tree | 5cc165e238c97ad62111c40c4133a8a581b99286 /lib | |
| parent | More fixing evaluator bugs (with reuse) (diff) | |
| download | folk-830c5a3658bb4401fe00f21e38dff7501b9c3eaf.tar.gz folk-830c5a3658bb4401fe00f21e38dff7501b9c3eaf.zip | |
Do gen increment on removal -- this seems better
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/evaluator.tcl | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/evaluator.tcl b/lib/evaluator.tcl index 9816caaf..8eacc659 100644 --- a/lib/evaluator.tcl +++ b/lib/evaluator.tcl @@ -219,7 +219,7 @@ namespace eval Statements { ;# singleton Statement store matches[nextMatchIdx].alive = true; return (match_handle_t) { .idx = nextMatchIdx, - .gen = ++matches[nextMatchIdx].gen + .gen = matches[nextMatchIdx].gen }; } $cc proc matchGet {match_handle_t matchId} match_t* { @@ -255,6 +255,7 @@ namespace eval Statements { ;# singleton Statement store LogWriteRecollect(match->recollectCollectId); } match->alive = false; + match->gen++; match->n_edges = 0; ckfree((char*)match->edges); } @@ -282,7 +283,7 @@ namespace eval Statements { ;# singleton Statement store } return (statement_handle_t) { .idx = nextStatementIdx, - .gen = ++statements[nextStatementIdx].gen + .gen = statements[nextStatementIdx].gen }; } $cc proc get {statement_handle_t id} statement_t* { @@ -306,6 +307,7 @@ namespace eval Statements { ;# singleton Statement store Tcl_DecrRefCount(clause); stmt->gen = gen; + stmt->gen++; } $cc proc size {} size_t { size_t size = 0; |
