Browse Source

Fixed bug in 'aux_rawset'

In 'aux_rawset', top must be decremented after the barrier, which
refers to top-1. (Bug introduced in commit c646e57fd.)
pull/23/head
Roberto Ierusalimschy 5 years ago
parent
commit
e3c83835e7
  1. 2
      lapi.c

2
lapi.c

@ -856,9 +856,9 @@ static void aux_rawset (lua_State *L, int idx, TValue *key, int n) {
t = gettable(L, idx); t = gettable(L, idx);
slot = luaH_set(L, t, key); slot = luaH_set(L, t, key);
setobj2t(L, slot, s2v(L->top - 1)); setobj2t(L, slot, s2v(L->top - 1));
L->top -= n;
invalidateTMcache(t); invalidateTMcache(t);
luaC_barrierback(L, obj2gco(t), s2v(L->top - 1)); luaC_barrierback(L, obj2gco(t), s2v(L->top - 1));
L->top -= n;
lua_unlock(L); lua_unlock(L);
} }

Loading…
Cancel
Save