# HG changeset patch # User Mikael Berthe # Date 1179396018 -7200 # Node ID 0e9e9724d643cb7b90c5d9767a1cf030ff6b4245 # Parent fb0460a3cf4b887e94cbe4d083ca5d33e7811ef0 Fix a bad type cast in buffer_purge() diff -r fb0460a3cf4b -r 0e9e9724d643 mcabber/src/screen.c --- 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);