lua-users home
lua-l archive

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


Lightuserdata is a simple way to get a sentinel value with minimal overhead. If you want behavior  and/or GC along with that, there are userdata.

-Andrew

On Fri, Mar 24, 2017 at 09:46 Thomas Jericke <tjericke@indel.ch> wrote:
On 24.03.2017 15:34, Coda Highland wrote:
> On Thu, Mar 23, 2017 at 9:54 PM, Tim Hill <drtimhill@gmail.com> wrote:
>>> On Mar 23, 2017, at 8:26 AM, 彭 书呆 <nerditation@outlook.com> wrote:
>>>
>>>
>>> ... so I have to use full userdata, then store the pointer itself into the full userdata.
>>>
>> Isn’t that really the point here? For some reason you don’t want to create a full userdata to wrap a void* to some externally managed C struct? Why not?
>>
> The "why not" was already explained: that means that you can have two
> Lua objects pointing to the same C object, but the Lua objects compare
> as unequal.
>
> /s/ Adam
>
You can, but you don't have to. To avoid creating two Lua objects
pointing to the same C objects is also possible with userdata, you just
need some care.
--
Thomas