|
On Feb 02, 2005, at 14:45, Michael Cumming wrote:
Adam, Rici, Thank you for the replys... so a quick guess at the code would be... if (lua_isfunction (L,1)) // we have a function luacallbackfunction = luaL_ref(L, LUA_REGISTRYINDEX); When I want to use the function I can do lua_rawgeti(L, LUA_REGISTRYINDEX, luacallbackfunction); lua_pushxxx for the params lua_pcall (xxx)
Looks about right.By the way, since tables and userdata can also be called if they have the correct metamethod then it is bad practice to use lua_isfunction to test if a value is callable. I might, quite reasonably, pass in a "function" that was in fact a userdata that implemented the __call metamethod and your code would barf. On the other hand, I appreciate that you would like _some_ sanity check.
David Jones