From 4b33293b29499f574955946aea70dae420e7accc Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Wed, 24 Nov 2010 16:34:13 +0100 Subject: properly manage the reference of the pixbuf returned by empathy_pixbuf_avatar_from_individual_scaled_finish --- libempathy-gtk/empathy-ui-utils.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'libempathy-gtk/empathy-ui-utils.c') diff --git a/libempathy-gtk/empathy-ui-utils.c b/libempathy-gtk/empathy-ui-utils.c index f33b6ebc0..5761308fa 100644 --- a/libempathy-gtk/empathy-ui-utils.c +++ b/libempathy-gtk/empathy-ui-utils.c @@ -604,7 +604,7 @@ avatar_file_load_contents_cb (GObject *object, } g_simple_async_result_set_op_res_gpointer (closure->result, - avatar_pixbuf_from_loader (loader), NULL); + avatar_pixbuf_from_loader (loader), g_object_unref); out: g_simple_async_result_complete (closure->result); @@ -654,6 +654,7 @@ out: g_object_unref (result); } +/* Return a ref on the GdkPixbuf */ GdkPixbuf * empathy_pixbuf_avatar_from_individual_scaled_finish ( FolksIndividual *individual, @@ -662,6 +663,7 @@ empathy_pixbuf_avatar_from_individual_scaled_finish ( { GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result); gboolean result_valid; + GdkPixbuf *pixbuf; g_return_val_if_fail (FOLKS_IS_INDIVIDUAL (individual), NULL); g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (simple), NULL); @@ -674,7 +676,8 @@ empathy_pixbuf_avatar_from_individual_scaled_finish ( empathy_pixbuf_avatar_from_individual_scaled_async); g_return_val_if_fail (result_valid, NULL); - return g_simple_async_result_get_op_res_gpointer (simple); + pixbuf = g_simple_async_result_get_op_res_gpointer (simple); + return pixbuf != NULL ? g_object_ref (pixbuf) : NULL; } GdkPixbuf * -- cgit v1.2.3