diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2015-09-09 10:44:07 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2015-09-09 10:44:07 -0300 |
| commit | b91bc93fd33f2158745b37c9e091c6fa4d1a4fd5 (patch) | |
| tree | 5a8d2dd59066cb610534a694db8f94d45ecd3931 /lvm.c | |
| parent | 53be1451a850c28b9bc1e4583dccd4ecbb4478b6 (diff) | |
| download | lua-b91bc93fd33f2158745b37c9e091c6fa4d1a4fd5.tar.gz lua-b91bc93fd33f2158745b37c9e091c6fa4d1a4fd5.tar.bz2 lua-b91bc93fd33f2158745b37c9e091c6fa4d1a4fd5.zip | |
'setobj2t' incorporated into 'luaV_fastset' + 'invalidateTMcache'
is not needed in the fast track (as it does not create new
entries)
Diffstat (limited to 'lvm.c')
| -rw-r--r-- | lvm.c | 9 |
1 files changed, 3 insertions, 6 deletions
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: lvm.c,v 2.250 2015/08/03 20:40:26 roberto Exp roberto $ | 2 | ** $Id: lvm.c,v 2.251 2015/09/08 15:41:05 roberto Exp roberto $ |
| 3 | ** Lua virtual machine | 3 | ** Lua virtual machine |
| 4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
| 5 | */ | 5 | */ |
| @@ -216,11 +216,8 @@ void luaV_finishset (lua_State *L, const TValue *t, TValue *key, | |||
| 216 | return; | 216 | return; |
| 217 | } | 217 | } |
| 218 | t = tm; /* else repeat assignment over 'tm' */ | 218 | t = tm; /* else repeat assignment over 'tm' */ |
| 219 | if (luaV_fastset(L, t, key, oldval, luaH_get, val)) { | 219 | if (luaV_fastset(L, t, key, oldval, luaH_get, val)) |
| 220 | invalidateTMcache(hvalue(t)); | 220 | return; /* done */ |
| 221 | setobj2t(L, cast(TValue *, oldval), val); | ||
| 222 | return; | ||
| 223 | } | ||
| 224 | /* else loop */ | 221 | /* else loop */ |
| 225 | } | 222 | } |
| 226 | luaG_runerror(L, "settable chain too long; possible loop"); | 223 | luaG_runerror(L, "settable chain too long; possible loop"); |
