lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Yeah I thought of that too, and I probably read about it too. Is that preferable to somehow using a reference? (I guess a reference would prevent the userdata itself from being collected...)


On Tue, Feb 12, 2013 at 2:05 PM, Kevin Martin <kev82@khn.org.uk> wrote:
Hi,

Unless I'm misunderstanding, isn't the standard way to do this is to maintain a weak table where the keys are lightuserdata with the address of of the full userdata, and the the values are the full userdata itsself.

You can then look the userdata up by address in the table.

thanks,
Kevin

On 12 Feb 2013, at 18:57, Marc Lepage wrote:

> Hi, I'm doing more with userdata and am just wondering, is it safe to push the address of a (full) userdata to keep a reference to it? And remove that reference in the userdata's __gc function?
>
> Basically, I want to store within the C userdata itself, a reference to the Lua object version of it. This is so that even if I pass it through C code (without Lua), I can later get back the Lua version of it, for additional processing.
>
> Or, is there a better way to turn the address of a (full) userdata, in C, back into its Lua object?