From 4ed442ce09a161a0dc92f26e87d3194a1ab7630a Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Mon, 10 Mar 2014 23:15:54 +0100 Subject: Add lpf_provider_free_trips to make unrefing the whole data structure simple --- libplanfahr/libplanfahr.sym | 2 ++ libplanfahr/lpf-provider.c | 13 +++++++++++++ libplanfahr/lpf-provider.h | 6 +++++- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/libplanfahr/libplanfahr.sym b/libplanfahr/libplanfahr.sym index 7b72b02..2e1a694 100644 --- a/libplanfahr/libplanfahr.sym +++ b/libplanfahr/libplanfahr.sym @@ -11,6 +11,8 @@ LIBPLANFAHR_0.0.0 { lpf_provider_activate; lpf_provider_deactivate; lpf_provider_error_quark; + lpf_provider_free_locs; + lpf_provider_free_trips; lpf_provider_get_locs; lpf_provider_get_name; lpf_provider_get_trips; diff --git a/libplanfahr/lpf-provider.c b/libplanfahr/lpf-provider.c index 6f7802b..567c745 100644 --- a/libplanfahr/lpf-provider.c +++ b/libplanfahr/lpf-provider.c @@ -168,6 +168,19 @@ lpf_provider_default_init (LpfProviderInterface *iface) G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); } +/** + * lpf_provider_free_trips: + * @self: a #LpfProvider + * @trips: (element-type LpfTrips): A linked list of trips + * + * Free the trips list + */ +void +lpf_provider_free_trips(LpfProvider *self, GSList *trips) +{ + g_slist_free_full (trips, g_object_unref); +} + /** * lpf_provider_create: (skip) diff --git a/libplanfahr/lpf-provider.h b/libplanfahr/lpf-provider.h index 81d18c0..bc61903 100644 --- a/libplanfahr/lpf-provider.h +++ b/libplanfahr/lpf-provider.h @@ -89,10 +89,14 @@ const char* lpf_provider_get_name (LpfProvider *self); void lpf_provider_activate (LpfProvider *self, GObject *obj); void lpf_provider_deactivate (LpfProvider *self, GObject *obj); GQuark lpf_provider_error_quark (void); + gint lpf_provider_get_locs (LpfProvider *self, const gchar* match, LpfProviderGotLocsNotify callback, gpointer user_data); -gint lpf_provider_get_trips (LpfProvider *self, LpfLoc *start, LpfLoc *end, GDateTime *date, guint64 flags, LpfProviderGotLocsNotify callback, gpointer user_data); void lpf_provider_free_locs (LpfProvider *self, GSList *locs); +gint lpf_provider_get_trips (LpfProvider *self, LpfLoc *start, LpfLoc *end, GDateTime *date, guint64 flags, LpfProviderGotLocsNotify callback, gpointer user_data); +void lpf_provider_free_trips (LpfProvider *self, GSList *trips); + + G_END_DECLS #endif /* _LPF_PROVIDER */ -- cgit v1.2.3