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:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define GCFINALIZECOST   50
 
#define GCFINMAX   10
 
#define GCSWEEPMAX   100
 
#define gcvalueN(o)   (iscollectable(o) ? gcvalue(o) : NULL)
 
#define gnodelast(h)   gnode(h, cast_sizet(sizenode(h)))
 
#define keyiswhite(n)   (keyiscollectable(n) && iswhite(gckey(n)))
 
#define lgc_c
 
#define linkgclist(o, p)   linkgclist_(obj2gco(o), &(o)->gclist, &(p))
 
#define linkobjgclist(o, p)   linkgclist_(obj2gco(o), getgclist(o), &(p))
 
#define LUA_CORE
 
#define makewhite(g, x)   (x->marked = cast_byte((x->marked & ~maskcolors) | luaC_white(g)))
 
#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 markvalue(g, o)
 
#define maskcolors   (bitmask(BLACKBIT) | WHITEBITS)
 
#define maskgcbits   (maskcolors | AGEBITS)
 
#define PAUSEADJ   100
 
#define set2black(x)   (x->marked = cast_byte((x->marked & ~WHITEBITS) | bitmask(BLACKBIT)))
 
#define set2gray(x)   resetbits(x->marked, maskcolors)
 
#define valiswhite(x)   (iscollectable(x) && iswhite(gcvalue(x)))
 
#define WORK2MEM   sizeof(TValue)
 

Functions

static lu_mem atomic (lua_State *L)
 
static void atomic2gen (lua_State *L, global_State *g)
 
static void callallpendingfinalizers (lua_State *L)
 
static void checkpointer (GCObject **p, GCObject *o)
 
static void checkSizes (lua_State *L, global_State *g)
 
static void clearbykeys (global_State *g, GCObject *l)
 
static void clearbyvalues (global_State *g, GCObject *l, GCObject *f)
 
static void cleargraylists (global_State *g)
 
static void clearkey (Node *n)
 
static void convergeephemerons (global_State *g)
 
static GCObject ** correctgraylist (GCObject **p)
 
static void correctgraylists (global_State *g)
 
static void correctpointers (global_State *g, GCObject *o)
 
static void deletelist (lua_State *L, GCObject *p, GCObject *limit)
 
static void dothecall (lua_State *L, void *ud)
 
static lu_mem entergen (lua_State *L, global_State *g)
 
static void enterinc (global_State *g)
 
static void entersweep (lua_State *L)
 
static GCObject ** findlast (GCObject **p)
 
static void finishgencycle (lua_State *L, global_State *g)
 
static void freeobj (lua_State *L, GCObject *o)
 
static void freeupval (lua_State *L, UpVal *uv)
 
static lu_mem fullgen (lua_State *L, global_State *g)
 
static void fullinc (lua_State *L, global_State *g)
 
static void GCTM (lua_State *L)
 
static void genlink (global_State *g, GCObject *o)
 
static void genstep (lua_State *L, global_State *g)
 
static GCObject ** getgclist (GCObject *o)
 
static void incstep (lua_State *L, global_State *g)
 
static int iscleared (global_State *g, const GCObject *o)
 
static void linkgclist_ (GCObject *o, GCObject **pnext, GCObject **list)
 
void luaC_barrier_ (lua_State *L, GCObject *o, GCObject *v)
 
void luaC_barrierback_ (lua_State *L, GCObject *o)
 
void luaC_changemode (lua_State *L, int newmode)
 
void luaC_checkfinalizer (lua_State *L, GCObject *o, Table *mt)
 
void luaC_fix (lua_State *L, GCObject *o)
 
void luaC_freeallobjects (lua_State *L)
 
void luaC_fullgc (lua_State *L, int isemergency)
 
GCObjectluaC_newobj (lua_State *L, int tt, size_t sz)
 
void luaC_runtilstate (lua_State *L, int statesmask)
 
void luaC_step (lua_State *L)
 
