#include <lua/lobject.h>Go to the source code of this file.
Defines | |
| #define | GCSpause 0 |
| #define | GCSpropagate 1 |
| #define | GCSsweepstring 2 |
| #define | GCSsweep 3 |
| #define | GCSfinalize 4 |
| #define | resetbits(x, m) ((x) &= cast(lu_byte, ~(m))) |
| #define | setbits(x, m) ((x) |= (m)) |
| #define | testbits(x, m) ((x) & (m)) |
| #define | bitmask(b) (1<<(b)) |
| #define | bit2mask(b1, b2) (bitmask(b1) | bitmask(b2)) |
| #define | l_setbit(x, b) setbits(x, bitmask(b)) |
| #define | resetbit(x, b) resetbits(x, bitmask(b)) |
| #define | testbit(x, b) testbits(x, bitmask(b)) |
| #define | set2bits(x, b1, b2) setbits(x, (bit2mask(b1, b2))) |
| #define | reset2bits(x, b1, b2) resetbits(x, (bit2mask(b1, b2))) |
| #define | test2bits(x, b1, b2) testbits(x, (bit2mask(b1, b2))) |
| #define | WHITE0BIT 0 |
| #define | WHITE1BIT 1 |
| #define | BLACKBIT 2 |
| #define | FINALIZEDBIT 3 |
| #define | KEYWEAKBIT 3 |
| #define | VALUEWEAKBIT 4 |
| #define | FIXEDBIT 5 |
| #define | SFIXEDBIT 6 |
| #define | WHITEBITS bit2mask(WHITE0BIT, WHITE1BIT) |
| #define | iswhite(x) test2bits((x)->gch.marked, WHITE0BIT, WHITE1BIT) |
| #define | isblack(x) testbit((x)->gch.marked, BLACKBIT) |
| #define | isgray(x) (!isblack(x) && !iswhite(x)) |
| #define | otherwhite(g) (g->currentwhite ^ WHITEBITS) |
| #define | isdead(g, v) ((v)->gch.marked & otherwhite(g) & WHITEBITS) |
| #define | changewhite(x) ((x)->gch.marked ^= WHITEBITS) |
| #define | gray2black(x) l_setbit((x)->gch.marked, BLACKBIT) |
| #define | valiswhite(x) (iscollectable(x) && iswhite(gcvalue(x))) |
| #define | luaC_white(g) cast(lu_byte, (g)->currentwhite & WHITEBITS) |
| #define | luaC_checkGC(L) |
| #define | luaC_barrier(L, p, v) |
| #define | luaC_barriert(L, t, v) |
| #define | luaC_objbarrier(L, p, o) |
| #define | luaC_objbarriert(L, t, o) { if (iswhite(obj2gco(o)) && isblack(obj2gco(t))) luaC_barrierback(L,t); } |
Functions | |
| LUAI_FUNC size_t | luaC_separateudata (lua_State *L, int all) |
| LUAI_FUNC void | luaC_callGCTM (lua_State *L) |
| LUAI_FUNC void | luaC_freeall (lua_State *L) |
| LUAI_FUNC void | luaC_step (lua_State *L) |
| LUAI_FUNC void | luaC_fullgc (lua_State *L) |
| LUAI_FUNC void | luaC_link (lua_State *L, GCObject *o, lu_byte tt) |
| LUAI_FUNC void | luaC_linkupval (lua_State *L, UpVal *uv) |
| LUAI_FUNC void | luaC_barrierf (lua_State *L, GCObject *o, GCObject *v) |
| LUAI_FUNC void | luaC_barrierback (lua_State *L, Table *t) |
| #define GCSpause 0 |
| #define GCSpropagate 1 |
| #define GCSsweepstring 2 |
| #define GCSsweep 3 |
| #define GCSfinalize 4 |
| #define resetbits | ( | x, | |
| m | |||
| ) | ((x) &= cast(lu_byte, ~(m))) |
| #define setbits | ( | x, | |
| m | |||
| ) | ((x) |= (m)) |
| #define testbits | ( | x, | |
| m | |||
| ) | ((x) & (m)) |
| #define bitmask | ( | b | ) | (1<<(b)) |
| #define bit2mask | ( | b1, | |
| b2 | |||
| ) | (bitmask(b1) | bitmask(b2)) |
| #define l_setbit | ( | x, | |
| b | |||
| ) | setbits(x, bitmask(b)) |
| #define resetbit | ( | x, | |
| b | |||
| ) | resetbits(x, bitmask(b)) |
| #define testbit | ( | x, | |
| b | |||
| ) | testbits(x, bitmask(b)) |
| #define set2bits | ( | x, | |
| b1, | |||
| b2 | |||
| ) | setbits(x, (bit2mask(b1, b2))) |
| #define reset2bits | ( | x, | |
| b1, | |||
| b2 | |||
| ) | resetbits(x, (bit2mask(b1, b2))) |
| #define test2bits | ( | x, | |
| b1, | |||
| b2 | |||
| ) | testbits(x, (bit2mask(b1, b2))) |
| #define WHITE0BIT 0 |
| #define WHITE1BIT 1 |
| #define BLACKBIT 2 |
| #define FINALIZEDBIT 3 |
| #define KEYWEAKBIT 3 |
| #define VALUEWEAKBIT 4 |
| #define FIXEDBIT 5 |
| #define SFIXEDBIT 6 |
| #define WHITEBITS bit2mask(WHITE0BIT, WHITE1BIT) |
| #define iswhite | ( | x | ) | test2bits((x)->gch.marked, WHITE0BIT, WHITE1BIT) |
| #define isblack | ( | x | ) | testbit((x)->gch.marked, BLACKBIT) |
| #define isgray | ( | x | ) | (!isblack(x) && !iswhite(x)) |
| #define otherwhite | ( | g | ) | (g->currentwhite ^ WHITEBITS) |
| #define isdead | ( | g, | |
| v | |||
| ) | ((v)->gch.marked & otherwhite(g) & WHITEBITS) |
| #define changewhite | ( | x | ) | ((x)->gch.marked ^= WHITEBITS) |
| #define gray2black | ( | x | ) | l_setbit((x)->gch.marked, BLACKBIT) |
| #define valiswhite | ( | x | ) | (iscollectable(x) && iswhite(gcvalue(x))) |
| #define luaC_white | ( | g | ) | cast(lu_byte, (g)->currentwhite & WHITEBITS) |
| #define luaC_checkGC | ( | L | ) |
{ \
condhardstacktests(luaD_reallocstack(L, L->stacksize - EXTRA_STACK - 1)); \
if (G(L)->totalbytes >= G(L)->GCthreshold) \
luaC_step(L); }
| #define luaC_barrier | ( | L, | |
| p, | |||
| v | |||
| ) |
{ if (valiswhite(v) && isblack(obj2gco(p))) \
luaC_barrierf(L,obj2gco(p),gcvalue(v)); }
| #define luaC_barriert | ( | L, | |
| t, | |||
| v | |||
| ) |
{ if (valiswhite(v) && isblack(obj2gco(t))) \
luaC_barrierback(L,t); }
| #define luaC_objbarrier | ( | L, | |
| p, | |||
| o | |||
| ) |
| #define luaC_objbarriert | ( | L, | |
| t, | |||
| o | |||
| ) | { if (iswhite(obj2gco(o)) && isblack(obj2gco(t))) luaC_barrierback(L,t); } |
| LUAI_FUNC size_t luaC_separateudata | ( | lua_State * | L, |
| int | all | ||
| ) |
| LUAI_FUNC void luaC_callGCTM | ( | lua_State * | L | ) |
| LUAI_FUNC void luaC_freeall | ( | lua_State * | L | ) |
| LUAI_FUNC void luaC_step | ( | lua_State * | L | ) |
| LUAI_FUNC void luaC_fullgc | ( | lua_State * | L | ) |