|
@@ -1,5 +1,5 @@
|
|
/*
|
|
/*
|
|
-** $Id: lstate.h,v 2.85 2013/08/20 17:46:34 roberto Exp roberto $
|
|
|
|
|
|
+** $Id: lstate.h,v 2.86 2013/08/21 19:21:16 roberto Exp roberto $
|
|
** Global State
|
|
** Global State
|
|
** See Copyright Notice in lua.h
|
|
** See Copyright Notice in lua.h
|
|
*/
|
|
*/
|
|
@@ -24,6 +24,9 @@
|
|
** at the end of the 'allgc' list, after the 'l_registry' (which is
|
|
** at the end of the 'allgc' list, after the 'l_registry' (which is
|
|
** the first object to be added to the list).
|
|
** the first object to be added to the list).
|
|
**
|
|
**
|
|
|
|
+** List 'fixedgc' keep objects that are not to be collected (currently
|
|
|
|
+** only small strings, such as reserved words).
|
|
|
|
+**
|
|
** Open upvalues are not subject to independent garbage collection. They
|
|
** Open upvalues are not subject to independent garbage collection. They
|
|
** are collected together with their respective threads. (They are
|
|
** are collected together with their respective threads. (They are
|
|
** always gray, so they must be remarked in the atomic step. Usually
|
|
** always gray, so they must be remarked in the atomic step. Usually
|
|
@@ -132,6 +135,7 @@ typedef struct global_State {
|
|
GCObject *ephemeron; /* list of ephemeron tables (weak keys) */
|
|
GCObject *ephemeron; /* list of ephemeron tables (weak keys) */
|
|
GCObject *allweak; /* list of all-weak tables */
|
|
GCObject *allweak; /* list of all-weak tables */
|
|
GCObject *tobefnz; /* list of userdata to be GC */
|
|
GCObject *tobefnz; /* list of userdata to be GC */
|
|
|
|
+ GCObject *fixedgc; /* list of objects not to be collected */
|
|
Mbuffer buff; /* temporary buffer for string concatenation */
|
|
Mbuffer buff; /* temporary buffer for string concatenation */
|
|
int gcpause; /* size of pause between successive GCs */
|
|
int gcpause; /* size of pause between successive GCs */
|
|
int gcstepmul; /* GC `granularity' */
|
|
int gcstepmul; /* GC `granularity' */
|