[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: LuaJIT FFI cdata introspection
- From: Mike Pall <mikelu-1102@...>
- Date: Fri, 18 Feb 2011 23:49:56 +0100
Michal Kottman wrote:
> I'm trying to add some kind of introspection to LuaJIT FFI, that will
> allow to determine not only the type of a cdata object, but also list
> it's fields.
Wouldn't it be easier to copy the data structure declarations from
lj_ctype.h, export the root of the type tree and then use Lua code
and the FFI to do the introspection?
> However, it fails when I pass an instance/cdata object of such
> type.
It shouldn't fail for a struct, but you're probably looking at a
pointer or a reference to a struct.
> When looking at ct->info, it is CT_PTR. How can I get to the
> structure this pointer refers to? I've tried using ct =
> ctype_child(cts, ct), but it fails later on setstrV() with assertion
> error.
if (ctype_isptr(ct->info)) ct = ctype_rawchild(cts, ct);
> I have a feeling I am abusing things I should not be touching :).
Well, depends on how adventurous you are. :-)
--Mike