summaryrefslogtreecommitdiff
path: root/eval.c
diff options
context:
space:
mode:
authorPeter Mikkelsen <petermikkelsen10@gmail.com>2022-01-13 20:41:55 +0000
committerPeter Mikkelsen <petermikkelsen10@gmail.com>2022-01-13 20:41:55 +0000
commit454e026edc25b1d0f6b4f035d41b38a1e60e16e3 (patch)
tree6249a5441e27edcdfc4fd81400c3b31db1a1278b /eval.c
parent2d498de6c105e57c32c9048e5901955556ab38bf (diff)
Free arrays in variables when assigning new data to them
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/eval.c b/eval.c
index 2eb5abd..6b59c74 100644
--- a/eval.c
+++ b/eval.c
@@ -238,7 +238,10 @@ nameis(Datum left, Datum right)
Datum
assign(Datum left, Datum right)
{
- left.symbol->value = right; /* TODO think about this*/
+ if(left.symbol->undefined == 0)
+ freearray(left.symbol->value.array);
+
+ left.symbol->value = right;
left.symbol->undefined = 0;
if(left.symbol->value.tag == ArrayTag){
left.symbol->value.array->stranded = 0;