X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-pair.c;h=208ce9a6da6036ce2ad7af40d80e67db3350ade4;hp=0f67b847b4bd815d9e5db56310a54ed260c956ef;hb=HEAD;hpb=bc321ae5f719ae474bb91af2a5dc544f64ab7d80 diff --git a/src/modest-pair.c b/src/modest-pair.c index 0f67b84..208ce9a 100644 --- a/src/modest-pair.c +++ b/src/modest-pair.c @@ -28,17 +28,19 @@ */ #include "modest-pair.h" +#include /* For strcmp() */ +#include ModestPair* modest_pair_new (gpointer first, gpointer second, gboolean own) { ModestPair *pair; - pair = g_new (ModestPair, 1); + pair = g_slice_new (ModestPair); - pair->first = first; + pair->first = first; pair->second = second; - pair->own = own; + pair->own = own; return pair; } @@ -54,12 +56,13 @@ modest_pair_free (ModestPair *pair) g_free (pair->first); g_free (pair->second); } - g_free (pair); + + g_slice_free (ModestPair, pair); } -ModestPairList* +void modest_pair_list_free (ModestPairList *pairs) { ModestPairList *cursor = pairs; @@ -68,5 +71,23 @@ modest_pair_list_free (ModestPairList *pairs) cursor = cursor->next; } g_slist_free (pairs); - return NULL; +} + +static gint on_pair_compare_as_string(gconstpointer a, gconstpointer b) +{ + const ModestPair* pair_a = (const ModestPair*)a; + const gchar* target = (const gchar*)b; + + return strcmp ((const gchar*)pair_a->first, target); +} + +ModestPair* modest_pair_list_find_by_first_as_string (ModestPairList *pairs, + const gchar* first) +{ + GSList *matching = g_slist_find_custom (pairs, (gconstpointer)first, + on_pair_compare_as_string); + if (matching) + return (ModestPair*)matching->data; + else + return NULL; }