--- a/libpurple/protocols/facebook/data.c Sun Jan 24 18:22:10 2016 -0800 +++ b/libpurple/protocols/facebook/data.c Mon Jan 25 13:04:40 2016 -0500 @@ -45,6 +45,7 @@ gchar *url; FbDataImageFunc func; gpointer data; + GDestroyNotify dunc; gboolean active; const guint8 *image; @@ -122,6 +123,10 @@ FbDataImagePrivate *priv = img->priv; FbData *fata = priv->fata; + if ((priv->dunc != NULL) && (priv->data != NULL)) { + priv->dunc(priv->data); + } + g_free(priv->url); g_hash_table_steal(fata->priv->imgs, img); } @@ -428,7 +433,7 @@ FbDataImage * fb_data_image_add(FbData *fata, const gchar *url, FbDataImageFunc func, - gpointer data) + gpointer data, GDestroyNotify dunc) { FbDataImage *img; FbDataImagePrivate *priv; @@ -444,6 +449,7 @@ priv->url = g_strdup(url); priv->func = func; priv->data = data; + priv->dunc = dunc; g_hash_table_insert(fata->priv->imgs, img, img); return img;