diff options
| author | 2025-12-07 12:44:18 +0100 | |
|---|---|---|
| committer | 2025-12-07 12:44:18 +0100 | |
| commit | 6a335e2b7d47afdb5e37034a095aaa26a34d7ee1 (patch) | |
| tree | b7aae9d679df13ce04f695670e80a8e7a73361c9 /test/external/lua-5.4.0/src/lfunc.h | |
| parent | bfc6b66078ab3ec543b8355ad22df1c423bf9a8c (diff) | |
Add lua 5.4.0 test suite
Diffstat (limited to 'test/external/lua-5.4.0/src/lfunc.h')
| -rw-r--r-- | test/external/lua-5.4.0/src/lfunc.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/test/external/lua-5.4.0/src/lfunc.h b/test/external/lua-5.4.0/src/lfunc.h new file mode 100644 index 0000000..8d6f965 --- /dev/null +++ b/test/external/lua-5.4.0/src/lfunc.h @@ -0,0 +1,69 @@ +/* +** $Id: lfunc.h $ +** Auxiliary functions to manipulate prototypes and closures +** See Copyright Notice in lua.h +*/ + +#ifndef lfunc_h +#define lfunc_h + + +#include "lobject.h" + + +#define sizeCclosure(n) (cast_int(offsetof(CClosure, upvalue)) + \ + cast_int(sizeof(TValue)) * (n)) + +#define sizeLclosure(n) (cast_int(offsetof(LClosure, upvals)) + \ + cast_int(sizeof(TValue *)) * (n)) + + +/* test whether thread is in 'twups' list */ +#define isintwups(L) (L->twups != L) + + +/* +** maximum number of upvalues in a closure (both C and Lua). (Value +** must fit in a VM register.) +*/ +#define MAXUPVAL 255 + + +#define upisopen(up) ((up)->v != &(up)->u.value) + + +#define uplevel(up) check_exp(upisopen(up), cast(StkId, (up)->v)) + + +/* +** maximum number of misses before giving up the cache of closures +** in prototypes +*/ +#define MAXMISS 10 + + +/* +** Special "status" for 'luaF_close' +*/ + +/* close upvalues without running their closing methods */ +#define NOCLOSINGMETH (-1) + +/* close upvalues running all closing methods in protected mode */ +#define CLOSEPROTECT (-2) + + +LUAI_FUNC Proto *luaF_newproto (lua_State *L); +LUAI_FUNC CClosure *luaF_newCclosure (lua_State *L, int nupvals); +LUAI_FUNC LClosure *luaF_newLclosure (lua_State *L, int nupvals); +LUAI_FUNC void luaF_initupvals (lua_State *L, LClosure *cl); +LUAI_FUNC UpVal *luaF_findupval (lua_State *L, StkId level); +LUAI_FUNC void luaF_newtbcupval (lua_State *L, StkId level); +LUAI_FUNC int luaF_close (lua_State *L, StkId level, int status); +LUAI_FUNC void luaF_unlinkupval (UpVal *uv); +LUAI_FUNC void luaF_freeproto (lua_State *L, Proto *f); +LUAI_FUNC const char *luaF_getlocalname (const Proto *func, int local_number, + int pc); + + +#endif |