From da19c436cc361401563eeda2cca3d161a6ddeef7 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Fri, 16 Aug 2002 11:45:55 -0300 Subject: cleaning the stage for generational collection --- lobject.h | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'lobject.h') diff --git a/lobject.h b/lobject.h index 805be05e..36a5b323 100644 --- a/lobject.h +++ b/lobject.h @@ -1,5 +1,5 @@ /* -** $Id: lobject.h,v 1.141 2002/08/05 14:08:02 roberto Exp roberto $ +** $Id: lobject.h,v 1.142 2002/08/06 17:06:56 roberto Exp roberto $ ** Type definitions for Lua objects ** See Copyright Notice in lua.h */ @@ -101,8 +101,9 @@ typedef union TString { struct { lu_hash hash; size_t len; - int marked; union TString *nexthash; /* chain for hash table */ + lu_byte marked; + lu_byte reserved; } tsv; } TString; @@ -117,7 +118,8 @@ typedef union Udata { struct { struct Table *metatable; union Udata *next; /* chain for list of all udata */ - size_t len; /* least 2 bits reserved for gc mark */ + size_t len; + lu_byte marked; } uv; } Udata; @@ -164,6 +166,7 @@ typedef struct UpVal { TObject *v; /* points to stack or to its own value */ struct UpVal *next; TObject value; /* the value (when closed) */ + lu_byte marked; } UpVal; @@ -219,11 +222,12 @@ typedef struct Table { Node *node; Node *firstfree; /* this position is free; all positions after it are full */ struct Table *next; - struct Table *mark; /* marked tables (point to itself when not marked) */ + struct Table *gclist; int sizearray; /* size of `array' array */ lu_byte flags; /* 1<