Roberto Ierusalimschy
8047b2d03e
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.
2022-11-01 15:42:08 -03:00
Roberto Ierusalimschy
b85816b9a8
Removed test function 'luaH_isdummy'
...
It was not being used anywhere.
2022-10-21 09:18:13 -03:00
Roberto Ierusalimschy
23051e830a
Changes in the API of 'luaH_set' and related functions
...
Functions to set values in a table (luaH_set, luaH_newkey, etc.) receive
the new value, instead of returning a slot where to put the value.
2020-12-04 11:08:42 -03:00
Roberto Ierusalimschy
7c3cb71fa4
Free bit 7 of GC 'marked' field
...
Tables were using this bit to indicate their array sizes were real
('isrealasize'), but this bit can be useful for tests. Instead, they
can use bit 7 of their 'flag' field for that purpose. (There are only
six fast-access metamethods.) This 'flag' field only exists in tables,
so this use does not affect other types.
2020-08-07 11:21:44 -03:00
Roberto Ierusalimschy
0ddc0f47bd
Several details about 5.4.0 rc1
...
Corrected several small details: added 'const', adjusts in tabs x
spaces, removed unused #includes and #defines, misspellings, etc.
2020-04-23 14:48:15 -03:00
Roberto Ierusalimschy
f99509581e
Removed extra information from RCS keyword strings
...
Version numbers and dates (mostly wrong) from RCS keyword strings
removed from all source files; only the file name are kept.
2018-08-23 14:26:12 -03:00
Roberto Ierusalimschy
6e600695f8
field 'sizearray' in struct 'Table' changed to 'alimit', which can
...
be used as a hint for '#t'
2018-06-15 11:14:20 -03:00
Roberto Ierusalimschy
fb8fa66136
no more 'luaH_emptyobject' and comparisons of addresses of global variables
...
(instead, use a different kind of nil to signal the fake entry returned
when a key is not found in a table)
2018-06-01 13:51:34 -03:00
Roberto Ierusalimschy
9243c414d9
first version of empty entries in tables
...
(so that, in the future, tables can contain regular nil entries)
2018-02-23 10:16:18 -03:00
Roberto Ierusalimschy
b6f87491af
in hash nodes, keys are stored in separate pieces to avoid wasting
...
space with alignments
2017-06-09 13:48:44 -03:00
Roberto Ierusalimschy
e39ee2cc58
'luaH_getn' must return 'lua_Unsigned' (or 'lua_Integer'), to
...
allow the boundary-search algorithm to use 'maxinteger' when
it cannot find a good upper bound.
2017-05-19 09:48:15 -03:00
Roberto Ierusalimschy
2a235312f0
detail (removing spaces at end of lines)
2016-12-22 11:08:50 -02:00
Roberto Ierusalimschy
7b1fba69b7
using 'lastfree == NULL' to signal that table is using the dummy
...
node for its hash part + new macro 'allocsizenode'
2016-11-07 10:38:35 -02:00
Roberto Ierusalimschy
46de77b219
bug: despite its name, 'luaH_getstr' did not work for strings in
...
general, but only for short strings
2015-11-03 13:47:30 -02:00
Roberto Ierusalimschy
3a15c7ce43
size for array part of a table ('sizearray') changed from 'int' to
...
'unsigned int', which allows twice as many elements in the array part
2014-09-04 15:15:29 -03:00
Roberto Ierusalimschy
07c7fdb9df
simpler definition for 'setobj' (trust the compiler for the assignment)
2014-07-29 13:22:24 -03:00
Roberto Ierusalimschy
8ef9e8460e
bug (GC can collect long identifier during parser) + change (using
...
a single constant table for all functions in a chunk)
2013-08-30 13:01:37 -03:00
Roberto Ierusalimschy
d4e6b75098
"integer" keys in tables are now lua_Integer, not 'int'.
2013-04-26 12:39:25 -03:00
Roberto Ierusalimschy
89b59eee73
bug: __newindex metamethod may not work if metatable is its own
...
metatable + luaV_settable does not create entry when there is a
metamethod (and therefore entry is useless)
2011-08-17 17:26:47 -03:00
Roberto Ierusalimschy
92afcf2823
no more 'luaH_setstr (used only once) + 'luaH_setint' receives value
...
to be set.
2011-08-09 17:58:29 -03:00
Roberto Ierusalimschy
d9ea6eca7c
macro 'key2tal' replaced by 'gkey' (as both were equal)
2010-06-25 09:18:10 -03:00
Roberto Ierusalimschy
fbf866a1a5
macro 'gkey' returns a "real" TValue*
2009-11-06 15:07:48 -02:00
Roberto Ierusalimschy
3135a6bbab
luaH_[gs]etnum renamed to luaH_[gs]etint (as they only accept integers,
...
not generic numbers)
2009-08-07 13:17:41 -03:00
Roberto Ierusalimschy
3ca9af51a4
emergency garbage collector (core forces a GC when allocation fails)
2006-07-11 12:53:29 -03:00
Roberto Ierusalimschy
f8b7a5581e
avoid unnecessary exports
2006-01-10 11:13:06 -02:00
Roberto Ierusalimschy
ffb798e1e2
avoids type punning for table keys
2006-01-10 10:51:53 -02:00
Roberto Ierusalimschy
d987cf1f81
new mark LUAI_DATA for extern data
2005-06-06 10:30:25 -03:00
Roberto Ierusalimschy
8718fda9b2
added LUAI_FUNC to functions not in the API
2005-04-25 16:24:10 -03:00
Roberto Ierusalimschy
9ffae705ee
new "primitive" getn
2005-03-16 13:58:41 -03:00
Roberto Ierusalimschy
e2498e079e
change in hash algorithm so that it does not need empty slot
...
(tables can be 100% full)
2005-01-05 16:20:51 -02:00
Roberto Ierusalimschy
65726f3e2e
cleaner interface to `ltable'
2005-01-04 13:55:12 -02:00
Roberto Ierusalimschy
bd38017ddf
small optimization for table size in machines with double allignment
2004-10-06 15:34:16 -03:00
Roberto Ierusalimschy
4c5d7b2ddd
small optimization for {f()}
2004-03-26 11:02:41 -03:00
Roberto Ierusalimschy
47fc57a252
TObject' renamed to
TValue' + other name changes and better assertions
...
for incremental garbage collection
2003-12-10 10:13:36 -02:00
Roberto Ierusalimschy
b114142799
new auxiliary function `luaH_setstr'
2003-08-26 09:04:13 -03:00
Roberto Ierusalimschy
ab9e062928
name changes to avoid name collision between macros and variables
2003-03-18 09:50:04 -03:00
Roberto Ierusalimschy
81e142fc14
detail (`key' is always on stack)
2002-11-07 14:03:33 -02:00
Roberto Ierusalimschy
46c471d7e9
new `__newindex' eventfield
2002-05-27 17:35:40 -03:00
Roberto Ierusalimschy
71c716e5a8
avoid C identifiers beginning with '_'
2002-03-11 09:45:00 -03:00
Roberto Ierusalimschy
57fb51f975
luaH_next' works like
next'
2002-02-14 19:46:13 -02:00
Roberto Ierusalimschy
592a309177
tag system replaced by event tables
2001-12-05 18:15:18 -02:00
Roberto Ierusalimschy
fca0a12e23
avoid clashing names between macros and fields
2001-11-29 18:21:46 -02:00
Roberto Ierusalimschy
21aa7e55f2
optimization for array part of a Table
2001-10-25 17:14:14 -02:00
Roberto Ierusalimschy
e1d072571e
better syntax for type casts
2001-08-31 16:46:07 -03:00
Roberto Ierusalimschy
8c8ad5f3ff
better locality of assignment of table values
2001-08-30 17:56:43 -03:00
Roberto Ierusalimschy
654b16e83a
better performance for table operations (mainly for integer indices)
2001-07-05 17:31:14 -03:00
Roberto Ierusalimschy
37f3a1c045
too much optimization to "break" keys in tables; keep them as TObjects...
2001-06-26 10:20:45 -03:00
Roberto Ierusalimschy
1f9e3731d1
back to the basics (well-behaved variant record...)
2001-02-02 14:32:00 -02:00
Roberto Ierusalimschy
6b71a9cfe5
smaller tables for machines with 8-bit alignment
2001-01-29 15:17:26 -02:00
Roberto Ierusalimschy
caf01b5bfa
better implementation for list "for"
2001-01-29 11:14:49 -02:00