[empathy] properly manage the reference of the pixbuf returned by empathy_pixbuf_avatar_from_individual_scaled
- From: Guillaume Desmottes <gdesmott src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [empathy] properly manage the reference of the pixbuf returned by empathy_pixbuf_avatar_from_individual_scaled
- Date: Wed, 24 Nov 2010 16:06:39 +0000 (UTC)
commit 4b33293b29499f574955946aea70dae420e7accc
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date: Wed Nov 24 16:34:13 2010 +0100
properly manage the reference of the pixbuf returned by empathy_pixbuf_avatar_from_individual_scaled_finish
libempathy-gtk/empathy-individual-store.c | 1 +
libempathy-gtk/empathy-ui-utils.c | 7 +++++--
2 files changed, 6 insertions(+), 2 deletions(-)
---
diff --git a/libempathy-gtk/empathy-individual-store.c b/libempathy-gtk/empathy-individual-store.c
index 750a6f9..4b07131 100644
--- a/libempathy-gtk/empathy-individual-store.c
+++ b/libempathy-gtk/empathy-individual-store.c
@@ -666,6 +666,7 @@ individual_avatar_pixbuf_received_cb (FolksIndividual *individual,
data->cancellable);
}
+ tp_clear_object (&pixbuf);
g_object_unref (data->cancellable);
g_slice_free (LoadAvatarData, data);
}
diff --git a/libempathy-gtk/empathy-ui-utils.c b/libempathy-gtk/empathy-ui-utils.c
index f33b6eb..5761308 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 *
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]