diff options
author | Mike Pall <mike> | 2010-02-28 22:22:45 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2010-02-28 22:22:45 +0100 |
commit | 89c90f09555598cf67735dbed7f4fb46941f2e5c (patch) | |
tree | 90cdcaf5ac919e4930c929e5962300923a29e023 /src | |
parent | 8cc50cf6b1c791e9d7694b5f47dc03f9456d08e1 (diff) | |
download | luajit-89c90f09555598cf67735dbed7f4fb46941f2e5c.tar.gz luajit-89c90f09555598cf67735dbed7f4fb46941f2e5c.tar.bz2 luajit-89c90f09555598cf67735dbed7f4fb46941f2e5c.zip |
Fix error message generation for OOM error.
Diffstat (limited to 'src')
-rw-r--r-- | src/lj_err.c | 1 | ||||
-rw-r--r-- | src/lj_gc.c | 4 |
2 files changed, 3 insertions, 2 deletions
diff --git a/src/lj_err.c b/src/lj_err.c index 0aaf5497..7db37f3b 100644 --- a/src/lj_err.c +++ b/src/lj_err.c | |||
@@ -737,6 +737,7 @@ LJ_NOINLINE void lj_err_mem(lua_State *L) | |||
737 | { | 737 | { |
738 | if (L->status == LUA_ERRERR+1) /* Don't touch the stack during lua_open. */ | 738 | if (L->status == LUA_ERRERR+1) /* Don't touch the stack during lua_open. */ |
739 | lj_vm_unwind_c(L->cframe, LUA_ERRMEM); | 739 | lj_vm_unwind_c(L->cframe, LUA_ERRMEM); |
740 | L->top = L->base; | ||
740 | setstrV(L, L->top++, lj_err_str(L, LJ_ERR_ERRMEM)); | 741 | setstrV(L, L->top++, lj_err_str(L, LJ_ERR_ERRMEM)); |
741 | lj_err_throw(L, LUA_ERRMEM); | 742 | lj_err_throw(L, LUA_ERRMEM); |
742 | } | 743 | } |
diff --git a/src/lj_gc.c b/src/lj_gc.c index 19cc9e7b..276cd4da 100644 --- a/src/lj_gc.c +++ b/src/lj_gc.c | |||
@@ -746,7 +746,7 @@ void *lj_mem_realloc(lua_State *L, void *p, MSize osz, MSize nsz) | |||
746 | lua_assert((osz == 0) == (p == NULL)); | 746 | lua_assert((osz == 0) == (p == NULL)); |
747 | p = g->allocf(g->allocd, p, osz, nsz); | 747 | p = g->allocf(g->allocd, p, osz, nsz); |
748 | if (p == NULL && nsz > 0) | 748 | if (p == NULL && nsz > 0) |
749 | lj_err_throw(L, LUA_ERRMEM); | 749 | lj_err_mem(L); |
750 | lua_assert((nsz == 0) == (p == NULL)); | 750 | lua_assert((nsz == 0) == (p == NULL)); |
751 | lua_assert(checkptr32(p)); | 751 | lua_assert(checkptr32(p)); |
752 | g->gc.total = (g->gc.total - osz) + nsz; | 752 | g->gc.total = (g->gc.total - osz) + nsz; |
@@ -759,7 +759,7 @@ void *lj_mem_newgco(lua_State *L, MSize size) | |||
759 | global_State *g = G(L); | 759 | global_State *g = G(L); |
760 | GCobj *o = (GCobj *)g->allocf(g->allocd, NULL, 0, size); | 760 | GCobj *o = (GCobj *)g->allocf(g->allocd, NULL, 0, size); |
761 | if (o == NULL) | 761 | if (o == NULL) |
762 | lj_err_throw(L, LUA_ERRMEM); | 762 | lj_err_mem(L); |
763 | lua_assert(checkptr32(o)); | 763 | lua_assert(checkptr32(o)); |
764 | g->gc.total += size; | 764 | g->gc.total += size; |
765 | setgcrefr(o->gch.nextgc, g->gc.root); | 765 | setgcrefr(o->gch.nextgc, g->gc.root); |