aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pall <mike>2023-06-02 11:42:58 +0200
committerMike Pall <mike>2023-06-02 11:42:58 +0200
commit2d8300c1944f3a62c10f0829e9b7847c5a6f0482 (patch)
treeb9ffe834d3a49650cba3832811985db65be8e98c
parent8e53ccc686541aebb44cb2e54489f943b86d8214 (diff)
downloadluajit-2d8300c1944f3a62c10f0829e9b7847c5a6f0482.tar.gz
luajit-2d8300c1944f3a62c10f0829e9b7847c5a6f0482.tar.bz2
luajit-2d8300c1944f3a62c10f0829e9b7847c5a6f0482.zip
Fix frame for on-trace out-of-memory error.
Reported by ruidong007.
-rw-r--r--src/lj_err.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/lj_err.c b/src/lj_err.c
index a497ab11..3ee70b86 100644
--- a/src/lj_err.c
+++ b/src/lj_err.c
@@ -777,6 +777,10 @@ LJ_NOINLINE void lj_err_mem(lua_State *L)
777{ 777{
778 if (L->status == LUA_ERRERR+1) /* Don't touch the stack during lua_open. */ 778 if (L->status == LUA_ERRERR+1) /* Don't touch the stack during lua_open. */
779 lj_vm_unwind_c(L->cframe, LUA_ERRMEM); 779 lj_vm_unwind_c(L->cframe, LUA_ERRMEM);
780 if (LJ_HASJIT) {
781 TValue *base = tvref(G(L)->jit_base);
782 if (base) L->base = base;
783 }
780 if (curr_funcisL(L)) L->top = curr_topL(L); 784 if (curr_funcisL(L)) L->top = curr_topL(L);
781 setstrV(L, L->top++, lj_err_str(L, LJ_ERR_ERRMEM)); 785 setstrV(L, L->top++, lj_err_str(L, LJ_ERR_ERRMEM));
782 lj_err_throw(L, LUA_ERRMEM); 786 lj_err_throw(L, LUA_ERRMEM);