浏览代码

Leave hook when resume catches error thrown from hook.

Mike Pall 12 年之前
父节点
当前提交
e422ae2d9d
共有 1 个文件被更改,包括 1 次插入0 次删除
  1. 1 0
      src/lj_err.c

+ 1 - 0
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;
 	}