diff options
| author | Mike Pall <mike> | 2012-12-06 14:14:11 +0100 |
|---|---|---|
| committer | Mike Pall <mike> | 2012-12-06 14:14:11 +0100 |
| commit | e422ae2d9d184592066c1252ba0b391c4a1830ba (patch) | |
| tree | 674d4dce376d510263dd1e4763ddfba2445b1e8d /src | |
| parent | 41738e371a615d0e06b6a28c15e416652181c823 (diff) | |
| download | luajit-e422ae2d9d184592066c1252ba0b391c4a1830ba.tar.gz luajit-e422ae2d9d184592066c1252ba0b391c4a1830ba.tar.bz2 luajit-e422ae2d9d184592066c1252ba0b391c4a1830ba.zip | |
Leave hook when resume catches error thrown from hook.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lj_err.c | 1 |
1 files changed, 1 insertions, 0 deletions
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) | |||
| 136 | case FRAME_CP: /* Protected C frame. */ | 136 | case FRAME_CP: /* Protected C frame. */ |
| 137 | if (cframe_canyield(cf)) { /* Resume? */ | 137 | if (cframe_canyield(cf)) { /* Resume? */ |
| 138 | if (errcode) { | 138 | if (errcode) { |
| 139 | hook_leave(G(L)); /* Assumes nobody uses coroutines inside hooks. */ | ||
| 139 | L->cframe = NULL; | 140 | L->cframe = NULL; |
| 140 | L->status = (uint8_t)errcode; | 141 | L->status = (uint8_t)errcode; |
| 141 | } | 142 | } |
