diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2000-09-05 16:33:32 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2000-09-05 16:33:32 -0300 |
| commit | 6e80c1cde193b767d63d2cc30ebd71d65512e061 (patch) | |
| tree | cb599bdc956c0dc9b3d469bb01de47185db3e4e2 /lstate.c | |
| parent | f67f324377aff66d78479eaaffbb94a6b092ae45 (diff) | |
| download | lua-6e80c1cde193b767d63d2cc30ebd71d65512e061.tar.gz lua-6e80c1cde193b767d63d2cc30ebd71d65512e061.tar.bz2 lua-6e80c1cde193b767d63d2cc30ebd71d65512e061.zip | |
new version for API
Diffstat (limited to 'lstate.c')
| -rw-r--r-- | lstate.c | 21 |
1 files changed, 12 insertions, 9 deletions
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: lstate.c,v 1.34 2000/08/28 17:57:04 roberto Exp roberto $ | 2 | ** $Id: lstate.c,v 1.35 2000/08/31 13:30: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 | */ |
| @@ -9,7 +9,6 @@ | |||
| 9 | 9 | ||
| 10 | #include "lua.h" | 10 | #include "lua.h" |
| 11 | 11 | ||
| 12 | #include "lbuiltin.h" | ||
| 13 | #include "ldo.h" | 12 | #include "ldo.h" |
| 14 | #include "lgc.h" | 13 | #include "lgc.h" |
| 15 | #include "llex.h" | 14 | #include "llex.h" |
| @@ -20,7 +19,13 @@ | |||
| 20 | #include "ltm.h" | 19 | #include "ltm.h" |
| 21 | 20 | ||
| 22 | 21 | ||
| 23 | lua_State *lua_newstate (int stacksize, int put_builtin) { | 22 | #ifdef DEBUG |
| 23 | extern lua_State *lua_state; | ||
| 24 | void luaB_opentests (lua_State *L); | ||
| 25 | #endif | ||
| 26 | |||
| 27 | |||
| 28 | lua_State *lua_newstate (int stacksize) { | ||
| 24 | struct lua_longjmp myErrorJmp; | 29 | struct lua_longjmp myErrorJmp; |
| 25 | lua_State *L = luaM_new(NULL, lua_State); | 30 | lua_State *L = luaM_new(NULL, lua_State); |
| 26 | if (L == NULL) return NULL; /* memory allocation error */ | 31 | if (L == NULL) return NULL; /* memory allocation error */ |
| @@ -54,8 +59,9 @@ lua_State *lua_newstate (int stacksize, int put_builtin) { | |||
| 54 | luaS_init(L); | 59 | luaS_init(L); |
| 55 | luaX_init(L); | 60 | luaX_init(L); |
| 56 | luaT_init(L); | 61 | luaT_init(L); |
| 57 | if (put_builtin) | 62 | #ifdef DEBUG |
| 58 | luaB_predefine(L); | 63 | luaB_opentests(L); |
| 64 | #endif | ||
| 59 | L->GCthreshold = L->nblocks*4; | 65 | L->GCthreshold = L->nblocks*4; |
| 60 | L->errorJmp = NULL; | 66 | L->errorJmp = NULL; |
| 61 | return L; | 67 | return L; |
| @@ -67,10 +73,6 @@ lua_State *lua_newstate (int stacksize, int put_builtin) { | |||
| 67 | } | 73 | } |
| 68 | 74 | ||
| 69 | 75 | ||
| 70 | #ifdef DEBUG | ||
| 71 | extern lua_State *lua_state; | ||
| 72 | #endif | ||
| 73 | |||
| 74 | void lua_close (lua_State *L) { | 76 | void lua_close (lua_State *L) { |
| 75 | luaC_collect(L, 1); /* collect all elements */ | 77 | luaC_collect(L, 1); /* collect all elements */ |
| 76 | LUA_ASSERT(L->rootproto == NULL, "list should be empty"); | 78 | LUA_ASSERT(L->rootproto == NULL, "list should be empty"); |
| @@ -83,6 +85,7 @@ void lua_close (lua_State *L) { | |||
| 83 | luaM_free(L, L->Mbuffer); | 85 | luaM_free(L, L->Mbuffer); |
| 84 | LUA_ASSERT(L->nblocks == 0, "wrong count for nblocks"); | 86 | LUA_ASSERT(L->nblocks == 0, "wrong count for nblocks"); |
| 85 | luaM_free(L, L); | 87 | luaM_free(L, L); |
| 88 | LUA_ASSERT(L->Cbase == L->stack, "stack not empty"); | ||
| 86 | LUA_ASSERT(L != lua_state || memdebug_numblocks == 0, "memory leak!"); | 89 | LUA_ASSERT(L != lua_state || memdebug_numblocks == 0, "memory leak!"); |
| 87 | LUA_ASSERT(L != lua_state || memdebug_total == 0,"memory leak!"); | 90 | LUA_ASSERT(L != lua_state || memdebug_total == 0,"memory leak!"); |
| 88 | } | 91 | } |
