summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pall <mike>2014-12-15 01:55:45 +0100
committerMike Pall <mike>2014-12-15 01:55:45 +0100
commitc6e69249ddc69523eaa0c88f68c6f816a30b537c (patch)
tree903fd10cf299eab51fb6c2f0383dc585fe5105bb
parent6fddb9bc2e9e85a89aa229538103f1bd80d6b5be (diff)
downloadluajit2-c6e69249ddc69523eaa0c88f68c6f816a30b537c.tar.gz
Gracefully handle lua_error() for a suspended coroutine.
Thanks to Sergei Zhirikov.
-rw-r--r--src/lj_err.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/lj_err.c b/src/lj_err.c
index 3097795c..8010221f 100644
--- a/src/lj_err.c
+++ b/src/lj_err.c
@@ -499,8 +499,7 @@ static ptrdiff_t finderrfunc(lua_State *L)
{
cTValue *frame = L->base-1, *bot = tvref(L->stack);
void *cf = L->cframe;
- while (frame > bot) {
- lua_assert(cf != NULL);
+ while (frame > bot && cf) {
while (cframe_nres(cframe_raw(cf)) < 0) { /* cframe without frame? */
if (frame >= restorestack(L, -cframe_nres(cf)))
break;