[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Question regarding the XML parser binding in PIL
- From: "Sam Roberts" <vieuxtech@...>
- Date: Fri, 21 Nov 2008 08:46:58 -0800
On Fri, Nov 21, 2008 at 7:31 AM, Florian Weimer <fw@deneb.enyo.de> wrote:
> The PIL XML parser example has this code:
This is a little confusing, could you maybe describe what you are trying to do?
> | static int lxp_parse (lua_State *L) {
>
> [...]
>
> | xpu->L = L; /* set Lua state */
>
> The C callbacks use this L as the Lua state for C-to-Lua calls. I can
> see that this works if the XML parser object is only accessed through
> Lua (before every callback, L is properly initialized). In a similar
What do you mean by only accessed through lua? These callbacks are
registered into a lua_State (valid, of course), so how could they be
called without that state, L, being properly initialized L?
> case, I would like to avoid this restriction. Is it sufficient to
> create a new Lua thread and use its state in the callback? In
> general, I would feel more comfortable about such an approach.
At this point, it sounds like you are intending to call these functions like:
L = lua_newstate();
lxp_parse(L);
but that isn't what they are for. You should just be registering it
with a lua state, and call from lua as
lxp.parse(...)
Sam