GIRepository questions



Hi,

Inspired by Richard Dales blog about "Creating QMetaObjects from GObject Introspection data" i started working on a code-generator which automatically generates Qt/C++ bindings using GIRepository. The basic idea is that bindings are generated "on demand" and compiled together with the code which uses them.

Now i got some problems/questions regarding GIRepository:


1) gpointer* arguments:

shouldn't they be reported as void Ptr with direction OUT or INOUT?

(at the moment GIRepository just tells me they are "void Ptr's", which is wrong i guess)

examples:

g_object_add_weak_pointer()
g_object_remove_weak_pointer()
g_file_info_get_attribute_data()


2) How do i get the original C type of STRUCTS?

I need this information for casting them appropriately when calling the C-functions (cause i'm not using ffi)

Sometimes it works with g_object_info_get_type_name(), but not always - it seems...


3) How do i get the original C type of ENUMS?

Same as above.


4) How can i find out whether a function returns a char* or a char**?

for instance g_filename_completer_get_completions() returns a char** array of strings, but GIRepository tells me its an UTF8 pointer.

But perhaps that's just a matter of missing annotations. I could send you a complete list of such problems, because i have to "blacklist" those C-function calls to make my bindings compile...


Cheers,
Norbert








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