[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Missing error message in panic handler / calling luaD_throw without error message on stack
- From: Roberto Ierusalimschy <roberto@...>
- Date: Mon, 10 Nov 2014 11:18:57 -0200
> > 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