On 09/02/2014 01:58 AM, Rena wrote:
More accurately, it should return the number of values it pushed,
which for most push functions will always be 1.
That would simplify returning a value slightly:
return lua_pushinteger(L, 42);
instead of:
lua_pushinteger(L, 42);
return 1;
Besides the small simplification for the writer of the code,
this would allow the C-compiler to do tail call optimization.
lua_pushx (L, xxx);
return 1;
compiles to
call lua_pushx
mov 1, register
return
where if lua_pushx would return 1, the then possible source code
return lua_pushx (L, xxx)
often times would be compiled to just:
jump lua_pushx
So there would actually be a small technical benefit.