diff options
| author | Roberto I <roberto@inf.puc-rio.br> | 2025-09-24 18:33:08 -0300 |
|---|---|---|
| committer | Roberto I <roberto@inf.puc-rio.br> | 2025-09-24 18:33:08 -0300 |
| commit | 25c54fe60e22d05cdfaa48c64372d354efa59547 (patch) | |
| tree | 3ccaeded5e4363db358f73b7c8fc6b9f414a2f2a /ltm.h | |
| parent | 0cc3c9447cca9abae9738ee77c24d88801c3916c (diff) | |
| download | lua-25c54fe60e22d05cdfaa48c64372d354efa59547.tar.gz lua-25c54fe60e22d05cdfaa48c64372d354efa59547.tar.bz2 lua-25c54fe60e22d05cdfaa48c64372d354efa59547.zip | |
Optimization for vararg tables
A vararg table can be virtual. If the vararg table is used only as
a base in indexing expressions, the code does not need to create an
actual table for it. Instead, it compiles the indexing expressions
into direct accesses to the internal vararg data.
Diffstat (limited to 'ltm.h')
| -rw-r--r-- | ltm.h | 1 |
1 files changed, 1 insertions, 0 deletions
| @@ -97,6 +97,7 @@ LUAI_FUNC int luaT_callorderiTM (lua_State *L, const TValue *p1, int v2, | |||
| 97 | 97 | ||
| 98 | LUAI_FUNC void luaT_adjustvarargs (lua_State *L, struct CallInfo *ci, | 98 | LUAI_FUNC void luaT_adjustvarargs (lua_State *L, struct CallInfo *ci, |
| 99 | const Proto *p); | 99 | const Proto *p); |
| 100 | LUAI_FUNC void luaT_getvararg (CallInfo *ci, StkId ra, TValue *rc); | ||
| 100 | LUAI_FUNC void luaT_getvarargs (lua_State *L, struct CallInfo *ci, | 101 | LUAI_FUNC void luaT_getvarargs (lua_State *L, struct CallInfo *ci, |
| 101 | StkId where, int wanted); | 102 | StkId where, int wanted); |
| 102 | 103 | ||
