[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: Full userdata and metamethods (mail resent)
- From: Duncan Cross <duncan.cross@...>
- Date: Mon, 9 Nov 2009 21:24:12 +0000
On Mon, Nov 9, 2009 at 9:01 PM, liam mail <email@example.com> wrote:
> 2009/11/9 Duncan Cross <firstname.lastname@example.org>
>> On Mon, Nov 9, 2009 at 8:41 PM, liam mail <email@example.com>
>> > Duncan you are correct that in pushing the function twice they are not
>> > equal
>> > (checked using lua_rawequal which seems strange); yet pushing the
>> > function
>> > once then using push_value whilst they are raw equal as you would expect
>> > still does not call the function.
>> My final observation in the code is another boolean/number problem
>> right at the end, when you get the result:
>> > int result = lua_tointeger(s,-1);
>> ...this should be lua_toboolean() instead. lua_tointeger() will return
>> 0 for either boolean value.
> Yes another good catch, unfortunately the code I posted was to verify the
> result I was seeing using binding code which was pushing and pulling
> booleans. I feel this would not stop the function being called yet have
> adjusted the code and will inline it below for fullness.
Okay, I have finally tried actually *running* the code :) In three
lines you refer to '*m_lua', instead of 's'. I changed these and it
seems to work for me.