From 1d5c2ce4e295562daddfe6ce8e470749f0d42542 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Sun, 21 Oct 2012 19:15:03 +0200 Subject: Replace error with PANIC for callbacks from JIT-compiled code. --- src/lj_ccallback.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/lj_ccallback.c b/src/lj_ccallback.c index 430643ee..e1d03fcf 100644 --- a/src/lj_ccallback.c +++ b/src/lj_ccallback.c @@ -527,10 +527,14 @@ static void callback_conv_result(CTState *cts, lua_State *L, TValue *o) lua_State * LJ_FASTCALL lj_ccallback_enter(CTState *cts, void *cf) { lua_State *L = cts->L; + global_State *g = cts->g; lua_assert(L != NULL); - if (gcref(cts->g->jit_L)) - lj_err_caller(gco2th(gcref(cts->g->jit_L)), LJ_ERR_FFI_BADCBACK); - lj_trace_abort(cts->g); /* Never record across callback. */ + if (gcref(g->jit_L)) { + setstrV(L, L->top++, lj_err_str(L, LJ_ERR_FFI_BADCBACK)); + if (g->panic) g->panic(L); + exit(EXIT_FAILURE); + } + lj_trace_abort(g); /* Never record across callback. */ /* Setup C frame. */ cframe_prev(cf) = L->cframe; setcframe_L(cf, L); -- cgit v1.2.3-55-g6feb