diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2021-10-29 13:41:24 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2021-10-29 13:41:24 -0300 |
commit | 1fce5bea817de50e055a84c153a975f25bfcf493 (patch) | |
tree | 294645bf9a85557026d8c99d74c2eac50a74302e /ltablib.c | |
parent | 3699446aaf5c7a07af028b1ae43cf52d2d4dda59 (diff) | |
download | lua-1fce5bea817de50e055a84c153a975f25bfcf493.tar.gz lua-1fce5bea817de50e055a84c153a975f25bfcf493.tar.bz2 lua-1fce5bea817de50e055a84c153a975f25bfcf493.zip |
More uniform implementation for tail calls
'luaD_pretailcall' mimics 'luaD_precall', handling call metamethods
and calling C functions directly. That makes the code in the
interpreter loop simpler.
This commit also goes back to emulating the tail call in 'luaD_precall'
with a goto, as C compilers may not do proper tail calls and the C
stack can overflow much sooner than the Lua stack (which grows as the
metamethod is added to it).
Diffstat (limited to 'ltablib.c')
0 files changed, 0 insertions, 0 deletions