This commit is contained in:
Roberto Ierusalimschy 2005-02-23 14:30:22 -03:00
parent d84cc9d2db
commit d55bb795fa
11 changed files with 40 additions and 42 deletions

10
lapi.c
View File

@ -1,5 +1,5 @@
/* /*
** $Id: lapi.c,v 2.26 2005/01/14 14:19:42 roberto Exp roberto $ ** $Id: lapi.c,v 2.27 2005/02/18 12:40:02 roberto Exp roberto $
** Lua API ** Lua API
** See Copyright Notice in lua.h ** See Copyright Notice in lua.h
*/ */
@ -975,7 +975,7 @@ LUA_API void lua_concat (lua_State *L, int n) {
LUA_API lua_Alloc lua_getallocf (lua_State *L, void **ud) { LUA_API lua_Alloc lua_getallocf (lua_State *L, void **ud) {
*ud = G(L)->ud; *ud = G(L)->ud;
return G(L)->realloc; return G(L)->frealloc;
} }
@ -993,7 +993,7 @@ LUA_API void *lua_newuserdata (lua_State *L, size_t size) {
static const char *aux_upvalue (lua_State *L, StkId fi, int n, TValue **val) { static const char *aux_upvalue (StkId fi, int n, TValue **val) {
Closure *f; Closure *f;
if (!ttisfunction(fi)) return NULL; if (!ttisfunction(fi)) return NULL;
f = clvalue(fi); f = clvalue(fi);
@ -1015,7 +1015,7 @@ LUA_API const char *lua_getupvalue (lua_State *L, int funcindex, int n) {
const char *name; const char *name;
TValue *val; TValue *val;
lua_lock(L); lua_lock(L);
name = aux_upvalue(L, index2adr(L, funcindex), n, &val); name = aux_upvalue(index2adr(L, funcindex), n, &val);
if (name) { if (name) {
setobj2s(L, L->top, val); setobj2s(L, L->top, val);
api_incr_top(L); api_incr_top(L);
@ -1032,7 +1032,7 @@ LUA_API const char *lua_setupvalue (lua_State *L, int funcindex, int n) {
lua_lock(L); lua_lock(L);
fi = index2adr(L, funcindex); fi = index2adr(L, funcindex);
api_checknelems(L, 1); api_checknelems(L, 1);
name = aux_upvalue(L, fi, n, &val); name = aux_upvalue(fi, n, &val);
if (name) { if (name) {
L->top--; L->top--;
setobj(L, val, L->top); setobj(L, val, L->top);

View File

@ -1,5 +1,5 @@
/* /*
** $Id: lauxlib.c,v 1.127 2004/12/20 13:47:29 roberto Exp roberto $ ** $Id: lauxlib.c,v 1.128 2005/02/10 17:12:02 roberto Exp roberto $
** Auxiliary functions for building Lua libraries ** Auxiliary functions for building Lua libraries
** See Copyright Notice in lua.h ** See Copyright Notice in lua.h
*/ */
@ -704,6 +704,7 @@ static void *l_alloc (void *ud, void *ptr, size_t osize, size_t nsize) {
static int panic (lua_State *L) { static int panic (lua_State *L) {
(void)L; /* to avoid warnings */
fprintf(stderr, "PANIC: unprotected error during Lua-API call\n"); fprintf(stderr, "PANIC: unprotected error during Lua-API call\n");
return 0; return 0;
} }

View File

@ -1,5 +1,5 @@
/* /*
** $Id: lbaselib.c,v 1.166 2005/02/14 13:19:44 roberto Exp roberto $ ** $Id: lbaselib.c,v 1.167 2005/02/18 12:40:02 roberto Exp roberto $
** Basic library ** Basic library
** See Copyright Notice in lua.h ** See Copyright Notice in lua.h
*/ */
@ -283,6 +283,7 @@ static int luaB_loadfile (lua_State *L) {
** reserved slot inside the stack. ** reserved slot inside the stack.
*/ */
static const char *generic_reader (lua_State *L, void *ud, size_t *size) { static const char *generic_reader (lua_State *L, void *ud, size_t *size) {
(void)ud; /* to avoid warnings */
luaL_checkstack(L, 2, "too many nested functions"); luaL_checkstack(L, 2, "too many nested functions");
lua_pushvalue(L, 1); /* get function */ lua_pushvalue(L, 1); /* get function */
lua_call(L, 0, 1); /* call it */ lua_call(L, 0, 1); /* call it */

9
lgc.c
View File

@ -1,5 +1,5 @@
/* /*
** $Id: lgc.c,v 2.25 2005/02/14 13:19:50 roberto Exp roberto $ ** $Id: lgc.c,v 2.26 2005/02/18 12:40:02 roberto Exp roberto $
** Garbage Collector ** Garbage Collector
** See Copyright Notice in lua.h ** See Copyright Notice in lua.h
*/ */
@ -36,14 +36,13 @@
((x)->gch.marked = ((x)->gch.marked & maskmarks) | luaC_white(g)) ((x)->gch.marked = ((x)->gch.marked & maskmarks) | luaC_white(g))
#define white2gray(x) reset2bits((x)->gch.marked, WHITE0BIT, WHITE1BIT) #define white2gray(x) reset2bits((x)->gch.marked, WHITE0BIT, WHITE1BIT)
#define gray2black(x) setbit((x)->gch.marked, BLACKBIT)
#define black2gray(x) resetbit((x)->gch.marked, BLACKBIT) #define black2gray(x) resetbit((x)->gch.marked, BLACKBIT)
#define stringmark(s) reset2bits((s)->tsv.marked, WHITE0BIT, WHITE1BIT) #define stringmark(s) reset2bits((s)->tsv.marked, WHITE0BIT, WHITE1BIT)
#define isfinalized(u) testbit((u)->marked, FINALIZEDBIT) #define isfinalized(u) testbit((u)->marked, FINALIZEDBIT)
#define markfinalized(u) setbit((u)->marked, FINALIZEDBIT) #define markfinalized(u) l_setbit((u)->marked, FINALIZEDBIT)
#define KEYWEAK bitmask(KEYWEAKBIT) #define KEYWEAK bitmask(KEYWEAKBIT)
@ -665,9 +664,9 @@ void luaC_barrierf (lua_State *L, GCObject *o, GCObject *v) {
} }
void luaC_barrierback (lua_State *L, GCObject *o, GCObject *v) { void luaC_barrierback (lua_State *L, GCObject *o) {
global_State *g = G(L); global_State *g = G(L);
lua_assert(isblack(o) && iswhite(v) && !isdead(g, v) && !isdead(g, o)); lua_assert(isblack(o) && !isdead(g, o));
lua_assert(g->gcstate != GCSfinalize && g->gcstate != GCSpause); lua_assert(g->gcstate != GCSfinalize && g->gcstate != GCSpause);
black2gray(o); /* make table gray (again) */ black2gray(o); /* make table gray (again) */
gco2h(o)->gclist = g->grayagain; gco2h(o)->gclist = g->grayagain;

12
lgc.h
View File

@ -1,5 +1,5 @@
/* /*
** $Id: lgc.h,v 2.10 2005/01/19 15:54:26 roberto Exp roberto $ ** $Id: lgc.h,v 2.11 2005/02/10 13:25:02 roberto Exp roberto $
** Garbage Collector ** Garbage Collector
** See Copyright Notice in lua.h ** See Copyright Notice in lua.h
*/ */
@ -29,7 +29,7 @@
#define testbits(x,m) ((x) & (m)) #define testbits(x,m) ((x) & (m))
#define bitmask(b) (1<<(b)) #define bitmask(b) (1<<(b))
#define bit2mask(b1,b2) (bitmask(b1) | bitmask(b2)) #define bit2mask(b1,b2) (bitmask(b1) | bitmask(b2))
#define setbit(x,b) setbits(x, bitmask(b)) #define l_setbit(x,b) setbits(x, bitmask(b))
#define resetbit(x,b) resetbits(x, bitmask(b)) #define resetbit(x,b) resetbits(x, bitmask(b))
#define testbit(x,b) testbits(x, bitmask(b)) #define testbit(x,b) testbits(x, bitmask(b))
#define set2bits(x,b1,b2) setbits(x, (bit2mask(b1, b2))) #define set2bits(x,b1,b2) setbits(x, (bit2mask(b1, b2)))
@ -70,7 +70,7 @@
#define isdead(g,v) ((v)->gch.marked & otherwhite(g) & WHITEBITS) #define isdead(g,v) ((v)->gch.marked & otherwhite(g) & WHITEBITS)
#define changewhite(x) ((x)->gch.marked ^= WHITEBITS) #define changewhite(x) ((x)->gch.marked ^= WHITEBITS)
#define gray2black(x) setbit((x)->gch.marked, BLACKBIT) #define gray2black(x) l_setbit((x)->gch.marked, BLACKBIT)
#define valiswhite(x) (iscollectable(x) && iswhite(gcvalue(x))) #define valiswhite(x) (iscollectable(x) && iswhite(gcvalue(x)))
@ -85,7 +85,7 @@
luaC_barrierf(L,obj2gco(p),gcvalue(v)); } luaC_barrierf(L,obj2gco(p),gcvalue(v)); }
#define luaC_barriert(L,p,v) { if (valiswhite(v) && isblack(obj2gco(p))) \ #define luaC_barriert(L,p,v) { if (valiswhite(v) && isblack(obj2gco(p))) \
luaC_barrierback(L,obj2gco(p),gcvalue(v)); } luaC_barrierback(L,obj2gco(p)); }
#define luaC_objbarrier(L,p,o) \ #define luaC_objbarrier(L,p,o) \
{ if (iswhite(obj2gco(o)) && isblack(obj2gco(p))) \ { if (iswhite(obj2gco(o)) && isblack(obj2gco(p))) \
@ -93,7 +93,7 @@
#define luaC_objbarriert(L,p,o) \ #define luaC_objbarriert(L,p,o) \
{ if (iswhite(obj2gco(o)) && isblack(obj2gco(p))) \ { if (iswhite(obj2gco(o)) && isblack(obj2gco(p))) \
luaC_barrierback(L,obj2gco(p),obj2gco(o)); } luaC_barrierback(L,obj2gco(p)); }
size_t luaC_separateudata (lua_State *L, int all); size_t luaC_separateudata (lua_State *L, int all);
void luaC_callGCTM (lua_State *L); void luaC_callGCTM (lua_State *L);
@ -103,7 +103,7 @@ void luaC_fullgc (lua_State *L);
void luaC_link (lua_State *L, GCObject *o, lu_byte tt); void luaC_link (lua_State *L, GCObject *o, lu_byte tt);
void luaC_linkupval (lua_State *L, UpVal *uv); void luaC_linkupval (lua_State *L, UpVal *uv);
void luaC_barrierf (lua_State *L, GCObject *o, GCObject *v); void luaC_barrierf (lua_State *L, GCObject *o, GCObject *v);
void luaC_barrierback (lua_State *L, GCObject *o, GCObject *v); void luaC_barrierback (lua_State *L, GCObject *o);
#endif #endif

16
lmem.c
View File

@ -1,5 +1,5 @@
/* /*
** $Id: lmem.c,v 1.67 2004/12/01 15:46:18 roberto Exp roberto $ ** $Id: lmem.c,v 1.68 2005/01/14 14:21:16 roberto Exp roberto $
** Interface to Memory Manager ** Interface to Memory Manager
** See Copyright Notice in lua.h ** See Copyright Notice in lua.h
*/ */
@ -22,19 +22,19 @@
/* /*
** About the realloc function: ** About the realloc function:
** void * realloc (void *ud, void *ptr, size_t osize, size_t nsize); ** void * frealloc (void *ud, void *ptr, size_t osize, size_t nsize);
** (`osize' is the old size, `nsize' is the new size) ** (`osize' is the old size, `nsize' is the new size)
** **
** Lua ensures that (ptr == NULL) iff (osize == 0). ** Lua ensures that (ptr == NULL) iff (osize == 0).
** **
** * realloc(ud, NULL, 0, x) creates a new block of size `x' ** * frealloc(ud, NULL, 0, x) creates a new block of size `x'
** **
** * realloc(ud, p, x, 0) frees the block `p' ** * frealloc(ud, p, x, 0) frees the block `p'
** (in this specific case, realloc must return NULL). ** (in this specific case, frealloc must return NULL).
** particularly, realloc(ud, NULL, 0, 0) does nothing ** particularly, frealloc(ud, NULL, 0, 0) does nothing
** (which is equivalent to free(NULL) in ANSI C) ** (which is equivalent to free(NULL) in ANSI C)
** **
** realloc returns NULL if it cannot create or reallocate the area ** frealloc returns NULL if it cannot create or reallocate the area
** (any reallocation to an equal or smaller size cannot fail!) ** (any reallocation to an equal or smaller size cannot fail!)
*/ */
@ -76,7 +76,7 @@ void *luaM_toobig (lua_State *L) {
void *luaM_realloc_ (lua_State *L, void *block, size_t osize, size_t nsize) { void *luaM_realloc_ (lua_State *L, void *block, size_t osize, size_t nsize) {
global_State *g = G(L); global_State *g = G(L);
lua_assert((osize == 0) == (block == NULL)); lua_assert((osize == 0) == (block == NULL));
block = (*g->realloc)(g->ud, block, osize, nsize); block = (*g->frealloc)(g->ud, block, osize, nsize);
if (block == NULL && nsize > 0) if (block == NULL && nsize > 0)
luaD_throw(L, LUA_ERRMEM); luaD_throw(L, LUA_ERRMEM);
lua_assert((nsize == 0) == (block == NULL)); lua_assert((nsize == 0) == (block == NULL));

View File

@ -1,5 +1,5 @@
/* /*
** $Id: lstate.c,v 2.23 2005/01/18 17:18:09 roberto Exp roberto $ ** $Id: lstate.c,v 2.24 2005/02/10 13:25:02 roberto Exp roberto $
** Global State ** Global State
** See Copyright Notice in lua.h ** See Copyright Notice in lua.h
*/ */
@ -120,7 +120,7 @@ static void close_state (lua_State *L) {
luaZ_freebuffer(L, &g->buff); luaZ_freebuffer(L, &g->buff);
freestack(L, L); freestack(L, L);
lua_assert(g->totalbytes == sizeof(LG)); lua_assert(g->totalbytes == sizeof(LG));
(*g->realloc)(g->ud, fromstate(L), state_size(LG), 0); (*g->frealloc)(g->ud, fromstate(L), state_size(LG), 0);
} }
@ -160,7 +160,7 @@ LUA_API lua_State *lua_newstate (lua_Alloc f, void *ud) {
L->marked = luaC_white(g); L->marked = luaC_white(g);
set2bits(L->marked, FIXEDBIT, SFIXEDBIT); set2bits(L->marked, FIXEDBIT, SFIXEDBIT);
preinit_state(L, g); preinit_state(L, g);
g->realloc = f; g->frealloc = f;
g->ud = ud; g->ud = ud;
g->mainthread = L; g->mainthread = L;
g->uvhead.u.l.prev = &g->uvhead; g->uvhead.u.l.prev = &g->uvhead;

View File

@ -1,5 +1,5 @@
/* /*
** $Id: lstate.h,v 2.14 2005/02/11 20:03:35 roberto Exp roberto $ ** $Id: lstate.h,v 2.15 2005/02/18 12:40:02 roberto Exp roberto $
** Global State ** Global State
** See Copyright Notice in lua.h ** See Copyright Notice in lua.h
*/ */
@ -67,8 +67,8 @@ typedef struct CallInfo {
*/ */
typedef struct global_State { typedef struct global_State {
stringtable strt; /* hash table for strings */ stringtable strt; /* hash table for strings */
lua_Alloc realloc; /* function to reallocate memory */ lua_Alloc frealloc; /* function to reallocate memory */
void *ud; /* auxiliary data to `realloc' */ void *ud; /* auxiliary data to `frealloc' */
lu_byte currentwhite; lu_byte currentwhite;
lu_byte gcstate; /* state of garbage collector */ lu_byte gcstate; /* state of garbage collector */
GCObject *rootgc; /* list of all collectable objects */ GCObject *rootgc; /* list of all collectable objects */

View File

@ -1,5 +1,5 @@
/* /*
** $Id: lstring.h,v 1.40 2004/11/19 15:52:40 roberto Exp roberto $ ** $Id: lstring.h,v 1.41 2005/02/18 12:40:02 roberto Exp roberto $
** String table (keep all strings handled by Lua) ** String table (keep all strings handled by Lua)
** See Copyright Notice in lua.h ** See Copyright Notice in lua.h
*/ */
@ -21,7 +21,7 @@
#define luaS_newliteral(L, s) (luaS_newlstr(L, "" s, \ #define luaS_newliteral(L, s) (luaS_newlstr(L, "" s, \
(sizeof(s)/sizeof(char))-1)) (sizeof(s)/sizeof(char))-1))
#define luaS_fix(s) setbit((s)->tsv.marked, FIXEDBIT) #define luaS_fix(s) l_setbit((s)->tsv.marked, FIXEDBIT)
void luaS_resize (lua_State *L, int newsize); void luaS_resize (lua_State *L, int newsize);
Udata *luaS_newudata (lua_State *L, size_t s, Table *e); Udata *luaS_newudata (lua_State *L, size_t s, Table *e);

View File

@ -1,5 +1,5 @@
/* /*
** $Id: luaconf.h,v 1.27 2005/01/10 18:33:37 roberto Exp roberto $ ** $Id: luaconf.h,v 1.28 2005/02/10 17:12:02 roberto Exp roberto $
** Configuration file for Lua ** Configuration file for Lua
** See Copyright Notice in lua.h ** See Copyright Notice in lua.h
*/ */
@ -307,7 +307,7 @@ __inline int l_lrint (double flt)
/* allows user-specific initialization on new threads */ /* allows user-specific initialization on new threads */
#define lua_userstateopen(L) /* empty */ #define lua_userstateopen(L) ((void)0)
#endif #endif
@ -325,9 +325,6 @@ __inline int l_lrint (double flt)
#ifdef LUA_LIB #ifdef LUA_LIB
/* `assert' options */
/* environment variables that hold the search path for packages */ /* environment variables that hold the search path for packages */
#define LUA_PATH "LUA_PATH" #define LUA_PATH "LUA_PATH"
#define LUA_CPATH "LUA_CPATH" #define LUA_CPATH "LUA_CPATH"
@ -336,7 +333,7 @@ __inline int l_lrint (double flt)
#define LUA_POF "luaopen_" #define LUA_POF "luaopen_"
/* separator for open functions in C libraries */ /* separator for open functions in C libraries */
#define LUA_OFSEP "" #define LUA_OFSEP "_"
/* directory separator (for submodules) */ /* directory separator (for submodules) */
#if defined(_WIN32) #if defined(_WIN32)

4
lvm.c
View File

@ -1,5 +1,5 @@
/* /*
** $Id: lvm.c,v 2.24 2005/02/18 12:40:02 roberto Exp roberto $ ** $Id: lvm.c,v 2.25 2005/02/18 12:50:08 roberto Exp roberto $
** Lua virtual machine ** Lua virtual machine
** See Copyright Notice in lua.h ** See Copyright Notice in lua.h
*/ */
@ -113,7 +113,7 @@ StkId luaV_gettable (lua_State *L, const TValue *t, TValue *key, StkId val,
const TValue *tm; const TValue *tm;
if (ttistable(t)) { /* `t' is a table? */ if (ttistable(t)) { /* `t' is a table? */
Table *h = hvalue(t); Table *h = hvalue(t);
const TValue *res = luaH_get(h, key); /* do a primitive set */ const TValue *res = luaH_get(h, key); /* do a primitive get */
if (!ttisnil(res) || /* result is no nil? */ if (!ttisnil(res) || /* result is no nil? */
(tm = fasttm(L, h->metatable, TM_INDEX)) == NULL) { /* or no TM? */ (tm = fasttm(L, h->metatable, TM_INDEX)) == NULL) { /* or no TM? */
setobj2s(L, val, res); setobj2s(L, val, res);