diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2017-05-04 10:32:01 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2017-05-04 10:32:01 -0300 |
commit | 2376eb634751f92e6bcb9dc8dbc1ef88b9873319 (patch) | |
tree | 579780bc7ff3d1374a701298749eca3634a17edb /lgc.h | |
parent | 8634b2a0119e698e362fdb765f30258e79e1dfd0 (diff) | |
download | lua-2376eb634751f92e6bcb9dc8dbc1ef88b9873319.tar.gz lua-2376eb634751f92e6bcb9dc8dbc1ef88b9873319.tar.bz2 lua-2376eb634751f92e6bcb9dc8dbc1ef88b9873319.zip |
barrier for prototype's cache (with new gray list 'protogray' to keep
prototypes to have their caches visited again) + constant 'MAXMISS'
Diffstat (limited to 'lgc.h')
-rw-r--r-- | lgc.h | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lgc.h,v 2.95 2017/04/10 13:33:04 roberto Exp roberto $ | 2 | ** $Id: lgc.h,v 2.96 2017/04/11 18:41:09 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 | */ |
@@ -151,6 +151,9 @@ | |||
151 | (isblack(p) && iswhite(o)) ? \ | 151 | (isblack(p) && iswhite(o)) ? \ |
152 | luaC_barrier_(L,obj2gco(p),obj2gco(o)) : cast_void(0)) | 152 | luaC_barrier_(L,obj2gco(p),obj2gco(o)) : cast_void(0)) |
153 | 153 | ||
154 | #define luaC_protobarrier(L,p,o) \ | ||
155 | (isblack(p) ? luaC_protobarrier_(L,p) : cast_void(0)) | ||
156 | |||
154 | LUAI_FUNC void luaC_fix (lua_State *L, GCObject *o); | 157 | LUAI_FUNC void luaC_fix (lua_State *L, GCObject *o); |
155 | LUAI_FUNC void luaC_freeallobjects (lua_State *L); | 158 | LUAI_FUNC void luaC_freeallobjects (lua_State *L); |
156 | LUAI_FUNC void luaC_step (lua_State *L); | 159 | LUAI_FUNC void luaC_step (lua_State *L); |
@@ -159,6 +162,7 @@ LUAI_FUNC void luaC_fullgc (lua_State *L, int isemergency); | |||
159 | LUAI_FUNC GCObject *luaC_newobj (lua_State *L, int tt, size_t sz); | 162 | LUAI_FUNC GCObject *luaC_newobj (lua_State *L, int tt, size_t sz); |
160 | LUAI_FUNC void luaC_barrier_ (lua_State *L, GCObject *o, GCObject *v); | 163 | LUAI_FUNC void luaC_barrier_ (lua_State *L, GCObject *o, GCObject *v); |
161 | LUAI_FUNC void luaC_barrierback_ (lua_State *L, Table *o); | 164 | LUAI_FUNC void luaC_barrierback_ (lua_State *L, Table *o); |
165 | LUAI_FUNC void luaC_protobarrier_ (lua_State *L, Proto *p); | ||
162 | LUAI_FUNC void luaC_checkfinalizer (lua_State *L, GCObject *o, Table *mt); | 166 | LUAI_FUNC void luaC_checkfinalizer (lua_State *L, GCObject *o, Table *mt); |
163 | LUAI_FUNC void luaC_changemode (lua_State *L, int newmode); | 167 | LUAI_FUNC void luaC_changemode (lua_State *L, int newmode); |
164 | 168 | ||