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 */ |
