static void twitter_conv_icon_free(TwitterConvIcon * conv_icon)
{
    if (!conv_icon)
        return;
    purple_debug_info(PLUGIN_ID, "Freeing icon for %s\n", conv_icon->username);
    if (conv_icon->requested) {
        if (conv_icon->fetch_data) {
            purple_util_fetch_url_cancel(conv_icon->fetch_data);
        }
        conv_icon->fetch_data = NULL;
        conv_icon->requested = FALSE;
    }
    if (conv_icon->request_list)
        remove_marks_func(conv_icon, NULL);
    conv_icon->request_list = NULL;

    if (conv_icon->pixbuf) {
        g_object_unref(G_OBJECT(conv_icon->pixbuf));
    }
    conv_icon->pixbuf = NULL;

    if (conv_icon->icon_url)
        g_free(conv_icon->icon_url);
    conv_icon->icon_url = NULL;

    g_free(conv_icon->username);
    conv_icon->username = NULL;

    g_free(conv_icon);
}
Exemple #2
0
static void
cleanup_hash_entry_func(gpointer key, gpointer value, gpointer user_data)
{
    remove_marks_func(key, value, user_data);
    cancel_fetch_func(key, value, user_data);
}