diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2022-11-01 15:42:08 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2022-11-01 15:42:08 -0300 |
commit | 8047b2d03eaaeee44871a11f8d3a3135f2639b1a (patch) | |
tree | 2b2d246e2c63ba0accd7c3463a0d331669abe1ef /ltable.h | |
parent | ee645472ebe153e2c6669c84a632297a8110bdb6 (diff) | |
download | lua-8047b2d03eaaeee44871a11f8d3a3135f2639b1a.tar.gz lua-8047b2d03eaaeee44871a11f8d3a3135f2639b1a.tar.bz2 lua-8047b2d03eaaeee44871a11f8d3a3135f2639b1a.zip |
Tables have a 'lastfree' information only when needed
Only tables with some minimum number of entries in their hash part
have a 'lastfree' field, kept in a header before the node vector.
Diffstat (limited to 'ltable.h')
-rw-r--r-- | ltable.h | 14 |
1 files changed, 12 insertions, 2 deletions
@@ -23,8 +23,18 @@ | |||
23 | #define invalidateTMcache(t) ((t)->flags &= ~maskflags) | 23 | #define invalidateTMcache(t) ((t)->flags &= ~maskflags) |
24 | 24 | ||
25 | 25 | ||
26 | /* true when 't' is using 'dummynode' as its hash part */ | 26 | /* |
27 | #define isdummy(t) ((t)->lastfree == NULL) | 27 | ** Bit BITDUMMY set in 'flags' means the table is using the dummy node |
28 | ** for its hash part. | ||
29 | */ | ||
30 | |||
31 | #define BITDUMMY (1 << 6) | ||
32 | #define NOTBITDUMMY cast_byte(~BITDUMMY) | ||
33 | #define isdummy(t) ((t)->flags & BITDUMMY) | ||
34 | |||
35 | #define setnodummy(t) ((t)->flags &= NOTBITDUMMY) | ||
36 | #define setdummy(t) ((t)->flags |= BITDUMMY) | ||
37 | |||
28 | 38 | ||
29 | 39 | ||
30 | /* allocated size for hash nodes */ | 40 | /* allocated size for hash nodes */ |