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 | ||