static lu_mem markbeingfnz (global_State *g)
 
static void markmt (global_State *g)
 
static void markold (global_State *g, GCObject *from, GCObject *to)
 
static lu_mem propagateall (global_State *g)
 
static lu_mem propagatemark (global_State *g)
 
static void reallymarkobject (global_State *g, GCObject *o)
 
static int remarkupvals (global_State *g)
 
static void restartcollection (global_State *g)
 
static int runafewfinalizers (lua_State *L, int n)
 
static void separatetobefnz (global_State *g, int all)
 
static void setminordebt (global_State *g)
 
static void setpause (global_State *g)
 
static lu_mem singlestep (lua_State *L)
 
static void stepgenfull (lua_State *L, global_State *g)
 
static void sweep2old (lua_State *L, GCObject **p)
 
static GCObject ** sweepgen (lua_State *L, global_State *g, GCObject **p, GCObject *limit, GCObject **pfirstold1)
 
static GCObject ** sweeplist (lua_State *L, GCObject **p, int countin, int *countout)
 
static int sweepstep (lua_State *L, global_State *g, int nextstate, GCObject **nextlist)
 
static GCObject ** sweeptolive (lua_State *L, GCObject **p)
 
static int traverseCclosure (global_State *g, CClosure *cl)
 
static int traverseephemeron (global_State *g, Table *h, int inv)
 
static int traverseLclosure (global_State *g, LClosure *cl)
 
static int traverseproto (global_State *g, Proto *f)
 
static void traversestrongtable (global_State *g, Table *h)
 
static lu_mem traversetable (global_State *g, Table *h)
 
static int traversethread (global_State *g, lua_State *th)
 
static int traverseudata (global_State *g, Udata *u)
 
static void traverseweakvalue (global_State *g, Table *h)
 
static GCObjectudata2finalize (global_State *g)
 
static void whitelist (global_State *g, GCObject *p)
 
static void youngcollection (lua_State *L, global_State *g)
 

Macro Definition Documentation

#define GCFINALIZECOST   50

Definition at line 46 of file lgc.c.

#define GCFINMAX   10

Definition at line 40 of file lgc.c.

#define GCSWEEPMAX   100

Definition at line 35 of file lgc.c.

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

Definition at line 91 of file lgc.c.

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

Definition at line 122 of file lgc.c.

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

Definition at line 85 of file lgc.c.

#define lgc_c

Definition at line 7 of file lgc.c.

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

Definition at line 146 of file lgc.c.

#define linkobjgclist (   o,
 
)    linkgclist_(obj2gco(o), getgclist(o), &(p))

Definition at line 159 of file lgc.c.

#define LUA_CORE

Definition at line 8 of file lgc.c.

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

Definition at line 71 of file lgc.c.

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

Definition at line 97 of file lgc.c.

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

Definition at line 99 of file lgc.c.

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

Definition at line 105 of file lgc.c.

