From e422ae2d9d184592066c1252ba0b391c4a1830ba Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Thu, 6 Dec 2012 14:14:11 +0100 Subject: [PATCH] Leave hook when resume catches error thrown from hook. --- src/lj_err.c | 1 + 1 file changed, 1 insertion(+) 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; }