On Sun, Oct 12, 2014 at 11:38 AM, Abderrahim Kitouni <a.kito...@gmail.com> wrote: > > Hello, > > Le 12 oct. 2014 15:04, "Jeremy Slater" <jas...@gmail.com> a écrit : > > > > I'm having an issue with the way vala generates names for functions like > > callback wrappers and struct array free routines. I am writing a vapi for > > a library that does not typedef structures, so in my vapi I have to set the > > cname to include struct, i.e. cname="struct some_structure". This results > > in the generated free for an array of some_structure being generated as > > "_vala_struct some_structure_array_free". > > You should use lower_case_cname as well. (not sure of the spelling though, > take a look at other vapid)
lower_case_cprefix (I assume is what you meant) appears to only be used for the direct struct methods like destroy and copy. the array_free method for freeing the array of structs, is only constructed directly from the cname. The relevant code, append_struct_array_free, appears to be around valaccodearraymodule.vala:205. > > In addition, the header I am wrapping defines callbacks as function > > definitions, rather than function pointers. So when I define my delegates > > I have to include the * in the cname: cname="callback_function *". This > > results in a wrapper function for a delegate of "test_callback" being > > generated as "_test_callback_callback_function *". > > Sorry, I didn't understand this part. So the 'normal' typedef for passing around functions, is using a function pointer, like: typedef int (*get_integer)(int param); But sometimes headers just declare the function, rather than the pointer: typedef int (get_integer)(int param); This doesn't map into the delegate definition in vala however, so I need to set the cname for the delegate as the pointer to the function definition, i.e. cname="get_integer *". _______________________________________________ vala-list mailing list vala-list@gnome.org https://mail.gnome.org/mailman/listinfo/vala-list