diff --git a/lib-src/libnyquist/nyquist/xlisp/xlftab.c b/lib-src/libnyquist/nyquist/xlisp/xlftab.c index 04458d4fd..5e070c59e 100644 --- a/lib-src/libnyquist/nyquist/xlisp/xlftab.c +++ b/lib-src/libnyquist/nyquist/xlisp/xlftab.c @@ -518,7 +518,7 @@ int xlbindfunctions(FUNDEF *functions, size_t nfunctions) memcpy(newfuntab, funtab, (szfuntab - 1) * sizeof(FUNDEF)); memcpy(newfuntab + szfuntab - 1, functions, nfunctions * sizeof(FUNDEF)); FUNDEF sentinel = { 0, 0, 0 }; - newfuntab[szfuntab - 1] = sentinel; + newfuntab[szfuntab + nfunctions - 1] = sentinel; funtab = newfuntab; szfuntab += nfunctions; return TRUE; diff --git a/lib-src/libnyquist/nyquist/xlisp/xlisp.h b/lib-src/libnyquist/nyquist/xlisp/xlisp.h index 03c0ca636..4c7b4e8c0 100644 --- a/lib-src/libnyquist/nyquist/xlisp/xlisp.h +++ b/lib-src/libnyquist/nyquist/xlisp/xlisp.h @@ -673,7 +673,9 @@ void xlsymbols(void); /* xlftab.c */ /* returns true on success, - false if table limits would be exceeded and the table remains unchanged */ + false if table limits would be exceeded and the table remains unchanged + Call this, any number of times, before calling xlisp_main_init + */ int xlbindfunctions(FUNDEF *functions, size_t nfunctions); /* xlio.c */