Re: [Vala] help with writting vapi...



On Sun, 2015-11-22 at 16:07 +0800, Matrix wrote:
Hi :

i'm writting hiredis vala's binding..

here is a function like this:

redisContext *redisConnectWithTimeout(const char *ip, int port, const
struct timeval tv);

so, how to tell the valac that the 3rd param is struct value not
struct 
pointer?

Unfortunately, this is done on a per-type basis, and virtually everyone
passes struct timeval as a pointer so that's what the bindings assume.
Before seeing this function, I don't know that I've ever seen it passed
as anything but a pointer.

AFAIK the only way to do this would be to create a local binding for
struct timeval (in the redis vapi) with a [SimpleType] annotation on
it, and have redis use that type instead of the one in glib-2.0.

FWIW it might be possible to add an annotation to allow for passing a
non-SimpleType struct as a value.  I don't spend much time in the
compiler, but I believe a small change to
valaccodemethodcallmodule.vala would do the trick.


-Evan

Attachment: signature.asc
Description: This is a digitally signed message part



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