diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile | 2 | ||||
-rw-r--r-- | src/lapi.c | 2 | ||||
-rw-r--r-- | src/lapi.h | 2 | ||||
-rw-r--r-- | src/lauxlib.c | 2 | ||||
-rw-r--r-- | src/lauxlib.h | 2 | ||||
-rw-r--r-- | src/lbaselib.c | 2 | ||||
-rw-r--r-- | src/lbitlib.c | 5 | ||||
-rw-r--r-- | src/lcode.c | 2 | ||||
-rw-r--r-- | src/lcode.h | 2 | ||||
-rw-r--r-- | src/lcorolib.c | 2 | ||||
-rw-r--r-- | src/lctype.c | 2 | ||||
-rw-r--r-- | src/lctype.h | 2 | ||||
-rw-r--r-- | src/ldblib.c | 2 | ||||
-rw-r--r-- | src/ldebug.c | 31 | ||||
-rw-r--r-- | src/ldebug.h | 2 | ||||
-rw-r--r-- | src/ldo.c | 18 | ||||
-rw-r--r-- | src/ldo.h | 2 | ||||
-rw-r--r-- | src/ldump.c | 2 | ||||
-rw-r--r-- | src/lfunc.c | 2 | ||||
-rw-r--r-- | src/lfunc.h | 2 | ||||
-rw-r--r-- | src/lgc.c | 13 | ||||
-rw-r--r-- | src/lgc.h | 2 | ||||
-rw-r--r-- | src/linit.c | 2 | ||||
-rw-r--r-- | src/liolib.c | 23 | ||||
-rw-r--r-- | src/llex.c | 5 | ||||
-rw-r--r-- | src/llex.h | 2 | ||||
-rw-r--r-- | src/llimits.h | 2 | ||||
-rw-r--r-- | src/lmathlib.c | 2 | ||||
-rw-r--r-- | src/lmem.c | 2 | ||||
-rw-r--r-- | src/lmem.h | 2 | ||||
-rw-r--r-- | src/loadlib.c | 2 | ||||
-rw-r--r-- | src/lobject.c | 2 | ||||
-rw-r--r-- | src/lobject.h | 2 | ||||
-rw-r--r-- | src/lopcodes.c | 2 | ||||
-rw-r--r-- | src/lopcodes.h | 2 | ||||
-rw-r--r-- | src/loslib.c | 2 | ||||
-rw-r--r-- | src/lparser.c | 2 | ||||
-rw-r--r-- | src/lparser.h | 2 | ||||
-rw-r--r-- | src/lstate.c | 11 | ||||
-rw-r--r-- | src/lstate.h | 2 | ||||
-rw-r--r-- | src/lstring.c | 2 | ||||
-rw-r--r-- | src/lstring.h | 2 | ||||
-rw-r--r-- | src/lstrlib.c | 2 | ||||
-rw-r--r-- | src/ltable.c | 2 | ||||
-rw-r--r-- | src/ltable.h | 6 | ||||
-rw-r--r-- | src/ltablib.c | 2 | ||||
-rw-r--r-- | src/ltm.c | 2 | ||||
-rw-r--r-- | src/ltm.h | 2 | ||||
-rw-r--r-- | src/lua.c | 2 | ||||
-rw-r--r-- | src/lua.h | 4 | ||||
-rw-r--r-- | src/luac.c | 4 | ||||
-rw-r--r-- | src/luaconf.h | 2 | ||||
-rw-r--r-- | src/lualib.h | 2 | ||||
-rw-r--r-- | src/lundump.c | 2 | ||||
-rw-r--r-- | src/lundump.h | 2 | ||||
-rw-r--r-- | src/lvm.c | 2 | ||||
-rw-r--r-- | src/lvm.h | 2 | ||||
-rw-r--r-- | src/lzio.c | 2 | ||||
-rw-r--r-- | src/lzio.h | 2 |
59 files changed, 128 insertions, 90 deletions
diff --git a/src/Makefile b/src/Makefile index fea895bc..7b4b2b75 100644 --- a/src/Makefile +++ b/src/Makefile @@ -106,7 +106,7 @@ linux: $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline" macosx: - $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MACOSX" SYSLIBS="-lreadline" + $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MACOSX" SYSLIBS="-lreadline" CC=cc mingw: $(MAKE) "LUA_A=lua52.dll" "LUA_T=lua.exe" \ @@ -1,5 +1,5 @@ /* -** $Id: lapi.c,v 2.171 2013/03/16 21:10:18 roberto Exp $ +** $Id: lapi.c,v 2.171.1.1 2013/04/12 18:48:47 roberto Exp $ ** Lua API ** See Copyright Notice in lua.h */ @@ -1,5 +1,5 @@ /* -** $Id: lapi.h,v 2.7 2009/11/27 15:37:59 roberto Exp $ +** $Id: lapi.h,v 2.7.1.1 2013/04/12 18:48:47 roberto Exp $ ** Auxiliary functions from Lua API ** See Copyright Notice in lua.h */ diff --git a/src/lauxlib.c b/src/lauxlib.c index 2e989d66..b00f8c70 100644 --- a/src/lauxlib.c +++ b/src/lauxlib.c @@ -1,5 +1,5 @@ /* -** $Id: lauxlib.c,v 1.248 2013/03/21 13:54:57 roberto Exp $ +** $Id: lauxlib.c,v 1.248.1.1 2013/04/12 18:48:47 roberto Exp $ ** Auxiliary functions for building Lua libraries ** See Copyright Notice in lua.h */ diff --git a/src/lauxlib.h b/src/lauxlib.h index ac4d15fb..0fb023b8 100644 --- a/src/lauxlib.h +++ b/src/lauxlib.h @@ -1,5 +1,5 @@ /* -** $Id: lauxlib.h,v 1.120 2011/11/29 15:55:08 roberto Exp $ +** $Id: lauxlib.h,v 1.120.1.1 2013/04/12 18:48:47 roberto Exp $ ** Auxiliary functions for building Lua libraries ** See Copyright Notice in lua.h */ diff --git a/src/lbaselib.c b/src/lbaselib.c index 540e9a5c..5255b3cd 100644 --- a/src/lbaselib.c +++ b/src/lbaselib.c @@ -1,5 +1,5 @@ /* -** $Id: lbaselib.c,v 1.276 2013/02/21 13:44:53 roberto Exp $ +** $Id: lbaselib.c,v 1.276.1.1 2013/04/12 18:48:47 roberto Exp $ ** Basic library ** See Copyright Notice in lua.h */ diff --git a/src/lbitlib.c b/src/lbitlib.c index 9637532e..31c7b66f 100644 --- a/src/lbitlib.c +++ b/src/lbitlib.c @@ -1,5 +1,5 @@ /* -** $Id: lbitlib.c,v 1.18 2013/03/19 13:19:12 roberto Exp $ +** $Id: lbitlib.c,v 1.18.1.2 2013/07/09 18:01:41 roberto Exp $ ** Standard library for bitwise operations ** See Copyright Notice in lua.h */ @@ -129,7 +129,8 @@ static int b_rot (lua_State *L, int i) { b_uint r = luaL_checkunsigned(L, 1); i &= (LUA_NBITS - 1); /* i = i % NBITS */ r = trim(r); - r = (r << i) | (r >> (LUA_NBITS - i)); + if (i != 0) /* avoid undefined shift of LUA_NBITS when i == 0 */ + r = (r << i) | (r >> (LUA_NBITS - i)); lua_pushunsigned(L, trim(r)); return 1; } diff --git a/src/lcode.c b/src/lcode.c index 56c26ac8..820b95c0 100644 --- a/src/lcode.c +++ b/src/lcode.c @@ -1,5 +1,5 @@ /* -** $Id: lcode.c,v 2.62 2012/08/16 17:34:28 roberto Exp $ +** $Id: lcode.c,v 2.62.1.1 2013/04/12 18:48:47 roberto Exp $ ** Code generator for Lua ** See Copyright Notice in lua.h */ diff --git a/src/lcode.h b/src/lcode.h index 5a1fa9fe..6a1424cf 100644 --- a/src/lcode.h +++ b/src/lcode.h @@ -1,5 +1,5 @@ /* -** $Id: lcode.h,v 1.58 2011/08/30 16:26:41 roberto Exp $ +** $Id: lcode.h,v 1.58.1.1 2013/04/12 18:48:47 roberto Exp $ ** Code generator for Lua ** See Copyright Notice in lua.h */ diff --git a/src/lcorolib.c b/src/lcorolib.c index 1326c814..ce4f6ad4 100644 --- a/src/lcorolib.c +++ b/src/lcorolib.c @@ -1,5 +1,5 @@ /* -** $Id: lcorolib.c,v 1.5 2013/02/21 13:44:53 roberto Exp $ +** $Id: lcorolib.c,v 1.5.1.1 2013/04/12 18:48:47 roberto Exp $ ** Coroutine Library ** See Copyright Notice in lua.h */ diff --git a/src/lctype.c b/src/lctype.c index 55e433a5..93f8cadc 100644 --- a/src/lctype.c +++ b/src/lctype.c @@ -1,5 +1,5 @@ /* -** $Id: lctype.c,v 1.11 2011/10/03 16:19:23 roberto Exp $ +** $Id: lctype.c,v 1.11.1.1 2013/04/12 18:48:47 roberto Exp $ ** 'ctype' functions for Lua ** See Copyright Notice in lua.h */ diff --git a/src/lctype.h b/src/lctype.h index 99c7d122..b09b21a3 100644 --- a/src/lctype.h +++ b/src/lctype.h @@ -1,5 +1,5 @@ /* -** $Id: lctype.h,v 1.12 2011/07/15 12:50:29 roberto Exp $ +** $Id: lctype.h,v 1.12.1.1 2013/04/12 18:48:47 roberto Exp $ ** 'ctype' functions for Lua ** See Copyright Notice in lua.h */ diff --git a/src/ldblib.c b/src/ldblib.c index c0226945..84fe3c7d 100644 --- a/src/ldblib.c +++ b/src/ldblib.c @@ -1,5 +1,5 @@ /* -** $Id: ldblib.c,v 1.132 2012/01/19 20:14:44 roberto Exp $ +** $Id: ldblib.c,v 1.132.1.1 2013/04/12 18:48:47 roberto Exp $ ** Interface from Lua to its debug API ** See Copyright Notice in lua.h */ diff --git a/src/ldebug.c b/src/ldebug.c index 7e04f9d0..20d663ef 100644 --- a/src/ldebug.c +++ b/src/ldebug.c @@ -1,5 +1,5 @@ /* -** $Id: ldebug.c,v 2.90 2012/08/16 17:34:28 roberto Exp $ +** $Id: ldebug.c,v 2.90.1.3 2013/05/16 16:04:15 roberto Exp $ ** Debug Interface ** See Copyright Notice in lua.h */ @@ -327,12 +327,20 @@ static void kname (Proto *p, int pc, int c, const char **name) { } +static int filterpc (int pc, int jmptarget) { + if (pc < jmptarget) /* is code conditional (inside a jump)? */ + return -1; /* cannot know who sets that register */ + else return pc; /* current position sets that register */ +} + + /* ** try to find last instruction before 'lastpc' that modified register 'reg' */ static int findsetreg (Proto *p, int lastpc, int reg) { int pc; int setreg = -1; /* keep last instruction that changed 'reg' */ + int jmptarget = 0; /* any code before this address is conditional */ for (pc = 0; pc < lastpc; pc++) { Instruction i = p->code[pc]; OpCode op = GET_OPCODE(i); @@ -341,33 +349,38 @@ static int findsetreg (Proto *p, int lastpc, int reg) { case OP_LOADNIL: { int b = GETARG_B(i); if (a <= reg && reg <= a + b) /* set registers from 'a' to 'a+b' */ - setreg = pc; + setreg = filterpc(pc, jmptarget); break; } case OP_TFORCALL: { - if (reg >= a + 2) setreg = pc; /* affect all regs above its base */ + if (reg >= a + 2) /* affect all regs above its base */ + setreg = filterpc(pc, jmptarget); break; } case OP_CALL: case OP_TAILCALL: { - if (reg >= a) setreg = pc; /* affect all registers above base */ + if (reg >= a) /* affect all registers above base */ + setreg = filterpc(pc, jmptarget); break; } case OP_JMP: { int b = GETARG_sBx(i); int dest = pc + 1 + b; /* jump is forward and do not skip `lastpc'? */ - if (pc < dest && dest <= lastpc) - pc += b; /* do the jump */ + if (pc < dest && dest <= lastpc) { + if (dest > jmptarget) + jmptarget = dest; /* update 'jmptarget' */ + } break; } case OP_TEST: { - if (reg == a) setreg = pc; /* jumped code can change 'a' */ + if (reg == a) /* jumped code can change 'a' */ + setreg = filterpc(pc, jmptarget); break; } default: if (testAMode(op) && reg == a) /* any instruction that set A */ - setreg = pc; + setreg = filterpc(pc, jmptarget); break; } } @@ -518,7 +531,7 @@ l_noret luaG_typeerror (lua_State *L, const TValue *o, const char *op) { l_noret luaG_concaterror (lua_State *L, StkId p1, StkId p2) { if (ttisstring(p1) || ttisnumber(p1)) p1 = p2; - lua_assert(!ttisstring(p1) && !ttisnumber(p2)); + lua_assert(!ttisstring(p1) && !ttisnumber(p1)); luaG_typeerror(L, p1, "concatenate"); } diff --git a/src/ldebug.h b/src/ldebug.h index fe39556b..6445c763 100644 --- a/src/ldebug.h +++ b/src/ldebug.h @@ -1,5 +1,5 @@ /* -** $Id: ldebug.h,v 2.7 2011/10/07 20:45:19 roberto Exp $ +** $Id: ldebug.h,v 2.7.1.1 2013/04/12 18:48:47 roberto Exp $ ** Auxiliary functions from Debug Interface module ** See Copyright Notice in lua.h */ @@ -1,5 +1,5 @@ /* -** $Id: ldo.c,v 2.108 2012/10/01 14:05:04 roberto Exp $ +** $Id: ldo.c,v 2.108.1.3 2013/11/08 18:22:50 roberto Exp $ ** Stack and Call structure of Lua ** See Copyright Notice in lua.h */ @@ -260,6 +260,7 @@ static StkId adjust_varargs (lua_State *L, Proto *p, int actual) { StkId base, fixed; lua_assert(actual >= nfixargs); /* move fixed parameters to final position */ + luaD_checkstack(L, p->maxstacksize); /* check again for new 'base' */ fixed = L->top - actual; /* first fixed argument */ base = L->top; /* final position of first argument */ for (i=0; i<nfixargs; i++) { @@ -324,12 +325,18 @@ int luaD_precall (lua_State *L, StkId func, int nresults) { case LUA_TLCL: { /* Lua function: prepare its call */ StkId base; Proto *p = clLvalue(func)->p; - luaD_checkstack(L, p->maxstacksize); - func = restorestack(L, funcr); n = cast_int(L->top - func) - 1; /* number of real arguments */ + luaD_checkstack(L, p->maxstacksize); for (; n < p->numparams; n++) setnilvalue(L->top++); /* complete missing arguments */ - base = (!p->is_vararg) ? func + 1 : adjust_varargs(L, p, n); + if (!p->is_vararg) { + func = restorestack(L, funcr); + base = func + 1; + } + else { + base = adjust_varargs(L, p, n); + func = restorestack(L, funcr); /* previous call can change stack */ + } ci = next_ci(L); /* now 'enter' new function */ ci->nresults = nresults; ci->func = func; @@ -527,6 +534,7 @@ static void resume (lua_State *L, void *ud) { LUA_API int lua_resume (lua_State *L, lua_State *from, int nargs) { int status; + int oldnny = L->nny; /* save 'nny' */ lua_lock(L); luai_userstateresume(L, nargs); L->nCcalls = (from) ? from->nCcalls + 1 : 1; @@ -548,7 +556,7 @@ LUA_API int lua_resume (lua_State *L, lua_State *from, int nargs) { } lua_assert(status == L->status); } - L->nny = 1; /* do not allow yields */ + L->nny = oldnny; /* restore 'nny' */ L->nCcalls--; lua_assert(L->nCcalls == ((from) ? from->nCcalls : 0)); lua_unlock(L); @@ -1,5 +1,5 @@ /* -** $Id: ldo.h,v 2.20 2011/11/29 15:55:08 roberto Exp $ +** $Id: ldo.h,v 2.20.1.1 2013/04/12 18:48:47 roberto Exp $ ** Stack and Call structure of Lua ** See Copyright Notice in lua.h */ diff --git a/src/ldump.c b/src/ldump.c index d5e6a47c..61fa2cd8 100644 --- a/src/ldump.c +++ b/src/ldump.c @@ -1,5 +1,5 @@ /* -** $Id: ldump.c,v 2.17 2012/01/23 23:02:10 roberto Exp $ +** $Id: ldump.c,v 2.17.1.1 2013/04/12 18:48:47 roberto Exp $ ** save precompiled Lua chunks ** See Copyright Notice in lua.h */ diff --git a/src/lfunc.c b/src/lfunc.c index c2128405..e90e1520 100644 --- a/src/lfunc.c +++ b/src/lfunc.c @@ -1,5 +1,5 @@ /* -** $Id: lfunc.c,v 2.30 2012/10/03 12:36:46 roberto Exp $ +** $Id: lfunc.c,v 2.30.1.1 2013/04/12 18:48:47 roberto Exp $ ** Auxiliary functions to manipulate prototypes and closures ** See Copyright Notice in lua.h */ diff --git a/src/lfunc.h b/src/lfunc.h index e236a717..ca0d3a3e 100644 --- a/src/lfunc.h +++ b/src/lfunc.h @@ -1,5 +1,5 @@ /* -** $Id: lfunc.h,v 2.8 2012/05/08 13:53:33 roberto Exp $ +** $Id: lfunc.h,v 2.8.1.1 2013/04/12 18:48:47 roberto Exp $ ** Auxiliary functions to manipulate prototypes and closures ** See Copyright Notice in lua.h */ @@ -1,5 +1,5 @@ /* -** $Id: lgc.c,v 2.140 2013/03/16 21:10:18 roberto Exp $ +** $Id: lgc.c,v 2.140.1.2 2013/04/26 18:22:05 roberto Exp $ ** Garbage Collector ** See Copyright Notice in lua.h */ @@ -493,17 +493,24 @@ static lu_mem traverseLclosure (global_State *g, LClosure *cl) { static lu_mem traversestack (global_State *g, lua_State *th) { + int n = 0; StkId o = th->stack; if (o == NULL) return 1; /* stack not completely built yet */ - for (; o < th->top; o++) + for (; o < th->top; o++) /* mark live elements in the stack */ markvalue(g, o); if (g->gcstate == GCSatomic) { /* final traversal? */ StkId lim = th->stack + th->stacksize; /* real end of stack */ for (; o < lim; o++) /* clear not-marked stack slice */ setnilvalue(o); } - return sizeof(lua_State) + sizeof(TValue) * th->stacksize; + else { /* count call infos to compute size */ + CallInfo *ci; + for (ci = &th->base_ci; ci != th->ci; ci = ci->next) + n++; + } + return sizeof(lua_State) + sizeof(TValue) * th->stacksize + + sizeof(CallInfo) * n; } @@ -1,5 +1,5 @@ /* -** $Id: lgc.h,v 2.58 2012/09/11 12:53:08 roberto Exp $ +** $Id: lgc.h,v 2.58.1.1 2013/04/12 18:48:47 roberto Exp $ ** Garbage Collector ** See Copyright Notice in lua.h */ diff --git a/src/linit.c b/src/linit.c index 8d3aa657..c1a38304 100644 --- a/src/linit.c +++ b/src/linit.c @@ -1,5 +1,5 @@ /* -** $Id: linit.c,v 1.32 2011/04/08 19:17:36 roberto Exp $ +** $Id: linit.c,v 1.32.1.1 2013/04/12 18:48:47 roberto Exp $ ** Initialization of libraries for lua.c and other clients ** See Copyright Notice in lua.h */ diff --git a/src/liolib.c b/src/liolib.c index 3f80db19..2a4ec4aa 100644 --- a/src/liolib.c +++ b/src/liolib.c @@ -1,17 +1,17 @@ /* -** $Id: liolib.c,v 2.111 2013/03/21 13:57:27 roberto Exp $ +** $Id: liolib.c,v 2.112.1.1 2013/04/12 18:48:47 roberto Exp $ ** Standard I/O (and system) library ** See Copyright Notice in lua.h */ /* -** POSIX idiosyncrasy! ** This definition must come before the inclusion of 'stdio.h'; it ** should not affect non-POSIX systems */ #if !defined(_FILE_OFFSET_BITS) -#define _FILE_OFFSET_BITS 64 +#define _LARGEFILE_SOURCE 1 +#define _FILE_OFFSET_BITS 64 #endif @@ -80,36 +80,37 @@ /* ** {====================================================== -** lua_fseek/lua_ftell: configuration for longer offsets +** lua_fseek: configuration for longer offsets ** ======================================================= */ -#if !defined(lua_fseek) /* { */ +#if !defined(lua_fseek) && !defined(LUA_ANSI) /* { */ -#if defined(LUA_USE_POSIX) +#if defined(LUA_USE_POSIX) /* { */ #define l_fseek(f,o,w) fseeko(f,o,w) #define l_ftell(f) ftello(f) #define l_seeknum off_t #elif defined(LUA_WIN) && !defined(_CRTIMP_TYPEINFO) \ - && defined(_MSC_VER) && (_MSC_VER >= 1400) + && defined(_MSC_VER) && (_MSC_VER >= 1400) /* }{ */ /* Windows (but not DDK) and Visual C++ 2005 or higher */ #define l_fseek(f,o,w) _fseeki64(f,o,w) #define l_ftell(f) _ftelli64(f) #define l_seeknum __int64 -#else +#endif /* } */ +#endif /* } */ + + +#if !defined(l_fseek) /* default definitions */ #define l_fseek(f,o,w) fseek(f,o,w) #define l_ftell(f) ftell(f) #define l_seeknum long - #endif -#endif /* } */ - /* }====================================================== */ @@ -1,5 +1,5 @@ /* -** $Id: llex.c,v 2.63 2013/03/16 21:10:18 roberto Exp $ +** $Id: llex.c,v 2.63.1.2 2013/08/30 15:49:41 roberto Exp $ ** Lexical Analyzer ** See Copyright Notice in lua.h */ @@ -133,6 +133,9 @@ TString *luaX_newstring (LexState *ls, const char *str, size_t l) { setbvalue(o, 1); /* t[string] = true */ luaC_checkGC(L); } + else { /* string already present */ + ts = rawtsvalue(keyfromval(o)); /* re-use value previously stored */ + } L->top--; /* remove string from stack */ return ts; } @@ -1,5 +1,5 @@ /* -** $Id: llex.h,v 1.72 2011/11/30 12:43:51 roberto Exp $ +** $Id: llex.h,v 1.72.1.1 2013/04/12 18:48:47 roberto Exp $ ** Lexical Analyzer ** See Copyright Notice in lua.h */ diff --git a/src/llimits.h b/src/llimits.h index 1b8c79bd..152dd055 100644 --- a/src/llimits.h +++ b/src/llimits.h @@ -1,5 +1,5 @@ /* -** $Id: llimits.h,v 1.103 2013/02/20 14:08:56 roberto Exp $ +** $Id: llimits.h,v 1.103.1.1 2013/04/12 18:48:47 roberto Exp $ ** Limits, basic types, and some other `installation-dependent' definitions ** See Copyright Notice in lua.h */ diff --git a/src/lmathlib.c b/src/lmathlib.c index a49f1fd2..fe9fc542 100644 --- a/src/lmathlib.c +++ b/src/lmathlib.c @@ -1,5 +1,5 @@ /* -** $Id: lmathlib.c,v 1.83 2013/03/07 18:21:32 roberto Exp $ +** $Id: lmathlib.c,v 1.83.1.1 2013/04/12 18:48:47 roberto Exp $ ** Standard mathematical library ** See Copyright Notice in lua.h */ @@ -1,5 +1,5 @@ /* -** $Id: lmem.c,v 1.84 2012/05/23 15:41:53 roberto Exp $ +** $Id: lmem.c,v 1.84.1.1 2013/04/12 18:48:47 roberto Exp $ ** Interface to Memory Manager ** See Copyright Notice in lua.h */ @@ -1,5 +1,5 @@ /* -** $Id: lmem.h,v 1.40 2013/02/20 14:08:21 roberto Exp $ +** $Id: lmem.h,v 1.40.1.1 2013/04/12 18:48:47 roberto Exp $ ** Interface to Memory Manager ** See Copyright Notice in lua.h */ diff --git a/src/loadlib.c b/src/loadlib.c index a9959277..bedbea3e 100644 --- a/src/loadlib.c +++ b/src/loadlib.c @@ -1,5 +1,5 @@ /* -** $Id: loadlib.c,v 1.111 2012/05/30 12:33:44 roberto Exp $ +** $Id: loadlib.c,v 1.111.1.1 2013/04/12 18:48:47 roberto Exp $ ** Dynamic library loader for Lua ** See Copyright Notice in lua.h ** diff --git a/src/lobject.c b/src/lobject.c index c152785a..882d994d 100644 --- a/src/lobject.c +++ b/src/lobject.c @@ -1,5 +1,5 @@ /* -** $Id: lobject.c,v 2.58 2013/02/20 14:08:56 roberto Exp $ +** $Id: lobject.c,v 2.58.1.1 2013/04/12 18:48:47 roberto Exp $ ** Some generic functions over Lua objects ** See Copyright Notice in lua.h */ diff --git a/src/lobject.h b/src/lobject.h index dd23b914..3a630b94 100644 --- a/src/lobject.h +++ b/src/lobject.h @@ -1,5 +1,5 @@ /* -** $Id: lobject.h,v 2.71 2012/09/11 18:21:44 roberto Exp $ +** $Id: lobject.h,v 2.71.1.1 2013/04/12 18:48:47 roberto Exp $ ** Type definitions for Lua objects ** See Copyright Notice in lua.h */ diff --git a/src/lopcodes.c b/src/lopcodes.c index ef736927..4190dc76 100644 --- a/src/lopcodes.c +++ b/src/lopcodes.c @@ -1,5 +1,5 @@ /* -** $Id: lopcodes.c,v 1.49 2012/05/14 13:34:18 roberto Exp $ +** $Id: lopcodes.c,v 1.49.1.1 2013/04/12 18:48:47 roberto Exp $ ** Opcodes for Lua virtual machine ** See Copyright Notice in lua.h */ diff --git a/src/lopcodes.h b/src/lopcodes.h index 07d2b3f3..51f57915 100644 --- a/src/lopcodes.h +++ b/src/lopcodes.h @@ -1,5 +1,5 @@ /* -** $Id: lopcodes.h,v 1.142 2011/07/15 12:50:29 roberto Exp $ +** $Id: lopcodes.h,v 1.142.1.1 2013/04/12 18:48:47 roberto Exp $ ** Opcodes for Lua virtual machine ** See Copyright Notice in lua.h */ diff --git a/src/loslib.c b/src/loslib.c index 5170fd0d..052ba174 100644 --- a/src/loslib.c +++ b/src/loslib.c @@ -1,5 +1,5 @@ /* -** $Id: loslib.c,v 1.40 2012/10/19 15:54:02 roberto Exp $ +** $Id: loslib.c,v 1.40.1.1 2013/04/12 18:48:47 roberto Exp $ ** Standard Operating System library ** See Copyright Notice in lua.h */ diff --git a/src/lparser.c b/src/lparser.c index d8f5b4ff..9e1a9ca2 100644 --- a/src/lparser.c +++ b/src/lparser.c @@ -1,5 +1,5 @@ /* -** $Id: lparser.c,v 2.130 2013/02/06 13:37:39 roberto Exp $ +** $Id: lparser.c,v 2.130.1.1 2013/04/12 18:48:47 roberto Exp $ ** Lua Parser ** See Copyright Notice in lua.h */ diff --git a/src/lparser.h b/src/lparser.h index 301167d4..0346e3c4 100644 --- a/src/lparser.h +++ b/src/lparser.h @@ -1,5 +1,5 @@ /* -** $Id: lparser.h,v 1.70 2012/05/08 13:53:33 roberto Exp $ +** $Id: lparser.h,v 1.70.1.1 2013/04/12 18:48:47 roberto Exp $ ** Lua Parser ** See Copyright Notice in lua.h */ diff --git a/src/lstate.c b/src/lstate.c index 207a106d..c7f2672b 100644 --- a/src/lstate.c +++ b/src/lstate.c @@ -1,5 +1,5 @@ /* -** $Id: lstate.c,v 2.99 2012/10/02 17:40:53 roberto Exp $ +** $Id: lstate.c,v 2.99.1.2 2013/11/08 17:45:31 roberto Exp $ ** Global State ** See Copyright Notice in lua.h */ @@ -192,6 +192,8 @@ static void f_luaopen (lua_State *L, void *ud) { g->memerrmsg = luaS_newliteral(L, MEMERRMSG); luaS_fix(g->memerrmsg); /* it should never be collected */ g->gcrunning = 1; /* allow gc */ + g->version = lua_version(NULL); + luai_userstateopen(L); } @@ -222,6 +224,8 @@ static void close_state (lua_State *L) { global_State *g = G(L); luaF_close(L, L->stack); /* close all upvalues for this thread */ luaC_freeallobjects(L); /* collect all objects */ + if (g->version) /* closing a fully built state? */ + luai_userstateclose(L); luaM_freearray(L, G(L)->strt.hash, G(L)->strt.size); luaZ_freebuffer(L, &g->buff); freestack(L); @@ -287,7 +291,7 @@ LUA_API lua_State *lua_newstate (lua_Alloc f, void *ud) { setnilvalue(&g->l_registry); luaZ_initbuffer(L, &g->buff); g->panic = NULL; - g->version = lua_version(NULL); + g->version = NULL; g->gcstate = GCSpause; g->allgc = NULL; g->finobj = NULL; @@ -306,8 +310,6 @@ LUA_API lua_State *lua_newstate (lua_Alloc f, void *ud) { close_state(L); L = NULL; } - else - luai_userstateopen(L); return L; } @@ -315,7 +317,6 @@ LUA_API lua_State *lua_newstate (lua_Alloc f, void *ud) { LUA_API void lua_close (lua_State *L) { L = G(L)->mainthread; /* only the main thread can be closed */ lua_lock(L); - luai_userstateclose(L); close_state(L); } diff --git a/src/lstate.h b/src/lstate.h index c8a31f5c..daffd9aa 100644 --- a/src/lstate.h +++ b/src/lstate.h @@ -1,5 +1,5 @@ /* -** $Id: lstate.h,v 2.82 2012/07/02 13:37:04 roberto Exp $ +** $Id: lstate.h,v 2.82.1.1 2013/04/12 18:48:47 roberto Exp $ ** Global State ** See Copyright Notice in lua.h */ diff --git a/src/lstring.c b/src/lstring.c index 8b5af0b2..af96c89c 100644 --- a/src/lstring.c +++ b/src/lstring.c @@ -1,5 +1,5 @@ /* -** $Id: lstring.c,v 2.26 2013/01/08 13:50:10 roberto Exp $ +** $Id: lstring.c,v 2.26.1.1 2013/04/12 18:48:47 roberto Exp $ ** String table (keeps all strings handled by Lua) ** See Copyright Notice in lua.h */ diff --git a/src/lstring.h b/src/lstring.h index d312ff3d..260e7f16 100644 --- a/src/lstring.h +++ b/src/lstring.h @@ -1,5 +1,5 @@ /* -** $Id: lstring.h,v 1.49 2012/02/01 21:57:15 roberto Exp $ +** $Id: lstring.h,v 1.49.1.1 2013/04/12 18:48:47 roberto Exp $ ** String table (keep all strings handled by Lua) ** See Copyright Notice in lua.h */ diff --git a/src/lstrlib.c b/src/lstrlib.c index fcc61c9a..9261fd22 100644 --- a/src/lstrlib.c +++ b/src/lstrlib.c @@ -1,5 +1,5 @@ /* -** $Id: lstrlib.c,v 1.178 2012/08/14 18:12:34 roberto Exp $ +** $Id: lstrlib.c,v 1.178.1.1 2013/04/12 18:48:47 roberto Exp $ ** Standard library for string operations and pattern-matching ** See Copyright Notice in lua.h */ diff --git a/src/ltable.c b/src/ltable.c index 420391fc..5d76f97e 100644 --- a/src/ltable.c +++ b/src/ltable.c @@ -1,5 +1,5 @@ /* -** $Id: ltable.c,v 2.72 2012/09/11 19:37:16 roberto Exp $ +** $Id: ltable.c,v 2.72.1.1 2013/04/12 18:48:47 roberto Exp $ ** Lua tables (hash) ** See Copyright Notice in lua.h */ diff --git a/src/ltable.h b/src/ltable.h index 2f6f5c2d..d69449b2 100644 --- a/src/ltable.h +++ b/src/ltable.h @@ -1,5 +1,5 @@ /* -** $Id: ltable.h,v 2.16 2011/08/17 20:26:47 roberto Exp $ +** $Id: ltable.h,v 2.16.1.2 2013/08/30 15:49:41 roberto Exp $ ** Lua tables (hash) ** See Copyright Notice in lua.h */ @@ -17,6 +17,10 @@ #define invalidateTMcache(t) ((t)->flags = 0) +/* returns the key, given the value of a table entry */ +#define keyfromval(v) \ + (gkey(cast(Node *, cast(char *, (v)) - offsetof(Node, i_val)))) + LUAI_FUNC const TValue *luaH_getint (Table *t, int key); LUAI_FUNC void luaH_setint (lua_State *L, Table *t, int key, TValue *value); diff --git a/src/ltablib.c b/src/ltablib.c index ad798b4e..6001224e 100644 --- a/src/ltablib.c +++ b/src/ltablib.c @@ -1,5 +1,5 @@ /* -** $Id: ltablib.c,v 1.65 2013/03/07 18:17:24 roberto Exp $ +** $Id: ltablib.c,v 1.65.1.1 2013/04/12 18:48:47 roberto Exp $ ** Library for Table Manipulation ** See Copyright Notice in lua.h */ @@ -1,5 +1,5 @@ /* -** $Id: ltm.c,v 2.14 2011/06/02 19:31:40 roberto Exp $ +** $Id: ltm.c,v 2.14.1.1 2013/04/12 18:48:47 roberto Exp $ ** Tag methods ** See Copyright Notice in lua.h */ @@ -1,5 +1,5 @@ /* -** $Id: ltm.h,v 2.11 2011/02/28 17:32:10 roberto Exp $ +** $Id: ltm.h,v 2.11.1.1 2013/04/12 18:48:47 roberto Exp $ ** Tag methods ** See Copyright Notice in lua.h */ @@ -1,5 +1,5 @@ /* -** $Id: lua.c,v 1.206 2012/09/29 20:07:06 roberto Exp $ +** $Id: lua.c,v 1.206.1.1 2013/04/12 18:48:47 roberto Exp $ ** Lua stand-alone interpreter ** See Copyright Notice in lua.h */ @@ -1,5 +1,5 @@ /* -** $Id: lua.h,v 1.285 2013/03/15 13:04:22 roberto Exp $ +** $Id: lua.h,v 1.285.1.2 2013/11/11 12:09:16 roberto Exp $ ** Lua - A Scripting Language ** Lua.org, PUC-Rio, Brazil (http://www.lua.org) ** See Copyright Notice at the end of this file @@ -19,7 +19,7 @@ #define LUA_VERSION_MAJOR "5" #define LUA_VERSION_MINOR "2" #define LUA_VERSION_NUM 502 -#define LUA_VERSION_RELEASE "2" +#define LUA_VERSION_RELEASE "3" #define LUA_VERSION "Lua " LUA_VERSION_MAJOR "." LUA_VERSION_MINOR #define LUA_RELEASE LUA_VERSION "." LUA_VERSION_RELEASE @@ -203,7 +203,7 @@ int main(int argc, char* argv[]) } /* -** $Id: print.c,v 1.68 2011/09/30 10:21:20 lhf Exp $ +** $Id: print.c,v 1.69 2013/07/04 01:03:46 lhf Exp $ ** print bytecodes ** See Copyright Notice in lua.h */ @@ -251,7 +251,7 @@ static void PrintString(const TString* ts) static void PrintConstant(const Proto* f, int i) { const TValue* o=&f->k[i]; - switch (ttype(o)) + switch (ttypenv(o)) { case LUA_TNIL: printf("nil"); diff --git a/src/luaconf.h b/src/luaconf.h index df802c95..18be9a9e 100644 --- a/src/luaconf.h +++ b/src/luaconf.h @@ -1,5 +1,5 @@ /* -** $Id: luaconf.h,v 1.176 2013/03/16 21:10:18 roberto Exp $ +** $Id: luaconf.h,v 1.176.1.1 2013/04/12 18:48:47 roberto Exp $ ** Configuration file for Lua ** See Copyright Notice in lua.h */ diff --git a/src/lualib.h b/src/lualib.h index 9fd126bf..da82005c 100644 --- a/src/lualib.h +++ b/src/lualib.h @@ -1,5 +1,5 @@ /* -** $Id: lualib.h,v 1.43 2011/12/08 12:11:37 roberto Exp $ +** $Id: lualib.h,v 1.43.1.1 2013/04/12 18:48:47 roberto Exp $ ** Lua standard libraries ** See Copyright Notice in lua.h */ diff --git a/src/lundump.c b/src/lundump.c index 54de011a..4163cb5d 100644 --- a/src/lundump.c +++ b/src/lundump.c @@ -1,5 +1,5 @@ /* -** $Id: lundump.c,v 2.22 2012/05/08 13:53:33 roberto Exp $ +** $Id: lundump.c,v 2.22.1.1 2013/04/12 18:48:47 roberto Exp $ ** load precompiled Lua chunks ** See Copyright Notice in lua.h */ diff --git a/src/lundump.h b/src/lundump.h index 2b8accec..5255db25 100644 --- a/src/lundump.h +++ b/src/lundump.h @@ -1,5 +1,5 @@ /* -** $Id: lundump.h,v 1.39 2012/05/08 13:53:33 roberto Exp $ +** $Id: lundump.h,v 1.39.1.1 2013/04/12 18:48:47 roberto Exp $ ** load precompiled Lua chunks ** See Copyright Notice in lua.h */ @@ -1,5 +1,5 @@ /* -** $Id: lvm.c,v 2.155 2013/03/16 21:10:18 roberto Exp $ +** $Id: lvm.c,v 2.155.1.1 2013/04/12 18:48:47 roberto Exp $ ** Lua virtual machine ** See Copyright Notice in lua.h */ @@ -1,5 +1,5 @@ /* -** $Id: lvm.h,v 2.18 2013/01/08 14:06:55 roberto Exp $ +** $Id: lvm.h,v 2.18.1.1 2013/04/12 18:48:47 roberto Exp $ ** Lua virtual machine ** See Copyright Notice in lua.h */ @@ -1,5 +1,5 @@ /* -** $Id: lzio.c,v 1.35 2012/05/14 13:34:18 roberto Exp $ +** $Id: lzio.c,v 1.35.1.1 2013/04/12 18:48:47 roberto Exp $ ** Buffered streams ** See Copyright Notice in lua.h */ @@ -1,5 +1,5 @@ /* -** $Id: lzio.h,v 1.26 2011/07/15 12:48:03 roberto Exp $ +** $Id: lzio.h,v 1.26.1.1 2013/04/12 18:48:47 roberto Exp $ ** Buffered streams ** See Copyright Notice in lua.h */ |