lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


I'm having a weird problem with error handling in iup 2.5, running with Lua 5.11. This is a custom build, so its possible I've introduced a problem.
When an error occurs in an iup action handler, say a button:action() 
callback, it goes into a recursive loop until it exhausts the lua stack and 
traps with LUA_ERRERR ("error in error handling").
As best as I can see, the callback itself is being used as the error 
handling function, as it is at the first index on the stack.
I am curious as to what sets up the error handler?  In the C code, the 
action callback first calls iuplua_call_start(), which finds the named 
callback function, then uses iuplua_call() to call the callbak function. 
This directly calls lua_pcall(), passing 1 for the error handler.  I cannot 
see anywhere the error function would be put at this index, but perhaps I'm 
missing something.  There is another function defined, docall(), which sets 
up an error handler, but this doesn't seem to be involved in this case.
As I said, its entirely possible I've introduced this issue, but any 
pointers as to where the error function is supposed to be put on the stack 
in this case would be appreciated.
Love, Light and Peace,
- Peter Loveday