[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Size of a non numerical indexed table
- From: Mike Pall <mikelu-0509@...>
- Date: Thu, 1 Sep 2005 14:57:45 +0200
Hi,
Lisa Parratt wrote:
> Vague bells are telling me that it's related to passing varargs where
> one the the arguments is nil - it might require the old varargs support
> to be enabled - I'll have a better look later.
The semantics of the Lua 5.1 table 'size' aka table.getn(t)
aka lua_objsize() aka #t aka luaH_getn(L, t) are undefined
if there are intervening nils. Only 'compact' tables are
supported.
I.e. #{...} (5.1 style) may be less than table.getn(arg)
(5.0 style).
table.getn(t) no longer looks at t.n or REGISTRY.LUA_SIZES.
In fact the latter is completely gone unless you define
LUA_COMPAT_GETN. Defining this is not recommended due to the
resulting inconsistency between #t and table.getn(t) and other
problems with the old sizes table (it doesn't ever shrink).
BTW: The 5.1 way of handling table sizes is a lot faster
and saves space, too.
Bye,
Mike