From 00324bcd1ec8d987cf9c8a1637cc68f1ddc0ea04 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Wed, 14 Mar 2018 06:13:42 -0700 Subject: vm: bugfix: handle empty data vector. * vm.c (vm_make_desc): We can't call vecref_l on an empty vector, because it has no index zero. Let's use a null location in this case. --- vm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vm.c b/vm.c index 09bdfb2c..4edf4a85 100644 --- a/vm.c +++ b/vm.c @@ -119,7 +119,8 @@ val vm_make_desc(val nlevels, val nregs, val bytecode, val datavec) { mem_t *code = buf_get(bytecode, self); - loc data_loc = vecref_l(datavec, zero); + val dvl = length_vec(datavec); + loc data_loc = if3(dvl != zero, vecref_l(datavec, zero), nulloc); struct vm_desc *vd = coerce(struct vm_desc *, chk_malloc(sizeof *vd)); val desc; -- cgit v1.2.3