They were using void* in Vala, which is generally a bad idea. In this case,
it was resulting in unavoidable memory leaks in libfolks (bug #678781).
This changes the functions to be simple generics instead.
BookClientView.objects_added#signal.object type="GLib.List<weak void*>"
BookClientView.objects_removed#signal.object type="GLib.List<weak void*>"
BookClientView.objects_modified#signal.object type="GLib.List<weak void*>"
+Contact.get skip
+Contact.get_const skip
+Contact.set skip
ContactName.family unowned=false
ContactName.given unowned=false
ContactName.additional unowned=false
EXTRA_DIST = \
EBook-1.2.metadata \
+ libebook-1.2-custom.vala \
ECalendar-1.2.metadata \
EDataServer-1.2.metadata \
$(NULL)
$< \
$(NULL)
-libebook-1.2.vapi: $(top_builddir)/addressbook/libebook/EBook-1.2.gir libedataserver-1.2.vapi
+libebook-1.2.vapi: $(top_builddir)/addressbook/libebook/EBook-1.2.gir libedataserver-1.2.vapi libebook-1.2-custom.vala
$(VAPIGEN_V)$(VAPIGEN) \
--vapidir=. \
--girdir=$(top_builddir)/libedataserver \
--library libebook-1.2 \
--metadatadir=$(srcdir) \
$< \
+ libebook-1.2-custom.vala \
$(NULL)
CLEANFILES = \
--- /dev/null
+/* Custom vapi needed because bgo#666797 prevents generics being exposed in the .metadata file. */
+namespace E {
+ [CCode (type_id = "e_contact_get_type ()")]
+ public class Contact : E.VCard {
+ [CCode (simple_generics = true)]
+ public T? @get<T> (E.ContactField field_id);
+ [CCode (simple_generics = true)]
+ public unowned T? get_const<T> (E.ContactField field_id);
+ [CCode (simple_generics = true)]
+ public void @set<T> (E.ContactField field_id, T value);
+ }
+}