#include <string.h>#include "lua.h"#include "ldebug.h"#include "ldo.h"#include "lfunc.h"#include "lgc.h"#include "lmem.h"#include "lobject.h"#include "lstate.h"#include "lstring.h"#include "ltable.h"#include "ltm.h"Defines | |
| #define | lgc_c |
| #define | LUA_CORE |
| #define | GCSTEPSIZE 1024u |
| #define | GCSWEEPMAX 40 |
| #define | GCSWEEPCOST 10 |
| #define | GCFINALIZECOST 100 |
| #define | maskmarks cast_byte(~(bitmask(BLACKBIT)|WHITEBITS)) |
| #define | makewhite(g, x) ((x)->gch.marked = cast_byte(((x)->gch.marked & maskmarks) | luaC_white(g))) |
| #define | white2gray(x) reset2bits((x)->gch.marked, WHITE0BIT, WHITE1BIT) |
| #define | black2gray(x) resetbit((x)->gch.marked, BLACKBIT) |
| #define | stringmark(s) reset2bits((s)->tsv.marked, WHITE0BIT, WHITE1BIT) |
| #define | isfinalized(u) testbit((u)->marked, FINALIZEDBIT) |
| #define | markfinalized(u) l_setbit((u)->marked, FINALIZEDBIT) |
| #define | KEYWEAK bitmask(KEYWEAKBIT) |
| #define | VALUEWEAK bitmask(VALUEWEAKBIT) |
| #define | markvalue(g, o) |
| #define | markobject(g, t) |
| #define | setthreshold(g) (g->GCthreshold = (g->estimate/100) * g->gcpause) |
| #define | sweepwholelist(L, p) sweeplist(L,p,MAX_LUMEM) |
Functions | |
| static void | removeentry (Node *n) |
| static void | reallymarkobject (global_State *g, GCObject *o) |
| static void | marktmu (global_State *g) |
| size_t | luaC_separateudata (lua_State *L, int all) |
| static int | traversetable (global_State *g, Table *h) |
| static void | traverseproto (global_State *g, Proto *f) |
| static void | traverseclosure (global_State *g, Closure *cl) |
| static void | checkstacksizes (lua_State *L, StkId max) |
| static void | traversestack (global_State *g, lua_State *l) |
| static l_mem | propagatemark (global_State *g) |
| static size_t | propagateall (global_State *g) |
| static int | iscleared (const TValue *o, int iskey) |
| static void | cleartable (GCObject *l) |
| static void | freeobj (lua_State *L, GCObject *o) |
| static GCObject ** | sweeplist (lua_State *L, GCObject **p, lu_mem count) |
| static void | checkSizes (lua_State *L) |
| static void | GCTM (lua_State *L) |
| void | luaC_callGCTM (lua_State *L) |
| void | luaC_freeall (lua_State *L) |
| static void | markmt (global_State *g) |
| static void | markroot (lua_State *L) |
| static void | remarkupvals (global_State *g) |
| static void | atomic (lua_State *L) |
| static l_mem | singlestep (lua_State *L) |
| void | luaC_step (lua_State *L) |
| void | luaC_fullgc (lua_State *L) |
| void | luaC_barrierf (lua_State *L, GCObject *o, GCObject *v) |
| void | luaC_barrierback (lua_State *L, Table *t) |
| void | luaC_link (lua_State *L, GCObject *o, lu_byte tt) |
| void | luaC_linkupval (lua_State *L, UpVal *uv) |
| #define black2gray | ( | x | ) | resetbit((x)->gch.marked, BLACKBIT) |
| #define GCFINALIZECOST 100 |
| #define GCSTEPSIZE 1024u |
| #define GCSWEEPCOST 10 |
| #define GCSWEEPMAX 40 |
| #define isfinalized | ( | u | ) | testbit((u)->marked, FINALIZEDBIT) |
| #define KEYWEAK bitmask(KEYWEAKBIT) |
| #define lgc_c |
| #define LUA_CORE |
| #define makewhite | ( | g, | |||
| x | ) | ((x)->gch.marked = cast_byte(((x)->gch.marked & maskmarks) | luaC_white(g))) |
| #define markfinalized | ( | u | ) | l_setbit((u)->marked, FINALIZEDBIT) |
| #define markobject | ( | g, | |||
| t | ) |
Value:
{ if (iswhite(obj2gco(t))) \
reallymarkobject(g, obj2gco(t)); }
| #define markvalue | ( | g, | |||
| o | ) |
Value:
{ checkconsistency(o); \
if (iscollectable(o) && iswhite(gcvalue(o))) reallymarkobject(g,gcvalue(o)); }
| #define maskmarks cast_byte(~(bitmask(BLACKBIT)|WHITEBITS)) |
| #define setthreshold | ( | g | ) | (g->GCthreshold = (g->estimate/100) * g->gcpause) |
| #define stringmark | ( | s | ) | reset2bits((s)->tsv.marked, WHITE0BIT, WHITE1BIT) |
| #define VALUEWEAK bitmask(VALUEWEAKBIT) |
| #define white2gray | ( | x | ) | reset2bits((x)->gch.marked, WHITE0BIT, WHITE1BIT) |
| static void atomic | ( | lua_State * | L | ) | [static] |
| static void checkSizes | ( | lua_State * | L | ) | [static] |
| static void cleartable | ( | GCObject * | l | ) | [static] |
| static void GCTM | ( | lua_State * | L | ) | [static] |
| static int iscleared | ( | const TValue * | o, | |
| int | iskey | |||
| ) | [static] |
| void luaC_callGCTM | ( | lua_State * | L | ) |
| void luaC_freeall | ( | lua_State * | L | ) |
| void luaC_fullgc | ( | lua_State * | L | ) |
| size_t luaC_separateudata | ( | lua_State * | L, | |
| int | all | |||
| ) |
| void luaC_step | ( | lua_State * | L | ) |
| static void markmt | ( | global_State * | g | ) | [static] |
| static void markroot | ( | lua_State * | L | ) | [static] |
| static void marktmu | ( | global_State * | g | ) | [static] |
| static size_t propagateall | ( | global_State * | g | ) | [static] |
| static l_mem propagatemark | ( | global_State * | g | ) | [static] |
| static void reallymarkobject | ( | global_State * | g, | |
| GCObject * | o | |||
| ) | [static] |
| static void remarkupvals | ( | global_State * | g | ) | [static] |
| static void removeentry | ( | Node * | n | ) | [static] |
| static void traverseclosure | ( | global_State * | g, | |
| Closure * | cl | |||
| ) | [static] |
| static void traverseproto | ( | global_State * | g, | |
| Proto * | f | |||
| ) | [static] |
| static void traversestack | ( | global_State * | g, | |
| lua_State * | l | |||
| ) | [static] |
| static int traversetable | ( | global_State * | g, | |
| Table * | h | |||
| ) | [static] |
1.5.5