lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

Javier Guerra Giraldez wrote:
> but a common
> idiom i've used before is to take a C pointer, make it into a
> lightuserdata and use as a table key.  the suggested workaround is to
> use tonumber(); why not cast into a lightuserdata?

There's no difference in efficiency between a 52 bit number and a
32 or 47 bit lightuserdata, when using them as table keys. The
hash algorithm is the same.

[This advice is valid for LuaJIT, only.]

> in the FFI reference, the lightuserdata->(void *) conversion is
> automatic; but i don't see how to do the converse.

Well, nobody asked for it. :-)

> am i missing some downside of a (void *)->lightuserdata conversion?

Lightuserdata is generally only needed for the classic Lua/C API,
so it would be a bit backwards to suggest its use for new stuff.