# HG changeset patch # User Marcus Lundblad # Date 1268950328 0 # Node ID 6671b5e92c28b64fbf8ec4ad262caf7a939719f3 # Parent 79bb2804a19ebf0df43188cb6b8cb205b38113bc Hide the thumbnail-related stuff from the PurpleXfer struct to PurpleXferPrivData diff -r 79bb2804a19e -r 6671b5e92c28 libpurple/ft.c --- a/libpurple/ft.c Tue Mar 16 23:14:54 2010 +0000 +++ b/libpurple/ft.c Thu Mar 18 22:12:08 2010 +0000 @@ -58,6 +58,10 @@ PURPLE_XFER_READY_PRPL = 0x2, } ready; GByteArray *buffer; + + gpointer thumbnail_data; /**< thumbnail image */ + gsize thumbnail_size; + gchar *thumbnail_mimetype; } PurpleXferPrivData; static int purple_xfer_choose_file(PurpleXfer *xfer); @@ -70,6 +74,12 @@ if (priv->buffer) g_byte_array_free(priv->buffer, TRUE); + if (priv->thumbnail_data) + g_free(priv->thumbnail_data); + + if (priv->thumbnail_mimetype) + g_free(priv->thumbnail_mimetype); + g_free(priv); } @@ -178,8 +188,6 @@ g_free(xfer->local_filename); g_hash_table_remove(xfers_data, xfer); - g_free(xfer->thumbnail_data); - g_free(xfer->thumbnail_mimetype); PURPLE_DBUS_UNREGISTER_POINTER(xfer); xfers = g_list_remove(xfers, xfer); @@ -1622,29 +1630,37 @@ const void * purple_xfer_get_thumbnail_data(const PurpleXfer *xfer) { - return xfer->thumbnail_data; + PurpleXferPrivData *priv = g_hash_table_lookup(xfers_data, xfer); + + return priv->thumbnail_data; } gsize purple_xfer_get_thumbnail_size(const PurpleXfer *xfer) { - return xfer->thumbnail_size; + PurpleXferPrivData *priv = g_hash_table_lookup(xfers_data, xfer); + + return priv->thumbnail_size; } const gchar * purple_xfer_get_thumbnail_mimetype(const PurpleXfer *xfer) { - return xfer->thumbnail_mimetype; + PurpleXferPrivData *priv = g_hash_table_lookup(xfers_data, xfer); + + return priv->thumbnail_mimetype; } void purple_xfer_set_thumbnail(PurpleXfer *xfer, gconstpointer thumbnail, gsize size, const gchar *mimetype) { + PurpleXferPrivData *priv = g_hash_table_lookup(xfers_data, xfer); + if (thumbnail && size > 0) { - xfer->thumbnail_data = g_memdup(thumbnail, size); - xfer->thumbnail_size = size; - xfer->thumbnail_mimetype = g_strdup(mimetype); + priv->thumbnail_data = g_memdup(thumbnail, size); + priv->thumbnail_size = size; + priv->thumbnail_mimetype = g_strdup(mimetype); } } diff -r 79bb2804a19e -r 6671b5e92c28 libpurple/ft.h --- a/libpurple/ft.h Tue Mar 16 23:14:54 2010 +0000 +++ b/libpurple/ft.h Thu Mar 18 22:12:08 2010 +0000 @@ -186,10 +186,6 @@ void *ui_data; /**< UI-specific data. */ void *data; /**< prpl-specific data. */ - - gpointer thumbnail_data; /**< thumbnail image */ - gsize thumbnail_size; - gchar *thumbnail_mimetype; }; #ifdef __cplusplus