diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2013-03-07 15:17:24 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2013-03-07 15:17:24 -0300 |
| commit | 15a3738b4994cc8bbe23d73d640743338ae22b02 (patch) | |
| tree | d8875c7d2a0a818ad2615b012bbe480cf5140094 | |
| parent | a83ed55f1e3e20f73d01489c18889bb8554593ce (diff) | |
| download | lua-15a3738b4994cc8bbe23d73d640743338ae22b02.tar.gz lua-15a3738b4994cc8bbe23d73d640743338ae22b02.tar.bz2 lua-15a3738b4994cc8bbe23d73d640743338ae22b02.zip | |
no need to handle 0 as a special case in 'table.remove'
| -rw-r--r-- | ltablib.c | 4 |
1 files changed, 1 insertions, 3 deletions
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: ltablib.c,v 1.63 2011/11/28 17:26:30 roberto Exp roberto $ | 2 | ** $Id: ltablib.c,v 1.64 2013/02/06 18:29:03 roberto Exp roberto $ |
| 3 | ** Library for Table Manipulation | 3 | ** Library for Table Manipulation |
| 4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
| 5 | */ | 5 | */ |
| @@ -70,8 +70,6 @@ static int tremove (lua_State *L) { | |||
| 70 | int pos = luaL_optint(L, 2, size); | 70 | int pos = luaL_optint(L, 2, size); |
| 71 | if (pos != size) /* validate 'pos' if given */ | 71 | if (pos != size) /* validate 'pos' if given */ |
| 72 | luaL_argcheck(L, 1 <= pos && pos <= size + 1, 1, "position out of bounds"); | 72 | luaL_argcheck(L, 1 <= pos && pos <= size + 1, 1, "position out of bounds"); |
| 73 | else if (size == 0) /* empty table? */ | ||
| 74 | return 0; /* return nothing (nil) */ | ||
| 75 | lua_rawgeti(L, 1, pos); /* result = t[pos] */ | 73 | lua_rawgeti(L, 1, pos); /* result = t[pos] */ |
| 76 | for ( ; pos < size; pos++) { | 74 | for ( ; pos < size; pos++) { |
| 77 | lua_rawgeti(L, 1, pos+1); | 75 | lua_rawgeti(L, 1, pos+1); |
