Roberto Ierusalimschy
e2b15aa21d
janitor work on casts
7 years ago
Roberto Ierusalimschy
68af7cc81a
another try with table resize.
(Old version was leaving some elements unanchored while allocating
new memory)
7 years ago
Roberto Ierusalimschy
e663a24ab0
more freedom in handling memory-allocation errors (not all allocations
automatically raise an error), which allows fixing a bug when resizing
a table.
7 years ago
Roberto Ierusalimschy
7622373033
using explicit tests for allocation overflow whenever possible
7 years ago
Roberto Ierusalimschy
599f1742c6
detail (typo in comments)
7 years ago
Roberto Ierusalimschy
26679ea35b
new function 'luaV_flttointeger' to convert floats to integers (without
string coercions) + string operands to bitwise operations handled
by string metamethods
7 years ago
Roberto Ierusalimschy
f96497397a
new type 'StackValue' for stack elements
(we may want to put extra info there in the future)
7 years ago
Roberto Ierusalimschy
73ec04fcf3
no more 'DEADKEY'. Table traversals do not need to consider dead keys;
if the key is dead, it cannot be given to 'next'. Instead, we now
use a 'table' tag without the collectable bit, which makes it
a unique tag good enough to reserve space.
8 years ago
Roberto Ierusalimschy
b6f87491af
in hash nodes, keys are stored in separate pieces to avoid wasting
space with alignments
8 years ago
Roberto Ierusalimschy
e3d52da144
BUG: in 'computesizes', 'twotoi' overflows when a sequence has
more than 2^30 elements.
8 years ago
Roberto Ierusalimschy
84910e04e2
better implementation for 'hash_search', without using 'size_t'
(simpler to implement and to explain)
8 years ago
Roberto Ierusalimschy
3d879fbc5d
reimplementation of 'luaH_getn', trying to handle numeric limits
properly.
8 years ago
Roberto Ierusalimschy
b1b7790f7c
detail ('1' -> '1u' in unsigned operation)
8 years ago
Roberto Ierusalimschy
7b1fba69b7
using 'lastfree == NULL' to signal that table is using the dummy
node for its hash part + new macro 'allocsizenode'
8 years ago
Roberto Ierusalimschy
d103312661
details (typos in comments)
9 years ago
Roberto Ierusalimschy
5100bc8aa1
no need for a special case to get long strings (not that common)
9 years ago
Roberto Ierusalimschy
7485512384
added comment and assert about dead keys
9 years ago
Roberto Ierusalimschy
46de77b219
bug: despite its name, 'luaH_getstr' did not work for strings in
general, but only for short strings
9 years ago
Roberto Ierusalimschy
8950e0c049
avoid possibility of subtle arith. overflow
9 years ago
Roberto Ierusalimschy
2de3361c6c
detail
9 years ago
Roberto Ierusalimschy
cbef15f3ea
comment (FALLTHROUGH position)
10 years ago
Roberto Ierusalimschy
a71c0ab861
detail (removed useless '#include')
10 years ago
Roberto Ierusalimschy
65ac789565
detail (comment)
10 years ago
Roberto Ierusalimschy
63720a4290
janitor work (comments, variable names, some other details)
10 years ago
Roberto Ierusalimschy
3a91274547
details (avoid 'lint' warnings)
10 years ago
Roberto Ierusalimschy
a00013c8d0
'point2int' -> 'point2uint' (to reflect its actual result type)
10 years ago
Roberto Ierusalimschy
81245b1ad5
'numisinteger' (for table keys) replaced by 'luaV_tointeger' (old
'tointeger_aux'), which can do the same job.
10 years ago
Roberto Ierusalimschy
397ce11996
make 'hashfloat' configurable
10 years ago
Roberto Ierusalimschy
419e2cb01d
detail (file does not need 'string.h')
10 years ago
Roberto Ierusalimschy
e0306e386f
some changes in 'hashfloat' to avoid undefined (in ISO C) numerical
conversions
10 years ago
Roberto Ierusalimschy
7e2015a46d
size of short strings stored in a single byte, to reduce the size
of struct 'TString'
10 years ago
Roberto Ierusalimschy
3c55790ebe
'setkey' -> 'setnodekey' (to avoid conflicts with POSIX)
10 years ago
Roberto Ierusalimschy
28fdbcf393
added include for 'lprefix.h', for stuff that must be added before
any other header file
10 years ago
Roberto Ierusalimschy
bdf566a8a3
`name' in comments changed to 'name'
10 years ago
Roberto Ierusalimschy
463edee2fd
'lua_numtointeger' -> 'lua_numbertointeger'
10 years ago
Roberto Ierusalimschy
f97c64d7bf
macros 'LUA_QL'/'LUA_QL' deprecated
10 years ago
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
10 years ago
Roberto Ierusalimschy
f5c690b684
details in comments
10 years ago
Roberto Ierusalimschy
07c7fdb9df
simpler definition for 'setobj' (trust the compiler for the assignment)
10 years ago
Roberto Ierusalimschy
ca41b43f53
type 'TString' refers directly to the structure inside the union
(union used only for size purposes)
10 years ago
Roberto Ierusalimschy
c94f11d783
'IntPoint' -> 'point2int' + ensure that casted value fits in
destination type
11 years ago
Roberto Ierusalimschy
14929f5764
use appropriate macros to convert GCObject to specific types
11 years ago
Roberto Ierusalimschy
c98f195eb9
function 'luaV_numtointeger' changed to a global macro
'lua_numtointeger' (tricky, small, and useful in several places)
11 years ago
Roberto Ierusalimschy
037a70dfea
cast_u2s/cast_s2u renamed l_castS2U/l_castU2S to be configurable from
outside (mostly for testing)
11 years ago
Roberto Ierusalimschy
8f961da3db
macros cast_integer/cast_unsigned replaced by cast_u2s/cast_s2u, that
should be used only between lua_Integer and lua_Unsigned
11 years ago
Roberto Ierusalimschy
675530c4d8
maximum size of array part of a table now is restricted not only by
the size of an 'int', but also by the size of a 'lua_Integer'
11 years ago
Roberto Ierusalimschy
607be77ec8
some details to avoid warnings
11 years ago
Roberto Ierusalimschy
86dd8bf3f5
no more 'L' in macros "luai_num*" (several places that use those macros
cannot throw errors anyway...)
11 years ago
Roberto Ierusalimschy
1150873447
'luaC_newobj' does not handle special cases; only special case
now is threads, which do not use 'luaC_newobj' anymore.
11 years ago
Roberto Ierusalimschy
26629d0af1
details (a few casts moved from macro invocation to macro definition)
11 years ago