mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 23:24:09 +00:00
Add internal API to add sub-modules to package.preload.
This commit is contained in:
parent
4dce22c40d
commit
8a9519a5f4
10
src/lj_lib.c
10
src/lj_lib.c
@ -148,6 +148,16 @@ void lj_lib_register(lua_State *L, const char *libname,
|
||||
}
|
||||
}
|
||||
|
||||
void lj_lib_prereg(lua_State *L, const char *name, lua_CFunction f, GCtab *env)
|
||||
{
|
||||
luaL_findtable(L, LUA_REGISTRYINDEX, "_PRELOAD", 4);
|
||||
lua_pushcfunction(L, f);
|
||||
/* NOBARRIER: The function is new (marked white). */
|
||||
setgcref(funcV(L->top-1)->c.env, obj2gco(env));
|
||||
lua_setfield(L, -2, name);
|
||||
L->top--;
|
||||
}
|
||||
|
||||
/* -- Type checks --------------------------------------------------------- */
|
||||
|
||||
TValue *lj_lib_checkany(lua_State *L, int narg)
|
||||
|
@ -89,6 +89,8 @@ static LJ_AINLINE GCfunc *lj_lib_pushcc(lua_State *L, lua_CFunction f,
|
||||
|
||||
LJ_FUNC void lj_lib_register(lua_State *L, const char *libname,
|
||||
const uint8_t *init, const lua_CFunction *cf);
|
||||
LJ_FUNC void lj_lib_prereg(lua_State *L, const char *name, lua_CFunction f,
|
||||
GCtab *env);
|
||||
|
||||
/* Library init data tags. */
|
||||
#define LIBINIT_LENMASK 0x3f
|
||||
|
Loading…
Reference in New Issue
Block a user