diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2010-04-29 18:43:36 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2010-04-29 18:43:36 -0300 |
commit | 23001d860789860ef53fc86f1a2a4af63c44e03f (patch) | |
tree | 4f9dda4def7e173355fd019edcbb28097910fe7a /lgc.h | |
parent | 5d79c6684b185888319d46837394a0fbcfde921f (diff) | |
download | lua-23001d860789860ef53fc86f1a2a4af63c44e03f.tar.gz lua-23001d860789860ef53fc86f1a2a4af63c44e03f.tar.bz2 lua-23001d860789860ef53fc86f1a2a4af63c44e03f.zip |
nasty GC bug: upvalue must be turned white when not keeping invariant,
but barrier was not being called when uv->v were already white.
Diffstat (limited to 'lgc.h')
-rw-r--r-- | lgc.h | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lgc.h,v 2.30 2010/03/25 13:06:36 roberto Exp roberto $ | 2 | ** $Id: lgc.h,v 2.31 2010/04/29 17:32:40 roberto Exp roberto $ |
3 | ** Garbage Collector | 3 | ** Garbage Collector |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -9,6 +9,7 @@ | |||
9 | 9 | ||
10 | 10 | ||
11 | #include "lobject.h" | 11 | #include "lobject.h" |
12 | #include "lstate.h" | ||
12 | 13 | ||
13 | 14 | ||
14 | /* | 15 | /* |
@@ -120,6 +121,6 @@ LUAI_FUNC GCObject *luaC_newobj (lua_State *L, int tt, size_t sz, | |||
120 | LUAI_FUNC void luaC_barrierf (lua_State *L, GCObject *o, GCObject *v); | 121 | LUAI_FUNC void luaC_barrierf (lua_State *L, GCObject *o, GCObject *v); |
121 | LUAI_FUNC void luaC_barrierback (lua_State *L, Table *t); | 122 | LUAI_FUNC void luaC_barrierback (lua_State *L, Table *t); |
122 | LUAI_FUNC void luaC_checkfinalizer (lua_State *L, Udata *u); | 123 | LUAI_FUNC void luaC_checkfinalizer (lua_State *L, Udata *u); |
123 | 124 | LUAI_FUNC void luaC_checkupvalcolor (global_State *g, UpVal *uv); | |
124 | 125 | ||
125 | #endif | 126 | #endif |