diff options
| author | Mike Pall <mike> | 2024-08-19 16:22:55 +0200 |
|---|---|---|
| committer | Mike Pall <mike> | 2024-08-19 16:22:55 +0200 |
| commit | fddc9650d85ec6021c4e3509753b9a88766c5ae1 (patch) | |
| tree | ef6aea51539d66fedfe7ab6555a265b00f3d1a5d /src | |
| parent | ae4735f621d89d84758769b76432d2319dda9827 (diff) | |
| parent | bcc6cbb188e5e2e76d4aef2d48778202f65079dc (diff) | |
| download | luajit-fddc9650d85ec6021c4e3509753b9a88766c5ae1.tar.gz luajit-fddc9650d85ec6021c4e3509753b9a88766c5ae1.tar.bz2 luajit-fddc9650d85ec6021c4e3509753b9a88766c5ae1.zip | |
Merge branch 'master' into v2.1
Diffstat (limited to 'src')
| -rw-r--r-- | src/lj_asm_mips.h | 2 | ||||
| -rw-r--r-- | src/lj_gc.c | 5 | ||||
| -rw-r--r-- | src/lj_load.c | 3 |
3 files changed, 5 insertions, 5 deletions
diff --git a/src/lj_asm_mips.h b/src/lj_asm_mips.h index 5b83e34d..2f64f491 100644 --- a/src/lj_asm_mips.h +++ b/src/lj_asm_mips.h | |||
| @@ -456,7 +456,7 @@ static void asm_retf(ASMState *as, IRIns *ir) | |||
| 456 | emit_addptr(as, base, -8*delta); | 456 | emit_addptr(as, base, -8*delta); |
| 457 | asm_guard(as, MIPSI_BNE, RID_TMP, | 457 | asm_guard(as, MIPSI_BNE, RID_TMP, |
| 458 | ra_allock(as, igcptr(pc), rset_exclude(RSET_GPR, base))); | 458 | ra_allock(as, igcptr(pc), rset_exclude(RSET_GPR, base))); |
| 459 | emit_tsi(as, MIPSI_AL, RID_TMP, base, -8); | 459 | emit_tsi(as, MIPSI_AL, RID_TMP, base, (LJ_BE || LJ_FR2) ? -8 : -4); |
| 460 | } | 460 | } |
| 461 | 461 | ||
| 462 | /* -- Buffer operations --------------------------------------------------- */ | 462 | /* -- Buffer operations --------------------------------------------------- */ |
diff --git a/src/lj_gc.c b/src/lj_gc.c index 9cabdef0..69e78706 100644 --- a/src/lj_gc.c +++ b/src/lj_gc.c | |||
| @@ -604,12 +604,11 @@ void lj_gc_finalize_cdata(lua_State *L) | |||
| 604 | /* Free all remaining GC objects. */ | 604 | /* Free all remaining GC objects. */ |
| 605 | void lj_gc_freeall(global_State *g) | 605 | void lj_gc_freeall(global_State *g) |
| 606 | { | 606 | { |
| 607 | MSize i, strmask; | 607 | MSize i; |
| 608 | /* Free everything, except super-fixed objects (the main thread). */ | 608 | /* Free everything, except super-fixed objects (the main thread). */ |
| 609 | g->gc.currentwhite = LJ_GC_WHITES | LJ_GC_SFIXED; | 609 | g->gc.currentwhite = LJ_GC_WHITES | LJ_GC_SFIXED; |
| 610 | gc_fullsweep(g, &g->gc.root); | 610 | gc_fullsweep(g, &g->gc.root); |
| 611 | strmask = g->str.mask; | 611 | for (i = g->str.mask; i != ~(MSize)0; i--) /* Free all string hash chains. */ |
| 612 | for (i = 0; i <= strmask; i++) /* Free all string hash chains. */ | ||
| 613 | gc_sweepstr(g, &g->str.tab[i]); | 612 | gc_sweepstr(g, &g->str.tab[i]); |
| 614 | } | 613 | } |
| 615 | 614 | ||
diff --git a/src/lj_load.c b/src/lj_load.c index 152ef6da..fa6ed5bf 100644 --- a/src/lj_load.c +++ b/src/lj_load.c | |||
| @@ -102,12 +102,13 @@ LUALIB_API int luaL_loadfilex(lua_State *L, const char *filename, | |||
| 102 | int status; | 102 | int status; |
| 103 | const char *chunkname; | 103 | const char *chunkname; |
| 104 | if (filename) { | 104 | if (filename) { |
| 105 | chunkname = lua_pushfstring(L, "@%s", filename); | ||
| 105 | ctx.fp = fopen(filename, "rb"); | 106 | ctx.fp = fopen(filename, "rb"); |
| 106 | if (ctx.fp == NULL) { | 107 | if (ctx.fp == NULL) { |
| 108 | L->top--; | ||
| 107 | lua_pushfstring(L, "cannot open %s: %s", filename, strerror(errno)); | 109 | lua_pushfstring(L, "cannot open %s: %s", filename, strerror(errno)); |
| 108 | return LUA_ERRFILE; | 110 | return LUA_ERRFILE; |
| 109 | } | 111 | } |
| 110 | chunkname = lua_pushfstring(L, "@%s", filename); | ||
| 111 | } else { | 112 | } else { |
| 112 | ctx.fp = stdin; | 113 | ctx.fp = stdin; |
| 113 | chunkname = "=stdin"; | 114 | chunkname = "=stdin"; |
