Re: linking tables to C++ objects?
[
Date Prev][
Date Next][
Thread Prev][
Thread Next]
[
Date Index]
[
Thread Index]
- Subject: Re: linking tables to C++ objects?
- From: Graham Wakefield <lists@...>
- Date: 2007年2月26日 14:59:39 -0800
Thanks, but I think perhaps I wasn't clear enough about my needs; see
below:
On Feb 26, 2007, at 1:56 PM, Sam Roberts wrote:
REGISTRY[weakvaluedtable][table] = ptr
^-- probably unnecessary, see below
// from C++ ptr to table:
getfenv(REGISTRY[weakvaluedtable][ptr])
// from table to C++ ptr:
REGISTRY[weakvaluedtable][table]
Why would you would you want to map the table to the ptr?
lua code will have only a udata, and will pass a udata to C code,
your C
code will call lua_touserdata() to get the ptr. No table required.
Because I want to call back into the lua State from C++ at a later
point in time (after the main Lua chunk has run). That's why I need to
A) prevent the table being collected until I'm ready
B) get to the userdata/table from a raw pointer
Optional: if you need to go from udata -> table, maybe to store some
number of lua values with your udata, thats what lua_getfenv() is for.
Yes, but how do I get to the udata from a raw C++ pointer, after the
main Lua chunk has run (i.e. in response to a C++ event)?