diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2025-03-14 12:37:19 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2025-03-14 12:37:19 -0300 |
commit | c2dc6e8e947ed0c7b18d452592f722f56ee1f96a (patch) | |
tree | 2d39698d94992e158199db58d53693496250d2b6 /lvm.c | |
parent | 22974326ca0d4f893849ce722cc1d65b3e228f42 (diff) | |
download | lua-c2dc6e8e947ed0c7b18d452592f722f56ee1f96a.tar.gz lua-c2dc6e8e947ed0c7b18d452592f722f56ee1f96a.tar.bz2 lua-c2dc6e8e947ed0c7b18d452592f722f56ee1f96a.zip |
Missing GC barrier in 'luaV_finishset'
Diffstat (limited to '')
-rw-r--r-- | lvm.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -362,8 +362,10 @@ void luaV_finishset (lua_State *L, const TValue *t, TValue *key, | |||
362 | } | 362 | } |
363 | t = tm; /* else repeat assignment over 'tm' */ | 363 | t = tm; /* else repeat assignment over 'tm' */ |
364 | luaV_fastset(t, key, val, hres, luaH_pset); | 364 | luaV_fastset(t, key, val, hres, luaH_pset); |
365 | if (hres == HOK) | 365 | if (hres == HOK) { |
366 | luaV_finishfastset(L, t, val); | ||
366 | return; /* done */ | 367 | return; /* done */ |
368 | } | ||
367 | /* else 'return luaV_finishset(L, t, key, val, slot)' (loop) */ | 369 | /* else 'return luaV_finishset(L, t, key, val, slot)' (loop) */ |
368 | } | 370 | } |
369 | luaG_runerror(L, "'__newindex' chain too long; possible loop"); | 371 | luaG_runerror(L, "'__newindex' chain too long; possible loop"); |