diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2003-02-11 08:46:24 -0200 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2003-02-11 08:46:24 -0200 |
commit | 7a40cdbda0a171da223094208dd3c6e3eca13922 (patch) | |
tree | c95840411ac26e11b0683d4a5fc88402c1d0a70a /lapi.c | |
parent | 3cdeacbbfba9308dd2dcc995a9bcc510bfcead31 (diff) | |
download | lua-7a40cdbda0a171da223094208dd3c6e3eca13922.tar.gz lua-7a40cdbda0a171da223094208dd3c6e3eca13922.tar.bz2 lua-7a40cdbda0a171da223094208dd3c6e3eca13922.zip |
different variables for number of upvalues and size of upvalue array
(makes code clearer)
Diffstat (limited to 'lapi.c')
-rw-r--r-- | lapi.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lapi.c,v 1.226 2002/12/04 17:38:31 roberto Exp roberto $ | 2 | ** $Id: lapi.c,v 1.227 2002/12/19 11:11:55 roberto Exp roberto $ |
3 | ** Lua API | 3 | ** Lua API |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -872,14 +872,16 @@ static const char *aux_upvalue (lua_State *L, int funcindex, int n, | |||
872 | StkId fi = luaA_index(L, funcindex); | 872 | StkId fi = luaA_index(L, funcindex); |
873 | if (!ttisfunction(fi)) return NULL; | 873 | if (!ttisfunction(fi)) return NULL; |
874 | f = clvalue(fi); | 874 | f = clvalue(fi); |
875 | if (n > f->l.nupvalues) return NULL; | ||
876 | if (f->c.isC) { | 875 | if (f->c.isC) { |
876 | if (n > f->c.nupvalues) return NULL; | ||
877 | *val = &f->c.upvalue[n-1]; | 877 | *val = &f->c.upvalue[n-1]; |
878 | return ""; | 878 | return ""; |
879 | } | 879 | } |
880 | else { | 880 | else { |
881 | Proto *p = f->l.p; | ||
882 | if (n > p->sizeupvalues) return NULL; | ||
881 | *val = f->l.upvals[n-1]->v; | 883 | *val = f->l.upvals[n-1]->v; |
882 | return getstr(f->l.p->upvalues[n-1]); | 884 | return getstr(p->upvalues[n-1]); |
883 | } | 885 | } |
884 | } | 886 | } |
885 | 887 | ||