lua-users home
lua-l archive

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


> > Looking into the source code of Lua 5.2.3, I found that in line #93 of
> > lmem.c, the function luaD_throw(L, LUA_ERRMEM) is called without
> > pushing first an error message on top of the stack. Other calls of
> > luaD_throw, however, push an error message to the stack, e.g. function
> > lexerror() in llex.c, line #110 or function checkmode() in ldo.c,
> > line #635.
> > 
> > Is this a bug?
> 
> There seems to be a bug, but not there. As lhf pointed out, memory
> errors are handled differently; the error message for them is pushed in
> ldo.c, function 'seterrorobj'.

The bug is that 'seterrorobj' is not called in the case of a panic.
(For protected calls, the error message "not enough memory" is returned
correctly.)

-- Roberto