From cbdf4969ec425f1df1ade358425c0bf0bf811d83 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Thu, 23 May 2024 09:55:26 -0300 Subject: Manual: errors in lua_toclose are not memory errors --- lauxlib.c | 2 +- liolib.c | 2 +- manual/manual.of | 5 ++++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lauxlib.c b/lauxlib.c index 1f786e15..fec834d3 100644 --- a/lauxlib.c +++ b/lauxlib.c @@ -951,7 +951,7 @@ LUALIB_API const char *luaL_tolstring (lua_State *L, int idx, size_t *len) { LUALIB_API void luaL_setfuncs (lua_State *L, const luaL_Reg *l, int nup) { luaL_checkstack(L, nup, "too many upvalues"); for (; l->name != NULL; l++) { /* fill the table with given functions */ - if (l->func == NULL) /* place holder? */ + if (l->func == NULL) /* placeholder? */ lua_pushboolean(L, 0); else { int i; diff --git a/liolib.c b/liolib.c index b08397da..6879a603 100644 --- a/liolib.c +++ b/liolib.c @@ -773,7 +773,7 @@ static const luaL_Reg meth[] = { ** metamethods for file handles */ static const luaL_Reg metameth[] = { - {"__index", NULL}, /* place holder */ + {"__index", NULL}, /* placeholder */ {"__gc", f_gc}, {"__close", f_gc}, {"__tostring", f_tostring}, diff --git a/manual/manual.of b/manual/manual.of index 5aea2623..f830b01c 100644 --- a/manual/manual.of +++ b/manual/manual.of @@ -4475,7 +4475,7 @@ otherwise, returns @id{NULL}. } @APIEntry{void lua_toclose (lua_State *L, int index);| -@apii{0,0,m} +@apii{0,0,v} Marks the given index in the stack as a to-be-closed slot @see{to-be-closed}. @@ -4492,6 +4492,9 @@ A slot marked as to-be-closed should not be removed from the stack by any other function in the API except @Lid{lua_settop} or @Lid{lua_pop}, unless previously deactivated by @Lid{lua_closeslot}. +This function raises an error if the value at the given slot +neither has a @idx{__close} metamethod nor is a false value. + This function should not be called for an index that is equal to or below an active to-be-closed slot. -- cgit v1.2.3-55-g6feb