summaryrefslogtreecommitdiffstats
path: root/vm.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2018-03-26 06:57:02 -0700
committerKaz Kylheku <kaz@kylheku.com>2018-03-26 06:57:02 -0700
commitdff74e03f74fd6fcc2bf31a063c1aa8b871a38ff (patch)
tree8e1d25e9f40929b6edfe30d6929297d1ba57a556 /vm.c
parent5c604c752e878066c7312eba6dd72d550ceb451f (diff)
downloadtxr-dff74e03f74fd6fcc2bf31a063c1aa8b871a38ff.tar.gz
txr-dff74e03f74fd6fcc2bf31a063c1aa8b871a38ff.tar.bz2
txr-dff74e03f74fd6fcc2bf31a063c1aa8b871a38ff.zip
vm: bugfix: faulty memcpy in closure.
* vm.c (vm_make_closure): Add missing scale factor to memcpy. This is the memcpy which relocates display frame contents from the stack to the frame.
Diffstat (limited to 'vm.c')
-rw-r--r--vm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/vm.c b/vm.c
index f36652f0..2e42d211 100644
--- a/vm.c
+++ b/vm.c
@@ -244,7 +244,7 @@ static val vm_make_closure(struct vm *vm, int frsz)
val heap_vec = vector(vec, nil);
cdi->vec = heap_vec;
cdi->mem = heap_vec->v.vec;
- memcpy(heap_vec->v.vec, mem, c_num(vec));
+ memcpy(cdi->mem, mem, sizeof *cdi->mem * c_num(vec));
mut(closure);
*sdi = *cdi;
break;