[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: [LuaJIT] C-API Question on meta table for C closure
- From: Michal Kottman <k0mpjut0r@...>
- Date: Fri, 03 Sep 2010 10:01:12 +0200
On Fri, 2010-09-03 at 09:49 +0200, Stefan Behnel wrote:
> ... I would
> have expected that other functions are not impacted by a metatable that I
> set on a single C function.
> Is that the expected behaviour? Is there a way to define a metatable only
> for a specific C function?
Citing the Lua manual (http://www.lua.org/manual/5.1/manual.html#2.8):
Tables and full userdata have individual metatables (although
multiple tables and userdata can share their metatables).
Values of all other types share one single metatable per type;
that is, there is one single metatable for all numbers, one for
all strings, etc.
Here, "etc." also contains functions - which means that you can have
only one metatable for functions globally. If you want to have a
callable object (which acts like a function), better create a
table/userdata and use the __call metamethod.