Possible bug in luabind::call_function when building with LUABIND_NO_ERROR_CHECKING

Evan Odabashian <[email protected]>
Newsgroups gmane.comp.lang.lua.bind.user
Message-ID <[email protected]>
I'm compiling luabind-0.9 directly into my project with Visual Studio 2008.
I was trying to setup my release configuration to use
LUABIND_NO_ERROR_CHECKING for better performance and I seem to have run into
a problem with luabind::call_function returning null return values when it
wasn't with error checking enabled.

I think this code at line 140 of call_function.hpp is the problem:

#ifndef LUABIND_NO_ERROR_CHECKING

                    if (converter.match(L, LUABIND_DECORATE_TYPE(Ret), -1) <
0)
                    {
                             // error reporting here
                    }
#endif
                    return converter.apply(L, LUABIND_DECORATE_TYPE(Ret),
-1);

It looks like converter.match is what does all the actual work to retrieve
and convert the return value, and that converter.apply is effectively just a
static_cast to the specified type. When LUABIND_NO_ERROR_CHECKING is defined
however the call to 'match' gets compiled out.

I would guess something the following would fix the problem:

int result = convert.match(...)

#ifndef LUABIND_NO_ERROR_CHECKING
if (result < 0)
// error
#endif
return converter.apply(L, LUABIND_DECORATE_TYPE(Ret), -1);

Maybe I'm misinterpreting this code, but there's definitely a difference in
the behavior of this function depending on if LUABIND_NO_ERROR_CHECKING is
defined, so even if I'm wrong about the exact nature of the problem maybe
this is enough for somebody else to spot the real problem.

Thanks,
Evan

------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev

_______________________________________________
luabind-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/luabind-user
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.