lua

A copy of the Lua development repository
Log | Files | Refs | README

commit 68109afcdb59a7eeb75bacf055abce3e56a53645
parent 9cf3299fafa41718e3cb260cc94d1d29bba6335b
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date:   Mon,  3 Aug 2020 16:04:43 -0300

Detail (in asserts)

Macro 'checkconsistency' replaced by the similar 'checkliveness".

Diffstat:
Mlgc.c | 5+----
Mlobject.h | 3++-
2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/lgc.c b/lgc.c @@ -80,16 +80,13 @@ #define keyiswhite(n) (keyiscollectable(n) && iswhite(gckey(n))) -#define checkconsistency(obj) \ - lua_longassert(!iscollectable(obj) || righttt(obj)) - /* ** Protected access to objects in values */ #define gcvalueN(o) (iscollectable(o) ? gcvalue(o) : NULL) -#define markvalue(g,o) { checkconsistency(o); \ +#define markvalue(g,o) { checkliveness(g->mainthread,o); \ if (valiswhite(o)) reallymarkobject(g,gcvalue(o)); } #define markkey(g, n) { if keyiswhite(n) reallymarkobject(g,gckey(n)); } diff --git a/lobject.h b/lobject.h @@ -96,7 +96,8 @@ typedef struct TValue { /* ** Any value being manipulated by the program either is non ** collectable, or the collectable object has the right tag -** and it is not dead. +** and it is not dead. The option 'L == NULL' allows other +** macros using this one to be used where L is not available. */ #define checkliveness(L,obj) \ ((void)L, lua_longassert(!iscollectable(obj) || \