summaryrefslogtreecommitdiffstats
path: root/src/interp.c
diff options
context:
space:
mode:
authorandmarti1424 <andmarti@gmail.com>2017-10-17 20:20:28 -0300
committerandmarti1424 <andmarti@gmail.com>2017-10-17 20:20:28 -0300
commit0fb201a92bd4038c7c02212761d49b17fc54744c (patch)
tree6b0fa966a144812df60fae04e16e3b2c18f030a4 /src/interp.c
parent9ea513318fa8c5e560ef4355f3f6150433fc97e2 (diff)
work on issue # 201
Diffstat (limited to 'src/interp.c')
-rw-r--r--src/interp.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/interp.c b/src/interp.c
index 71597c7..1351ebe 100644
--- a/src/interp.c
+++ b/src/interp.c
@@ -1057,6 +1057,7 @@ double eval(register struct ent * ent, register struct enode * e) {
sc_error("Circular reference in eval (cell %s%d)", coltoa(vp->col), vp->row);
//ERR propagates. comment to make it not to.
cellerror = CELLERROR;
+
//ent->cellerror = CELLERROR;
GraphAddEdge( getVertex(graph, lookat(ent->row, ent->col), 1), getVertex(graph, lookat(vp->row, vp->col), 1) ) ;
return (double) 0;
@@ -2510,6 +2511,10 @@ void let(struct ent * v, struct enode * e) {
do_trigger(v,TRG_WRITE);
+ if (!loading && cellerror == CELLERROR) { /* issue #201 */
+ if (v->expr) efree(v->expr);
+ v->expr = NULL;
+ }
#ifdef UNDO
if (!loading) {
copy_to_undostruct(v->row, v->col, v->row, v->col, 'a');