Fix userdata APIs for Lua 5.4 in native plugin interface (#1188)
* Reintroduce some missing Lua API's from native plugin API * Add new upvalue functions to header * Fix things that are actually macros in current lua * Introduce lua_insert,replace,remove macros from lua5.4
This commit is contained in:
parent
141d00795c
commit
3fda8c0a09
|
@ -236,9 +236,6 @@ static int (*lua_absindex) (lua_State *L, int idx);
|
|||
static int (*lua_gettop) (lua_State *L);
|
||||
static void (*lua_settop) (lua_State *L, int idx);
|
||||
static void (*lua_pushvalue) (lua_State *L, int idx);
|
||||
static void (*lua_remove) (lua_State *L, int idx);
|
||||
static void (*lua_insert) (lua_State *L, int idx);
|
||||
static void (*lua_replace) (lua_State *L, int idx);
|
||||
static void (*lua_copy) (lua_State *L, int fromidx, int toidx);
|
||||
static int (*lua_checkstack) (lua_State *L, int sz);
|
||||
static void (*lua_xmove) (lua_State *from, lua_State *to, int n);
|
||||
|
@ -281,8 +278,10 @@ static void (*lua_rawgeti) (lua_State *L, int idx, int n);
|
|||
static void (*lua_rawgetp) (lua_State *L, int idx, const void *p);
|
||||
static void (*lua_createtable) (lua_State *L, int narr, int nrec);
|
||||
static void *(*lua_newuserdata) (lua_State *L, size_t sz);
|
||||
static void *(*lua_newuserdatauv) (lua_State *L, size_t sz, int nuvalue);
|
||||
static int (*lua_getmetatable) (lua_State *L, int objindex);
|
||||
static void (*lua_getuservalue) (lua_State *L, int idx);
|
||||
static void (*lua_getiuservalue) (lua_State *L, int idx, int n);
|
||||
static void (*lua_setglobal) (lua_State *L, const char *var);
|
||||
static void (*lua_settable) (lua_State *L, int idx);
|
||||
static void (*lua_setfield) (lua_State *L, int idx, const char *k);
|
||||
|
@ -291,6 +290,7 @@ static void (*lua_rawseti) (lua_State *L, int idx, int n);
|
|||
static void (*lua_rawsetp) (lua_State *L, int idx, const void *p);
|
||||
static int (*lua_setmetatable) (lua_State *L, int objindex);
|
||||
static void (*lua_setuservalue) (lua_State *L, int idx);
|
||||
static void (*lua_setiuservalue) (lua_State *L, int idx, int n);
|
||||
static void (*lua_callk) (lua_State *L, int nargs, int nresults, int ctx, lua_CFunction k);
|
||||
static int (*lua_getctx) (lua_State *L, int *ctx);
|
||||
static int (*lua_pcallk) (lua_State *L, int nargs, int nresults, int errfunc, int ctx, lua_CFunction k);
|
||||
|
@ -396,6 +396,9 @@ static int (*lua_gethookcount) (lua_State *L);
|
|||
#define lua_pushliteral(L, s) lua_pushlstring(L, "" s, (sizeof(s)/sizeof(char))-1)
|
||||
#define lua_pushglobaltable(L) lua_rawgeti(L, LUA_REGISTRYINDEX, LUA_RIDX_GLOBALS)
|
||||
#define lua_tostring(L,i) lua_tolstring(L, (i), NULL)
|
||||
#define lua_insert(L,idx) lua_rotate(L, (idx), 1)
|
||||
#define lua_replace(L,idx) (lua_copy(L, -1, (idx)), lua_pop(L, 1))
|
||||
#define lua_remove(L,idx) (lua_rotate(L, (idx), -1), lua_pop(L, 1))
|
||||
#define LUA_HOOKCALL 0
|
||||
#define LUA_HOOKRET 1
|
||||
#define LUA_HOOKLINE 2
|
||||
|
@ -414,9 +417,6 @@ static int __lite_xl_fallback_lua_absindex (lua_State *L, int idx) { fputs("war
|
|||
static int __lite_xl_fallback_lua_gettop (lua_State *L) { fputs("warning: lua_gettop is a stub", stderr); }
|
||||
static void __lite_xl_fallback_lua_settop (lua_State *L, int idx) { fputs("warning: lua_settop is a stub", stderr); }
|
||||
static void __lite_xl_fallback_lua_pushvalue (lua_State *L, int idx) { fputs("warning: lua_pushvalue is a stub", stderr); }
|
||||
static void __lite_xl_fallback_lua_remove (lua_State *L, int idx) { fputs("warning: lua_remove is a stub", stderr); }
|
||||
static void __lite_xl_fallback_lua_insert (lua_State *L, int idx) { fputs("warning: lua_insert is a stub", stderr); }
|
||||
static void __lite_xl_fallback_lua_replace (lua_State *L, int idx) { fputs("warning: lua_replace is a stub", stderr); }
|
||||
static void __lite_xl_fallback_lua_copy (lua_State *L, int fromidx, int toidx) { fputs("warning: lua_copy is a stub", stderr); }
|
||||
static int __lite_xl_fallback_lua_checkstack (lua_State *L, int sz) { fputs("warning: lua_checkstack is a stub", stderr); }
|
||||
static void __lite_xl_fallback_lua_xmove (lua_State *from, lua_State *to, int n) { fputs("warning: lua_xmove is a stub", stderr); }
|
||||
|
@ -459,8 +459,10 @@ static void __lite_xl_fallback_lua_rawgeti (lua_State *L, int idx, int n) { fpu
|
|||
static void __lite_xl_fallback_lua_rawgetp (lua_State *L, int idx, const void *p) { fputs("warning: lua_rawgetp is a stub", stderr); }
|
||||
static void __lite_xl_fallback_lua_createtable (lua_State *L, int narr, int nrec) { fputs("warning: lua_createtable is a stub", stderr); }
|
||||
static void * __lite_xl_fallback_lua_newuserdata (lua_State *L, size_t sz) { fputs("warning: lua_newuserdata is a stub", stderr); }
|
||||
static void * __lite_xl_fallback_lua_newuserdatauv (lua_State *L, size_t sz, int nuvalue) { fputs("warning: lua_newuserdatauv is a stub", stderr); }
|
||||
static int __lite_xl_fallback_lua_getmetatable (lua_State *L, int objindex) { fputs("warning: lua_getmetatable is a stub", stderr); }
|
||||
static void __lite_xl_fallback_lua_getuservalue (lua_State *L, int idx) { fputs("warning: lua_getuservalue is a stub", stderr); }
|
||||
static void __lite_xl_fallback_lua_getiuservalue (lua_State *L, int idx, int n) { fputs("warning: lua_getiuservalue is a stub", stderr); }
|
||||
static void __lite_xl_fallback_lua_setglobal (lua_State *L, const char *var) { fputs("warning: lua_setglobal is a stub", stderr); }
|
||||
static void __lite_xl_fallback_lua_settable (lua_State *L, int idx) { fputs("warning: lua_settable is a stub", stderr); }
|
||||
static void __lite_xl_fallback_lua_setfield (lua_State *L, int idx, const char *k) { fputs("warning: lua_setfield is a stub", stderr); }
|
||||
|
@ -469,6 +471,7 @@ static void __lite_xl_fallback_lua_rawseti (lua_State *L, int idx, int n) { fpu
|
|||
static void __lite_xl_fallback_lua_rawsetp (lua_State *L, int idx, const void *p) { fputs("warning: lua_rawsetp is a stub", stderr); }
|
||||
static int __lite_xl_fallback_lua_setmetatable (lua_State *L, int objindex) { fputs("warning: lua_setmetatable is a stub", stderr); }
|
||||
static void __lite_xl_fallback_lua_setuservalue (lua_State *L, int idx) { fputs("warning: lua_setuservalue is a stub", stderr); }
|
||||
static void __lite_xl_fallback_lua_setiuservalue (lua_State *L, int idx, int n) { fputs("warning: lua_setiuservalue is a stub", stderr); }
|
||||
static void __lite_xl_fallback_lua_callk (lua_State *L, int nargs, int nresults, int ctx, lua_CFunction k) { fputs("warning: lua_callk is a stub", stderr); }
|
||||
static int __lite_xl_fallback_lua_getctx (lua_State *L, int *ctx) { fputs("warning: lua_getctx is a stub", stderr); }
|
||||
static int __lite_xl_fallback_lua_pcallk (lua_State *L, int nargs, int nresults, int errfunc, int ctx, lua_CFunction k) { fputs("warning: lua_pcallk is a stub", stderr); }
|
||||
|
@ -645,9 +648,6 @@ static void lite_xl_plugin_init(void *XL) {
|
|||
IMPORT_SYMBOL(lua_gettop, int , lua_State *L);
|
||||
IMPORT_SYMBOL(lua_settop, void , lua_State *L, int idx);
|
||||
IMPORT_SYMBOL(lua_pushvalue, void , lua_State *L, int idx);
|
||||
IMPORT_SYMBOL(lua_remove, void , lua_State *L, int idx);
|
||||
IMPORT_SYMBOL(lua_insert, void , lua_State *L, int idx);
|
||||
IMPORT_SYMBOL(lua_replace, void , lua_State *L, int idx);
|
||||
IMPORT_SYMBOL(lua_copy, void , lua_State *L, int fromidx, int toidx);
|
||||
IMPORT_SYMBOL(lua_checkstack, int , lua_State *L, int sz);
|
||||
IMPORT_SYMBOL(lua_xmove, void , lua_State *from, lua_State *to, int n);
|
||||
|
@ -690,8 +690,10 @@ static void lite_xl_plugin_init(void *XL) {
|
|||
IMPORT_SYMBOL(lua_rawgetp, void , lua_State *L, int idx, const void *p);
|
||||
IMPORT_SYMBOL(lua_createtable, void , lua_State *L, int narr, int nrec);
|
||||
IMPORT_SYMBOL(lua_newuserdata, void *, lua_State *L, size_t sz);
|
||||
IMPORT_SYMBOL(lua_newuserdatauv, void *, lua_State *L, size_t sz, int nuvalue);
|
||||
IMPORT_SYMBOL(lua_getmetatable, int , lua_State *L, int objindex);
|
||||
IMPORT_SYMBOL(lua_getuservalue, void , lua_State *L, int idx);
|
||||
IMPORT_SYMBOL(lua_getiuservalue, void , lua_State *L, int idx, int n);
|
||||
IMPORT_SYMBOL(lua_setglobal, void , lua_State *L, const char *var);
|
||||
IMPORT_SYMBOL(lua_settable, void , lua_State *L, int idx);
|
||||
IMPORT_SYMBOL(lua_setfield, void , lua_State *L, int idx, const char *k);
|
||||
|
@ -700,6 +702,7 @@ static void lite_xl_plugin_init(void *XL) {
|
|||
IMPORT_SYMBOL(lua_rawsetp, void , lua_State *L, int idx, const void *p);
|
||||
IMPORT_SYMBOL(lua_setmetatable, int , lua_State *L, int objindex);
|
||||
IMPORT_SYMBOL(lua_setuservalue, void , lua_State *L, int idx);
|
||||
IMPORT_SYMBOL(lua_setiuservalue, void , lua_State *L, int idx, int n);
|
||||
IMPORT_SYMBOL(lua_callk, void , lua_State *L, int nargs, int nresults, int ctx, lua_CFunction k);
|
||||
IMPORT_SYMBOL(lua_getctx, int , lua_State *L, int *ctx);
|
||||
IMPORT_SYMBOL(lua_pcallk, int , lua_State *L, int nargs, int nresults, int errfunc, int ctx, lua_CFunction k);
|
||||
|
|
|
@ -946,9 +946,14 @@ static void* api_require(const char* symbol) {
|
|||
P(iscfunction), P(yieldk),
|
||||
U(checkversion_), U(tolstring), U(len), U(getsubtable), U(prepbuffsize),
|
||||
U(pushresultsize), U(buffinitsize), U(checklstring), U(checkoption), U(gsub), U(loadbufferx),
|
||||
U(loadfilex), U(optinteger), U(optlstring), U(requiref), U(traceback)
|
||||
U(loadfilex), U(optinteger), U(optlstring), U(requiref), U(traceback),
|
||||
#else
|
||||
P(objlen)
|
||||
P(objlen),
|
||||
#endif
|
||||
#if LUA_VERSION_NUM >= 504
|
||||
P(newuserdatauv), P(setiuservalue), P(getiuservalue)
|
||||
#else
|
||||
P(newuserdata), P(setuservalue), P(getuservalue)
|
||||
#endif
|
||||
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue