diff --git a/src/lj_err.c b/src/lj_err.c index fd3545e3..de26a502 100644 --- a/src/lj_err.c +++ b/src/lj_err.c @@ -136,6 +136,7 @@ static void *err_unwind(lua_State *L, void *stopcf, int errcode) case FRAME_CP: /* Protected C frame. */ if (cframe_canyield(cf)) { /* Resume? */ if (errcode) { + hook_leave(G(L)); /* Assumes nobody uses coroutines inside hooks. */ L->cframe = NULL; L->status = (uint8_t)errcode; }