Mercurial > hg
changeset 1225:0e9e9724d643
Fix a bad type cast in buffer_purge()
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Thu, 17 May 2007 12:00:18 +0200 |
parents | fb0460a3cf4b |
children | 2521efbf3b72 |
files | mcabber/src/screen.c |
diffstat | 1 files changed, 13 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/mcabber/src/screen.c Thu May 17 11:40:27 2007 +0200 +++ b/mcabber/src/screen.c Thu May 17 12:00:18 2007 +0200 @@ -1884,13 +1884,13 @@ // NOTE: does not work for special buffers. static void buffer_purge(gpointer key, gpointer value, gpointer data) { - int closebuf = (gint)data; // XXX GPOINTER_TO_INT? + int *p_closebuf = data; winbuf *win_entry = value; // Delete the current hbuf hbuf_free(&win_entry->bd->hbuf); - if (closebuf) { + if (*p_closebuf) { g_hash_table_remove(winbufhash, key); } else { win_entry->bd->cleared = FALSE; @@ -1905,6 +1905,7 @@ { winbuf *win_entry; guint isspe; + guint *p_closebuf; // Get win_entry if (!current_buddy) return; @@ -1913,8 +1914,10 @@ if (!win_entry) return; if (!isspe) { - buffer_purge((gpointer)CURRENT_JID, win_entry, (gpointer)closebuf); - // XXX GINT_TO_POINTER? + p_closebuf = g_new(guint, 1); + *p_closebuf = closebuf; + buffer_purge((gpointer)CURRENT_JID, win_entry, p_closebuf); + g_free(p_closebuf); if (closebuf) { scr_set_chatmode(FALSE); currentWindow = NULL; @@ -1939,8 +1942,12 @@ void scr_BufferPurgeAll(int closebuf) { - g_hash_table_foreach(winbufhash, buffer_purge, (gpointer)closebuf); - // XXX GINT_TO_POINTER? + guint *p_closebuf; + p_closebuf = g_new(guint, 1); + + *p_closebuf = closebuf; + g_hash_table_foreach(winbufhash, buffer_purge, p_closebuf); + g_free(p_closebuf); if (closebuf) { scr_set_chatmode(FALSE);