summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--vm.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/vm.c b/vm.c
index d06c2ee2..25a7b713 100644
--- a/vm.c
+++ b/vm.c
@@ -245,9 +245,11 @@ static val vm_make_closure(struct vm *vm, int frsz)
case NUM:
{
val heap_vec = vector(vec, nil);
+ size_t size = sizeof *cdi->mem * c_num(vec);
cdi->vec = heap_vec;
cdi->mem = heap_vec->v.vec;
- memcpy(cdi->mem, mem, sizeof *cdi->mem * c_num(vec));
+ memcpy(cdi->mem, mem, size);
+ memset(mem, 0, size);
mut(closure);
*sdi = *cdi;
break;