diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2002-05-08 14:34:23 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2002-05-08 14:34:23 -0300 |
commit | 01f1ac36b13f4fb23527785add70afe64f275944 (patch) | |
tree | 7baf8b33faacb220683f416528e3fcc0cd033735 /lstate.h | |
parent | a4d06736d4a66e1653599fad3df39099bf5b1276 (diff) | |
download | lua-01f1ac36b13f4fb23527785add70afe64f275944.tar.gz lua-01f1ac36b13f4fb23527785add70afe64f275944.tar.bz2 lua-01f1ac36b13f4fb23527785add70afe64f275944.zip |
`global' tables (registry, etc.) stored in proper place, not in the stack
Diffstat (limited to 'lstate.h')
-rw-r--r-- | lstate.h | 19 |
1 files changed, 10 insertions, 9 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lstate.h,v 1.83 2002/04/16 17:08:28 roberto Exp roberto $ | 2 | ** $Id: lstate.h,v 1.84 2002/04/23 15:04:39 roberto Exp roberto $ |
3 | ** Global State | 3 | ** Global State |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -50,23 +50,23 @@ struct lua_longjmp; /* defined in ldo.c */ | |||
50 | 50 | ||
51 | 51 | ||
52 | /* | 52 | /* |
53 | ** reserve init of stack to store some global values | 53 | ** array of `global' objects |
54 | */ | 54 | */ |
55 | 55 | ||
56 | #define NUMGLOBS 3 | ||
57 | |||
56 | /* default meta table (both for tables and udata) */ | 58 | /* default meta table (both for tables and udata) */ |
57 | #define defaultmeta(L) (L->stack) | 59 | #define defaultmeta(L) (L->globs) |
58 | 60 | ||
59 | /* table of globals */ | 61 | /* table of globals */ |
60 | #define gt(L) (L->stack + 1) | 62 | #define gt(L) (L->globs + 1) |
61 | 63 | ||
62 | /* registry */ | 64 | /* registry */ |
63 | #define registry(L) (L->stack + 2) | 65 | #define registry(L) (L->globs + 2) |
64 | |||
65 | #define RESERVED_STACK_PREFIX 3 | ||
66 | 66 | ||
67 | 67 | ||
68 | /* space to handle TM calls */ | 68 | /* space to handle TM calls and other temporary overflows */ |
69 | #define EXTRA_STACK 4 | 69 | #define EXTRA_STACK 5 |
70 | 70 | ||
71 | 71 | ||
72 | #define BASIC_CI_SIZE 8 | 72 | #define BASIC_CI_SIZE 8 |
@@ -130,6 +130,7 @@ struct lua_State { | |||
130 | CallInfo *end_ci; /* points after end of ci array*/ | 130 | CallInfo *end_ci; /* points after end of ci array*/ |
131 | CallInfo *base_ci; /* array of CallInfo's */ | 131 | CallInfo *base_ci; /* array of CallInfo's */ |
132 | global_State *l_G; | 132 | global_State *l_G; |
133 | TObject globs[NUMGLOBS]; /* registry, table of globals, etc. */ | ||
133 | struct lua_longjmp *errorJmp; /* current error recover point */ | 134 | struct lua_longjmp *errorJmp; /* current error recover point */ |
134 | UpVal *openupval; /* list of open upvalues in this stack */ | 135 | UpVal *openupval; /* list of open upvalues in this stack */ |
135 | lua_State *next; /* circular double linked list of states */ | 136 | lua_State *next; /* circular double linked list of states */ |