eris: table nodes now have room to store sequence number

This commit is contained in:
2021-07-07 13:29:18 -04:00
parent 3bf8b1fadb
commit 70b33905da
7 changed files with 356 additions and 101 deletions

View File

@@ -11,15 +11,17 @@
#define gnode(t,i) (&(t)->node[i])
#define gkey(n) (&(n)->i_key.tvk)
#define gval(n) (&(n)->i_val)
#define gnext(n) ((n)->i_key.nk.next)
#define gkey(n) (&(n)->i_key)
#define gval(n) (&(n)->anode.i_val)
#define ganode(n) (&(n)->anode)
#define gseq(n) ((n)->anode.i_sequence)
#define gnext(n) ((n)->i_next)
#define invalidateTMcache(t) ((t)->flags = 0)
/* returns the key, given the value of a table entry */
#define keyfromval(v) \
(gkey(cast(Node *, cast(char *, (v)) - offsetof(Node, i_val))))
(gkey(cast(Node *, cast(char *, (v)) - offsetof(Node, anode.i_val))))
LUAI_FUNC const TValue *luaH_getint (Table *t, int key);
@@ -32,6 +34,8 @@ LUAI_FUNC Table *luaH_new (lua_State *L);
LUAI_FUNC void luaH_resize (lua_State *L, Table *t, int nasize, int nhsize);
LUAI_FUNC void luaH_resizearray (lua_State *L, Table *t, int nasize);
LUAI_FUNC void luaH_free (lua_State *L, Table *t);
LUAI_FUNC int luaH_nkeys (Table *t);
LUAI_FUNC int luaH_nthkey (lua_State *L, Table *t, int n, StkId pair);
LUAI_FUNC int luaH_next (lua_State *L, Table *t, StkId key);
LUAI_FUNC int luaH_getn (Table *t);