|
Lua calls __index only when you're trying to read
from a field. When you're trying to write to a field (the case in your script)
Lua calls __newindex instead. __index=get, __newindex=set. Please check the
manual for more details (including Lua code for the field read and field write
behavior.
For your proxy tables you'll be better off storing
pointers to the structs in userdata, setting the __index metamethod to a C
function that retrieves the pointer and returns the valueof the correct
member and __newindex to a C function that retrieves the pointer and writes
to the correct struct member. You can even use the __gc metamethod to free the
struct.
--
Fabio
|