Browse Source

Fix handling of errors during snapshot restore.

Mike Pall 5 năm trước cách đây
mục cha
commit
12ab596997
1 tập tin đã thay đổi với 2 bổ sung0 xóa
  1. 2 0
      src/lj_trace.c

+ 2 - 0
src/lj_trace.c

@@ -701,6 +701,8 @@ static TValue *trace_exit_cp(lua_State *L, lua_CFunction dummy, void *ud)
 {
   ExitDataCP *exd = (ExitDataCP *)ud;
   cframe_errfunc(L->cframe) = -1;  /* Inherit error function. */
+  /* Always catch error here. */
+  cframe_nres(L->cframe) = -2*LUAI_MAXSTACK*(int)sizeof(TValue);
   exd->pc = lj_snap_restore(exd->J, exd->exptr);
   UNUSED(dummy);
   return NULL;