#define markvalue (   g,
 
)
Value:
{ checkliveness(g->mainthread,o); \
#define gcvalue(o)
Definition: lobject.h:281
#define valiswhite(x)
Definition: lgc.c:83
static void reallymarkobject(global_State *g, GCObject *o)
Definition: lgc.c:292
#define checkliveness(L, obj)
Definition: lobject.h:102

Definition at line 94 of file lgc.c.

#define maskcolors   (bitmask(BLACKBIT) | WHITEBITS)

Definition at line 64 of file lgc.c.

#define maskgcbits   (maskcolors | AGEBITS)

Definition at line 67 of file lgc.c.

#define PAUSEADJ   100

Definition at line 60 of file lgc.c.

#define set2black (   x)    (x->marked = cast_byte((x->marked & ~WHITEBITS) | bitmask(BLACKBIT)))

Definition at line 79 of file lgc.c.

#define set2gray (   x)    resetbits(x->marked, maskcolors)

Definition at line 75 of file lgc.c.

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

Definition at line 83 of file lgc.c.

#define WORK2MEM   sizeof(TValue)

Definition at line 53 of file lgc.c.

Function Documentation

static lu_mem atomic ( lua_State L)
static

Definition at line 1510 of file lgc.c.

static void atomic2gen ( lua_State L,
global_State g 
)
static

Definition at line 1259 of file lgc.c.

static void callallpendingfinalizers ( lua_State L)
static

Definition at line 936 of file lgc.c.

static void checkpointer ( GCObject **  p,
GCObject o 
)
static

Definition at line 983 of file lgc.c.

static void checkSizes ( lua_State L,
global_State g 
)
static

Definition at line 857 of file lgc.c.

static void clearbykeys ( global_State g,
GCObject l 
)
static

Definition at line 719 of file lgc.c.

static void clearbyvalues ( global_State g,
GCObject l,
GCObject f 
)
static

Definition at line 738 of file lgc.c.

static void cleargraylists ( global_State g)
static

Definition at line 389 of file lgc.c.

static void clearkey ( Node n)
static

Definition at line 172 of file lgc.c.

static void convergeephemerons ( global_State g)
static

Definition at line 685 of file lgc.c.

static GCObject** correctgraylist ( GCObject **  p)
static

Definition at line 1139 of file lgc.c.

static void correctgraylists ( global_State g)
static

Definition at line 1172 of file lgc.c.

static void correctpointers ( global_State g,
GCObject o 
)
static

Definition at line 993 of file lgc.c.

static void deletelist ( lua_State L,
GCObject p,
GCObject limit 
)
static

Definition at line 1484 of file lgc.c.

static void dothecall ( lua_State L,
void *  ud 
)
static

Definition at line 887 of file lgc.c.

static lu_mem entergen ( lua_State L,
global_State g 
)
static

Definition at line 1287 of file lgc.c.

static void enterinc ( global_State g)
static

Definition at line 1302 of file lgc.c.

static void entersweep ( lua_State L)
static

Definition at line 1472 of file lgc.c.

static GCObject** findlast ( GCObject **  p)
static

Definition at line 946 of file lgc.c.

static void finishgencycle ( lua_State L,
global_State g 
)
static

Definition at line 1204 of file lgc.c.

static void freeobj ( lua_State L,
GCObject o 
)
static

Definition at line 766 of file lgc.c.

static void freeupval ( lua_State L,
UpVal uv 
)
static

Definition at line 759 of file lgc.c.

static lu_mem fullgen ( lua_State L,
global_State g 
)
static

Definition at line 1332 of file lgc.c.

static void fullinc ( lua_State L,
global_State g 
)
static

Definition at line 1679 of file lgc.c.

static void GCTM ( lua_State L)
static

Definition at line 893 of file lgc.c.

static void genlink ( global_State g,
GCObject o 
)
static

Definition at line 425 of file lgc.c.

static void genstep ( lua_State L,
global_State g 
)
static

Definition at line 1408 of file lgc.c.

static GCObject** getgclist ( GCObject o)
static

Definition at line 125 of file lgc.c.

static void incstep ( lua_State L,
global_State g 
)
static

Definition at line 1639 of file lgc.c.

static int iscleared ( global_State g,
const GCObject o 
)
static

Definition at line 186 of file lgc.c.

static void linkgclist_ ( GCObject o,
GCObject **  pnext,
GCObject **  list 
)
static

Definition at line 148 of file lgc.c.

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

Definition at line 209 of file lgc.c.

void luaC_barrierback_ ( lua_State L,
GCObject o 
)

Definition at line 231 of file lgc.c.

void luaC_changemode ( lua_State L,
int  newmode 
)

Definition at line 1317 of file lgc.c.

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

Definition at line 1005 of file lgc.c.

void luaC_fix ( lua_State L,
GCObject o 
)

Definition at line 244 of file lgc.c.

void luaC_freeallobjects ( lua_State L)

Definition at line 1497 of file lgc.c.

void luaC_fullgc ( lua_State L,
int  isemergency 
)

Definition at line 1697 of file lgc.c.

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

Definition at line 259 of file lgc.c.

void luaC_runtilstate ( lua_State L,
int  statesmask 
)

Definition at line 1625 of file lgc.c.

void luaC_step ( lua_State L)

Definition at line 1660 of file lgc.c.

static lu_mem markbeingfnz ( global_State g)
static

Definition at line 340 of file lgc.c.

static void markmt ( global_State g)
static

Definition at line 330 of file lgc.c.

static void markold ( global_State g,
GCObject from,
GCObject to 
)
static

Definition at line 1188 of file lgc.c.

static lu_mem propagateall ( global_State g)
static

Definition at line 670 of file lgc.c.

static lu_mem propagatemark ( global_State g)
static

Definition at line 654 of file lgc.c.

static void reallymarkobject ( global_State g,
GCObject o 
)
static

Definition at line 292 of file lgc.c.

static int remarkupvals ( global_State g)
static

Definition at line 362 of file lgc.c.

static void restartcollection ( global_State g)
static

Definition at line 398 of file lgc.c.

static int runafewfinalizers ( lua_State L,
int  n 
)
static

Definition at line 924 of file lgc.c.

static void separatetobefnz ( global_State g,
int  all 
)
static

Definition at line 960 of file lgc.c.

static void setminordebt ( global_State g)
static

Definition at line 1342 of file lgc.c.

static void setpause ( global_State g)
static

Definition at line 1451 of file lgc.c.

static lu_mem singlestep ( lua_State L)
static

Definition at line 1570 of file lgc.c.

static void stepgenfull ( lua_State L,
global_State g 
)
static

Definition at line 1368 of file lgc.c.

static void sweep2old ( lua_State L,
GCObject **  p 
)
static

Definition at line 1046 of file lgc.c.

static GCObject** sweepgen ( lua_State L,
global_State g,
GCObject **  p,
GCObject limit,
GCObject **  pfirstold1 
)
static

Definition at line 1082 of file lgc.c.

static GCObject** sweeplist ( lua_State L,
GCObject **  p,
int  countin,
int *  countout 
)
static

Definition at line 810 of file lgc.c.

static int sweepstep ( lua_State L,
global_State g,
int  nextstate,
GCObject **  nextlist 
)
static

Definition at line 1553 of file lgc.c.

static GCObject** sweeptolive ( lua_State L,
GCObject **  p 
)
static

Definition at line 837 of file lgc.c.

static int traverseCclosure ( global_State g,
CClosure cl 
)
static

Definition at line 588 of file lgc.c.

static int traverseephemeron ( global_State g,
Table h,
int  inv 
)
static

Definition at line 475 of file lgc.c.

static int traverseLclosure ( global_State g,
LClosure cl 
)
static

Definition at line 599 of file lgc.c.

static int traverseproto ( global_State g,
Proto f 
)
static

Definition at line 573 of file lgc.c.

static void traversestrongtable ( global_State g,
Table h 
)
static

Definition at line 518 of file lgc.c.

static lu_mem traversetable ( global_State g,
Table h 
)
static

Definition at line 537 of file lgc.c.

static int traversethread ( global_State g,
lua_State th 
)
static

Definition at line 622 of file lgc.c.

static int traverseudata ( global_State g,
Udata u 
)
static

Definition at line 558 of file lgc.c.

static void traverseweakvalue ( global_State g,
Table h 
)
static

Definition at line 441 of file lgc.c.

static GCObject* udata2finalize ( global_State g)
static

Definition at line 872 of file lgc.c.

static void whitelist ( global_State g,
GCObject p 
)
static

Definition at line 1123 of file lgc.c.

static void youngcollection ( lua_State L,
global_State g 
)
static

Definition at line 1218 of file lgc.c.



plotjuggler
Author(s): Davide Faconti
autogenerated on Sun Dec 6 2020 04:02:48