From dcff9b85a3cef778af60ad4426f91262ba815931 Mon Sep 17 00:00:00 2001 From: William Wilgus Date: Tue, 11 May 2021 21:35:41 -0400 Subject: lua latebound function update return the nextfunction and nil instead of pairs it allows a faster return to lua rather than calling the lua function pcall(fnpairs) from c and returning the result back into lua to kick off the search yeah, no clue why I didn't realize that before.. testing in x86 and ARM.. its more RAM efficient to do the initial creation of the stack in lua code for the __pairs functon its not faster but being that its a one time hit per iter creation the reduced churn alone should be worth it along with a reduced peak RAM usage fix bug where a failed module can not be reloaded optimize filetol fix potential bug in splash scroller when no break character is found Change-Id: I42c922e07039a19138b97c0d0e80cf3cf2426471 --- apps/plugins/lua/loadlib.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'apps/plugins/lua/loadlib.c') diff --git a/apps/plugins/lua/loadlib.c b/apps/plugins/lua/loadlib.c index 1e310beed1..732ad707b5 100644 --- a/apps/plugins/lua/loadlib.c +++ b/apps/plugins/lua/loadlib.c @@ -130,9 +130,11 @@ static int ll_require (lua_State *L) { lua_pushliteral(L, ""); /* error message accumulator */ for (i=1; ; i++) { lua_rawgeti(L, -2, i); /* get a loader */ - if (lua_isnil(L, -1)) + if (lua_isnil(L, -1)) { + lua_setfield(L, 2, name); /* _LOADED[name] = nil */ luaL_error(L, "module " LUA_QS " not found:%s", name, lua_tostring(L, -2)); + } lua_pushstring(L, name); lua_call(L, 1, 1); /* call it */ if (lua_isfunction(L, -1)) /* did it find module? */ -- cgit v1.2.3