Aegisub/auto3/lua/DIFFS
Niels Martin Hansen 3008d26a6f Interface and code-skeleton for Auto3 shared library, and Lua 5.0.3 source tree.
Originally committed to SVN as r1155.
2007-05-02 12:18:04 +00:00

294 lines
9.3 KiB
Text

diff -r lua-5.0.2/COPYRIGHT lua-5.0.3/COPYRIGHT
12c12
< Copyright (C) 2003-2004 Tecgraf, PUC-Rio.
---
> Copyright (C) 2003-2006 Tecgraf, PUC-Rio.
diff -r lua-5.0.2/include/lua.h lua-5.0.3/include/lua.h
2c2
< ** $Id: lua.h,v 1.175b 2003/03/18 12:31:39 roberto Exp $
---
> ** $Id: lua.h,v 1.175c 2003/03/18 12:31:39 roberto Exp $
17,18c17,18
< #define LUA_VERSION "Lua 5.0.2"
< #define LUA_COPYRIGHT "Copyright (C) 1994-2004 Tecgraf, PUC-Rio"
---
> #define LUA_VERSION "Lua 5.0.3"
> #define LUA_COPYRIGHT "Copyright (C) 1994-2006 Tecgraf, PUC-Rio"
368c368
< * Copyright (C) 1994-2004 Tecgraf, PUC-Rio. All rights reserved.
---
> * Copyright (C) 1994-2006 Tecgraf, PUC-Rio. All rights reserved.
diff -r lua-5.0.2/src/lapi.c lua-5.0.3/src/lapi.c
2c2
< ** $Id: lapi.c,v 1.235 2003/04/07 14:36:08 roberto Exp $
---
> ** $Id: lapi.c,v 1.235a 2003/04/07 14:36:08 roberto Exp $
882c882
< if (n > f->c.nupvalues) return NULL;
---
> if (!(1 <= n && n <= f->c.nupvalues)) return NULL;
888c888
< if (n > p->sizeupvalues) return NULL;
---
> if (!(1 <= n && n <= p->sizeupvalues)) return NULL;
diff -r lua-5.0.2/src/lcode.c lua-5.0.3/src/lcode.c
2c2
< ** $Id: lcode.c,v 1.117 2003/04/03 13:35:34 roberto Exp $
---
> ** $Id: lcode.c,v 1.117a 2003/04/03 13:35:34 roberto Exp $
105c105,108
< if (GET_OPCODE(i) != OP_TEST || GETARG_C(i) != cond) return 1;
---
> if (GET_OPCODE(i) != OP_TEST ||
> GETARG_A(i) != NO_REG ||
> GETARG_C(i) != cond)
> return 1;
117,118c120,130
< static void luaK_patchlistaux (FuncState *fs, int list,
< int ttarget, int treg, int ftarget, int freg, int dtarget) {
---
> static void removevalues (FuncState *fs, int list) {
> for (; list != NO_JUMP; list = luaK_getjump(fs, list)) {
> Instruction *i = getjumpcontrol(fs, list);
> if (GET_OPCODE(*i) == OP_TEST)
> patchtestreg(i, NO_REG);
> }
> }
>
>
> static void luaK_patchlistaux (FuncState *fs, int list, int vtarget, int reg,
> int dtarget) {
122,136c134,136
< if (GET_OPCODE(*i) != OP_TEST) {
< lua_assert(dtarget != NO_JUMP);
< luaK_fixjump(fs, list, dtarget); /* jump to default target */
< }
< else {
< if (GETARG_C(*i)) {
< lua_assert(ttarget != NO_JUMP);
< patchtestreg(i, treg);
< luaK_fixjump(fs, list, ttarget);
< }
< else {
< lua_assert(ftarget != NO_JUMP);
< patchtestreg(i, freg);
< luaK_fixjump(fs, list, ftarget);
< }
---
> if (GET_OPCODE(*i) == OP_TEST && GETARG_A(*i) == NO_REG) {
> patchtestreg(i, reg);
> luaK_fixjump(fs, list, vtarget);
137a138,139
> else
> luaK_fixjump(fs, list, dtarget); /* jump to default target */
144c146
< luaK_patchlistaux(fs, fs->jpc, fs->pc, NO_REG, fs->pc, NO_REG, fs->pc);
---
> luaK_patchlistaux(fs, fs->jpc, fs->pc, NO_REG, fs->pc);
154c156
< luaK_patchlistaux(fs, list, target, NO_REG, target, NO_REG, target);
---
> luaK_patchlistaux(fs, list, target, NO_REG, target);
357,358c359,360
< luaK_patchlistaux(fs, e->f, p_f, NO_REG, final, reg, p_f);
< luaK_patchlistaux(fs, e->t, final, reg, p_t, NO_REG, p_t);
---
> luaK_patchlistaux(fs, e->f, final, reg, p_f);
> luaK_patchlistaux(fs, e->t, final, reg, p_t);
476c478
< return luaK_condjump(fs, OP_TEST, NO_REG, GETARG_B(ie), !cond);
---
> return luaK_condjump(fs, OP_TEST, GETARG_B(ie), GETARG_B(ie), !cond);
566a569,570
> removevalues(fs, e->f);
> removevalues(fs, e->t);
diff -r lua-5.0.2/src/lfunc.c lua-5.0.3/src/lfunc.c
2c2
< ** $Id: lfunc.c,v 1.67 2003/03/18 12:50:04 roberto Exp $
---
> ** $Id: lfunc.c,v 1.67a 2003/03/18 12:50:04 roberto Exp $
19,26d18
<
<
< #define sizeCclosure(n) (cast(int, sizeof(CClosure)) + \
< cast(int, sizeof(TObject)*((n)-1)))
<
< #define sizeLclosure(n) (cast(int, sizeof(LClosure)) + \
< cast(int, sizeof(TObject *)*((n)-1)))
<
diff -r lua-5.0.2/src/lfunc.h lua-5.0.3/src/lfunc.h
2c2
< ** $Id: lfunc.h,v 1.21 2003/03/18 12:50:04 roberto Exp $
---
> ** $Id: lfunc.h,v 1.21a 2003/03/18 12:50:04 roberto Exp $
11a12,18
>
>
> #define sizeCclosure(n) (cast(int, sizeof(CClosure)) + \
> cast(int, sizeof(TObject)*((n)-1)))
>
> #define sizeLclosure(n) (cast(int, sizeof(LClosure)) + \
> cast(int, sizeof(TObject *)*((n)-1)))
diff -r lua-5.0.2/src/lgc.c lua-5.0.3/src/lgc.c
2c2
< ** $Id: lgc.c,v 1.171a 2003/04/03 13:35:34 roberto Exp $
---
> ** $Id: lgc.c,v 1.171b 2003/04/03 13:35:34 roberto Exp $
221,224c221,222
< if (!u->marked) {
< markobject(st, &u->value);
< u->marked = 1;
< }
---
> markobject(st, u->v);
> u->marked = 1;
261c259,260
< static void propagatemarks (GCState *st) {
---
> static lu_mem propagatemarks (GCState *st) {
> lu_mem mf = 0;
267a267,268
> mf += sizeof(Table) + sizeof(TObject) * h->sizearray +
> sizeof(Node) * sizenode(h);
273a275,276
> mf += (cl->c.isC) ? sizeCclosure(cl->c.nupvalues) :
> sizeLclosure(cl->l.nupvalues);
279a283,284
> mf += sizeof(lua_State) + sizeof(TObject) * th->stacksize +
> sizeof(CallInfo) * th->size_ci;
285a291
> /* do not need 'mf' for this case (cannot happen inside a udata) */
290a297
> return mf;
371c378
< if (curr->gch.marked > limit) {
---
> if ((curr->gch.marked & ~(KEYWEAK | VALUEWEAK)) > limit) {
473c480
< propagatemarks(&st); /* remark, to propagate `preserveness' */
---
> deadmem += propagatemarks(&st); /* remark, to propagate `preserveness' */
diff -r lua-5.0.2/src/lib/lbaselib.c lua-5.0.3/src/lib/lbaselib.c
2c2
< ** $Id: lbaselib.c,v 1.130b 2003/04/03 13:35:34 roberto Exp $
---
> ** $Id: lbaselib.c,v 1.130c 2003/04/03 13:35:34 roberto Exp $
175a176
> lua_settop(L, 2);
183a185
> lua_settop(L, 3);
diff -r lua-5.0.2/src/lib/liolib.c lua-5.0.3/src/lib/liolib.c
2c2
< ** $Id: liolib.c,v 2.39a 2003/03/19 21:16:12 roberto Exp $
---
> ** $Id: liolib.c,v 2.39b 2003/03/19 21:16:12 roberto Exp $
22a23,28
> typedef struct FileHandle {
> FILE *f;
> int ispipe;
> } FileHandle;
>
>
89,92c95,98
< static FILE **topfile (lua_State *L, int findex) {
< FILE **f = (FILE **)luaL_checkudata(L, findex, FILEHANDLE);
< if (f == NULL) luaL_argerror(L, findex, "bad file");
< return f;
---
> static FileHandle *topfile (lua_State *L, int findex) {
> FileHandle *fh = (FileHandle *)luaL_checkudata(L, findex, FILEHANDLE);
> if (fh == NULL) luaL_argerror(L, findex, "bad file");
> return fh;
97,99c103,105
< FILE **f = (FILE **)luaL_checkudata(L, 1, FILEHANDLE);
< if (f == NULL) lua_pushnil(L);
< else if (*f == NULL)
---
> FileHandle *fh = (FileHandle *)luaL_checkudata(L, 1, FILEHANDLE);
> if (fh == NULL) lua_pushnil(L);
> else if (fh->f == NULL)
107,109c113,117
< static FILE *tofile (lua_State *L, int findex) {
< FILE **f = topfile(L, findex);
< if (*f == NULL)
---
> #define tofile(L,i) (tofileh(L,i)->f)
>
> static FileHandle *tofileh (lua_State *L, int findex) {
> FileHandle *fh = topfile(L, findex);
> if (fh->f == NULL)
111c119
< return *f;
---
> return fh;
115a124,125
> #define newfile(L) (&(newfileh(L)->f))
>
121,123c131,134
< static FILE **newfile (lua_State *L) {
< FILE **pf = (FILE **)lua_newuserdata(L, sizeof(FILE *));
< *pf = NULL; /* file handle is currently `closed' */
---
> static FileHandle *newfileh (lua_State *L) {
> FileHandle *fh = (FileHandle *)lua_newuserdata(L, sizeof(FileHandle));
> fh->f = NULL; /* file handle is currently `closed' */
> fh->ispipe = 0;
126c137
< return pf;
---
> return fh;
148c159,160
< FILE *f = tofile(L, 1);
---
> FileHandle *fh = tofileh(L, 1);
> FILE *f = fh->f;
152,154c164,165
< int ok = (pclose(f) != -1) || (fclose(f) == 0);
< if (ok)
< *(FILE **)lua_touserdata(L, 1) = NULL; /* mark file as closed */
---
> int ok = fh->ispipe ? (pclose(f) != -1) : (fclose(f) == 0);
> fh->f = NULL; /* mark file as closed */
170,171c181,182
< FILE **f = topfile(L, 1);
< if (*f != NULL) /* ignore closed files */
---
> FileHandle *fh = topfile(L, 1);
> if (fh->f != NULL) /* ignore closed files */
179,180c190,191
< FILE **f = topfile(L, 1);
< if (*f == NULL)
---
> FileHandle *fh = topfile(L, 1);
> if (fh->f == NULL)
205,207c216,219
< FILE **pf = newfile(L);
< *pf = popen(filename, mode);
< return (*pf == NULL) ? pushresult(L, 0, filename) : 1;
---
> FileHandle *fh = newfileh(L);
> fh->f = popen(filename, mode);
> fh->ispipe = 1;
> return (fh->f == NULL) ? pushresult(L, 0, filename) : 1;
diff -r lua-5.0.2/src/lvm.c lua-5.0.3/src/lvm.c
2c2
< ** $Id: lvm.c,v 1.284b 2003/04/03 13:35:34 roberto Exp $
---
> ** $Id: lvm.c,v 1.284c 2003/04/03 13:35:34 roberto Exp $
324,325c324
< lu_mem tl = cast(lu_mem, tsvalue(top-1)->tsv.len) +
< cast(lu_mem, tsvalue(top-2)->tsv.len);
---
> size_t tl = tsvalue(top-1)->tsv.len;
328,330c327,331
< while (n < total && tostring(L, top-n-1)) { /* collect total length */
< tl += tsvalue(top-n-1)->tsv.len;
< n++;
---
> /* collect total length */
> for (n = 1; n < total && tostring(L, top-n-1); n++) {
> size_t l = tsvalue(top-n-1)->tsv.len;
> if (l >= MAX_SIZET - tl) luaG_runerror(L, "string length overflow");
> tl += l;
332d332
< if (tl > MAX_SIZET) luaG_runerror(L, "string size overflow");