Merge branch 'master' into v2.1

This commit is contained in:
Mike Pall 2024-08-19 16:22:55 +02:00
commit fddc9650d8
3 changed files with 5 additions and 5 deletions

View File

@ -456,7 +456,7 @@ static void asm_retf(ASMState *as, IRIns *ir)
emit_addptr(as, base, -8*delta); emit_addptr(as, base, -8*delta);
asm_guard(as, MIPSI_BNE, RID_TMP, asm_guard(as, MIPSI_BNE, RID_TMP,
ra_allock(as, igcptr(pc), rset_exclude(RSET_GPR, base))); ra_allock(as, igcptr(pc), rset_exclude(RSET_GPR, base)));
emit_tsi(as, MIPSI_AL, RID_TMP, base, -8); emit_tsi(as, MIPSI_AL, RID_TMP, base, (LJ_BE || LJ_FR2) ? -8 : -4);
} }
/* -- Buffer operations --------------------------------------------------- */ /* -- Buffer operations --------------------------------------------------- */

View File

@ -604,12 +604,11 @@ void lj_gc_finalize_cdata(lua_State *L)
/* Free all remaining GC objects. */ /* Free all remaining GC objects. */
void lj_gc_freeall(global_State *g) void lj_gc_freeall(global_State *g)
{ {
MSize i, strmask; MSize i;
/* Free everything, except super-fixed objects (the main thread). */ /* Free everything, except super-fixed objects (the main thread). */
g->gc.currentwhite = LJ_GC_WHITES | LJ_GC_SFIXED; g->gc.currentwhite = LJ_GC_WHITES | LJ_GC_SFIXED;
gc_fullsweep(g, &g->gc.root); gc_fullsweep(g, &g->gc.root);
strmask = g->str.mask; for (i = g->str.mask; i != ~(MSize)0; i--) /* Free all string hash chains. */
for (i = 0; i <= strmask; i++) /* Free all string hash chains. */
gc_sweepstr(g, &g->str.tab[i]); gc_sweepstr(g, &g->str.tab[i]);
} }

View File

@ -102,12 +102,13 @@ LUALIB_API int luaL_loadfilex(lua_State *L, const char *filename,
int status; int status;
const char *chunkname; const char *chunkname;
if (filename) { if (filename) {
chunkname = lua_pushfstring(L, "@%s", filename);
ctx.fp = fopen(filename, "rb"); ctx.fp = fopen(filename, "rb");
if (ctx.fp == NULL) { if (ctx.fp == NULL) {
L->top--;
lua_pushfstring(L, "cannot open %s: %s", filename, strerror(errno)); lua_pushfstring(L, "cannot open %s: %s", filename, strerror(errno));
return LUA_ERRFILE; return LUA_ERRFILE;
} }
chunkname = lua_pushfstring(L, "@%s", filename);
} else { } else {
ctx.fp = stdin; ctx.fp = stdin;
chunkname = "=stdin"; chunkname = "=stdin";