summaryrefslogtreecommitdiff
path: root/libempathy-gtk
diff options
context:
space:
mode:
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2010-11-24 16:34:13 +0100
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2010-11-24 17:06:03 +0100
commit0e3268df1dbe7ea6698cf6eed8982537274e726f (patch)
tree073435ee13dceead9d7848cd5d58b37630763741 /libempathy-gtk
parentcfbd6ef2464d68d9d482a9a24c792de657ded74a (diff)
downloadempathy-0e3268df1dbe7ea6698cf6eed8982537274e726f.tar.gz
properly manage the reference of the pixbuf returned by empathy_pixbuf_avatar_from_individual_scaled_finish
Diffstat (limited to 'libempathy-gtk')
-rw-r--r--libempathy-gtk/empathy-individual-store.c1
-rw-r--r--libempathy-gtk/empathy-ui-utils.c7
2 files changed, 6 insertions, 2 deletions
diff --git a/libempathy-gtk/empathy-individual-store.c b/libempathy-gtk/empathy-individual-store.c
index 4d194c0e0..5cbba420d 100644
--- a/libempathy-gtk/empathy-individual-store.c
+++ b/libempathy-gtk/empathy-individual-store.c
@@ -635,6 +635,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 4014f92b5..23cc35973 100644
--- a/libempathy-gtk/empathy-ui-utils.c
+++ b/libempathy-gtk/empathy-ui-utils.c
@@ -603,7 +603,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);
@@ -653,6 +653,7 @@ out:
g_object_unref (result);
}
+/* Return a ref on the GdkPixbuf */
GdkPixbuf *
empathy_pixbuf_avatar_from_individual_scaled_finish (
FolksIndividual *individual,
@@ -661,6 +662,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);
@@ -673,7 +675,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 *