Dear Lunatics,
I seek your advice.
I am running Lua 5.2 RC5 compiled with C++ Builder XE2.
When using luaL_checklstring() over a nil value on the Lua stack,
a system exception is raised.
The minimal snippet that reproduces the problem is below:
<code>
extern "C" {
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
}
void __fastcall TForm6::Button1Click(TObject *Sender)
{
lua_State* L = luaL_newstate();
if (L) {
lua_pushnil(L);
bool isnil = lua_isnil(L, -1);
unsigned int size;
//lua_pushstring(L,"ok");
try {
const char* p = luaL_checklstring(L, -1, &size);
}
catch (...) {
}
lua_close(L);
}
}
</code>
I expected that the function luaL_checklstring() would return NULL,
instead of raising an exception.
The questions is:
( ) I misundestood how to use luaL_checklstring, and it is not
safe to do it over a nil value.
( ) This issue is C++ [Builder] specific and it does not manifest
in other platforms
( ) There is a bug in luaL_checklstring
I would appreciate your advice if my code and expectations are
wrong.
Otherwise, if this is indeed a bug, I can reproduce and further
explore the problem in my platform
provided a more experienced in Lua partner give me guidance about
what to change inside Lua source code.
best regards,
Rod Senra
http://rodrigo.senra.nom.br