[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: RE: lua hacking wondering
- From: "Virgil Smith" <Virgil@...>
- Date: Fri, 25 Jun 2004 18:48:11 -0500
> Furthermore what the heck do we need userdata for? Just attach a C buffer
> to a table so that you can conveniently associate C/Lua object pairs and
> you have userdata and tables all in one (they are almost the same anyway).
I think you are right on and I suggested this same thing recently (after
others suggested something extremely similar).
>I doubt most will find this sufficiently important as the current design
>works too.
Actually the current design doesn't work (or rather it has a very bad
side-effect). It is often desirable to store Lua data on a per userdata
basis. The userdata metatable is not a good fit as a location to store per
instance data because it is typically used for per "type" data rather than
per instance data. A weak table can be used to add per instance data to the
metatable (or elsewhere), however a circular reference from this per
instance data back to the userdata will cause this per instance data to be
uncollectable (until the whole weak table is gc'd).