code: 9ferno

Download patch

ref: 72a15e9d68ef72ea9e45f7563f1d1c85c433caae
parent: 542388741e1c568c8a2451190a3433550e491b13
author: joe9 <joe9mail@gmail.com>
date: Mon Jul 5 06:58:42 EDT 2021

fixes bug in array processing

--- a/libinterp/load.c
+++ b/libinterp/load.c
@@ -165,11 +165,11 @@
 	Array *ary;
 	u32 ul[2];
 	WORD lo, hi;
-	int lsize, id, v, tnp, tsz, siglen;
-	int de, i, n, isize, dsize, hsize, dasp;
+	int lsize, id, tnp, tsz, siglen;
+	int de, isize, dsize, hsize, dasp;
 	uchar *mod, sm, *istream, **isp, *si, *addr, *dastack[DADEPTH], *e, *b;
 	Link *l;
-	intptr pc, entry, entryt;
+	intptr i, n, v, pc, entry, entryt;
 
 	DP("\tsource\t\"%s\"\n", path);
 	istream = code;
@@ -226,8 +226,8 @@
 	}
 
 	DP("parsemod before instructions isize %d dsize %d hsize %d"
-		" lsize %d entry 0x%zx entryt 0x%zx\n",
-		isize, dsize, hsize, lsize, entry, entryt);
+		" lsize %d entry 0x%zx entryt 0x%zx sizeof(Inst) %d\n",
+		isize, dsize, hsize, lsize, entry, entryt, sizeof(Inst));
 	m->nprog = isize;
 	m->prog = mallocz(isize*sizeof(Inst), 0);
 	if(m->prog == nil) {