Re: [Vala] GLib.List


2011/5/17 Abderrahim KITOUNI <a kitouni gmail com>:
I'm writing a new library in vala, and that library uses our old library which is written in c. Until now 
I was able to write VAPI files for everything in the old library, but now I stumbled on a big problem - 
some functions in the old library returns GLib.List with some dynamicaly allocated structs ("Compact 
class in vala terminology) as data members. Something like this:


But now I'm trying to use the result of "old_lib_make_x_list" in vala and there it all fails.

The VAPI file looks something like this:

Now I have probably two, equaly wrong possibilities. Either let vala manage things (it can't of course..):

Another possibility is to let vala actually manage things ;-)

Did you have any problem with the following? it should be the first
thing you try (and is likely the correct thing):

[CCode (cheader_filename = "oldlib.h")]
public static GLib.List<X> old_lib_make_x_list();

Thanks for your reply, but unfortunately, it really WAS the first thing I did
- but because X is not reference counted, it resulted in errors like this:

oldlib.vapi:61.33-61.36: error: duplicating X instance, use unowned variable or explicitly invoke copy method
        public static GLib.List<X> old_lib_make_x_list();

And I don't really want to copy the "X" structure, because it's rather large
and there are a lot of them..

Maybe I don't see something obvious, I'm still not fully comfortable in vala
and I may have missed something..

But anyway, thanks.

Jan Spurny

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