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);