[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: RE: Private data
- From: "Curt Carpenter" <curtc@...>
- Date: Wed, 3 Oct 2001 14:58:47 -0700
>>Does anyone have any good suggestions for how to deal with getting
back
>>to some private instance data when in a global C function called by
>>Lua?
>How about upvalues (ie C closures)? There's also the registry, where
you can store anything you want. --lhf
Upvalues won't work. I need a solution that applies to all functions
that could be called by Lua, including tag methods and call/line hooks.
Two people suggesting using the registry??? You guys scare me! :-) If I
were going to do that, I'd rather create a global variable in the lua
state and use that. But the point is I want a VERY fast O(1) map
(because it will be used all the time) from the lua_State to some
pointer into my own stuff. I think I'm going to resort to modifying Lua,
and I would make this a feature request for 4.1.
Just add the following two functions:
LUA_API void * lua_GetPrivateData(lua_State *L)
{
return L->pprivatedata;
}
LUA_API void * lua_SetPrivateData(lua_State *L, void * p)
{
L->pprivatedata = p;
}
And add
void * pprivatedata;
to the struct lua_State.