native Lua  0.5.0-devel
Lua on the platform you use with the compiler you choose
Macros | Functions
lgc.c File Reference
#include "lprefix.h"
#include <stdio.h>
#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"
Include dependency graph for lgc.c:

Macros

#define lgc_c
 
#define LUA_CORE
 
#define GCSWEEPMAX   100
 
#define GCFINMAX   10
 
#define GCFINALIZECOST   50
 
#define WORK2MEM   sizeof(TValue)
 
#define PAUSEADJ   100
 
#define maskcolors   (~(bitmask(BLACKBIT) | WHITEBITS | AGEBITS))
 
#define makewhite(g, x)   (x->marked = cast_byte((x->marked & maskcolors) | luaC_white(g)))
 
#define white2gray(x)   resetbits(x->marked, WHITEBITS)
 
#define black2gray(x)   resetbit(x->marked, BLACKBIT)
 
#define valiswhite(x)   (iscollectable(x) && iswhite(gcvalue(x)))
 
#define keyiswhite(n)   (keyiscollectable(n) && iswhite(gckey(n)))
 
#define checkconsistency(obj)   lua_longassert(!iscollectable(obj) || righttt(obj))
 
#define gcvalueN(o)   (iscollectable(o) ? gcvalue(o) : NULL)
 
#define markvalue(g, o)
 
#define markkey(g, n)   { if keyiswhite(n) reallymarkobject(g,gckey(n)); }
 
#define markobject(g, t)   { if (iswhite(t)) reallymarkobject(g, obj2gco(t)); }
 
#define markobjectN(g, t)   { if (t) markobject(g,t); }
 
#define gnodelast(h)   gnode(h, cast_sizet(sizenode(h)))
 
#define linkgclist(o, p)   ((o)->gclist = (p), (p) = obj2gco(o))
 
#define linkobjgclist(o, p)   (*getgclist(o) = (p), (p) = obj2gco(o))
 
#define maskgencolors   (~(bitmask(BLACKBIT) | WHITEBITS))
 

Functions

void luaC_barrier_ (lua_State *L, GCObject *o, GCObject *v)
 
void luaC_barrierback_ (lua_State *L, GCObject *o)
 
void luaC_fix (lua_State *L, GCObject *o)
 
GCObjectluaC_newobj (lua_State *L, int tt, size_t sz)
 
void luaC_checkfinalizer (lua_State *L, GCObject *o, Table *mt)
 
void luaC_changemode (lua_State *L, int newmode)
 
void luaC_freeallobjects (lua_State *L)
 
void luaC_runtilstate (lua_State *L, int statesmask)
 
void luaC_step (lua_State *L)
 
void luaC_fullgc (lua_State *L, int isemergency)
 

Macro Definition Documentation

◆ black2gray

#define black2gray (   x)    resetbit(x->marked, BLACKBIT)

◆ checkconsistency

#define checkconsistency (   obj)    lua_longassert(!iscollectable(obj) || righttt(obj))

◆ GCFINALIZECOST

#define GCFINALIZECOST   50

◆ GCFINMAX

#define GCFINMAX   10

◆ GCSWEEPMAX

#define GCSWEEPMAX   100

◆ gcvalueN

#define gcvalueN (   o)    (iscollectable(o) ? gcvalue(o) : NULL)

◆ gnodelast

#define gnodelast (   h)    gnode(h, cast_sizet(sizenode(h)))

◆ keyiswhite

#define keyiswhite (   n)    (keyiscollectable(n) && iswhite(gckey(n)))

◆ lgc_c

#define lgc_c

◆ linkgclist

#define linkgclist (   o,
 
)    ((o)->gclist = (p), (p) = obj2gco(o))

◆ linkobjgclist

#define linkobjgclist (   o,
 
)    (*getgclist(o) = (p), (p) = obj2gco(o))

◆ LUA_CORE

#define LUA_CORE

◆ makewhite

#define makewhite (   g,
 
)    (x->marked = cast_byte((x->marked & maskcolors) | luaC_white(g)))

◆ markkey

#define markkey (   g,
 
)    { if keyiswhite(n) reallymarkobject(g,gckey(n)); }

◆ markobject

#define markobject (   g,
 
)    { if (iswhite(t)) reallymarkobject(g, obj2gco(t)); }

◆ markobjectN

#define markobjectN (   g,
 
)    { if (t) markobject(g,t); }

◆ markvalue

#define markvalue (   g,
 
)
Value:
if (valiswhite(o)) reallymarkobject(g,gcvalue(o)); }

◆ maskcolors

#define maskcolors   (~(bitmask(BLACKBIT) | WHITEBITS | AGEBITS))

◆ maskgencolors

#define maskgencolors   (~(bitmask(BLACKBIT) | WHITEBITS))

◆ PAUSEADJ

#define PAUSEADJ   100

◆ valiswhite

#define valiswhite (   x)    (iscollectable(x) && iswhite(gcvalue(x)))

◆ white2gray

#define white2gray (   x)    resetbits(x->marked, WHITEBITS)

◆ WORK2MEM

#define WORK2MEM   sizeof(TValue)

Function Documentation

◆ luaC_barrier_()

void luaC_barrier_ ( lua_State L,
GCObject o,
GCObject v 
)

◆ luaC_barrierback_()

void luaC_barrierback_ ( lua_State L,
GCObject o 
)

◆ luaC_changemode()

void luaC_changemode ( lua_State L,
int  newmode 
)

◆ luaC_checkfinalizer()

void luaC_checkfinalizer ( lua_State L,
GCObject o,
Table mt 
)

◆ luaC_fix()

void luaC_fix ( lua_State L,
GCObject o 
)

◆ luaC_freeallobjects()

void luaC_freeallobjects ( lua_State L)

◆ luaC_fullgc()

void luaC_fullgc ( lua_State L,
int  isemergency 
)

◆ luaC_newobj()

GCObject* luaC_newobj ( lua_State L,
int  tt,
size_t  sz 
)

◆ luaC_runtilstate()

void luaC_runtilstate ( lua_State L,
int  statesmask 
)

◆ luaC_step()

void luaC_step ( lua_State L)
gcvalue
#define gcvalue(o)
Definition: lobject.h:282
checkconsistency
#define checkconsistency(obj)
Definition: lgc.c:80
valiswhite
#define valiswhite(x)
Definition: lgc.c:75