make these safe against removal of the current element.
authorTim Janik <timj@gtk.org>
Fri, 11 May 2001 18:05:16 +0000 (18:05 +0000)
committerTim Janik <timj@src.gnome.org>
Fri, 11 May 2001 18:05:16 +0000 (18:05 +0000)
Fri May 11 18:25:23 2001  Tim Janik  <timj@gtk.org>

        * gdataset.c:
        (g_dataset_foreach):
        (g_datalist_foreach): make these safe against removal of the
        current element.

ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-12
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gdataset.c
glib/gdataset.c

index 18eeaf6..0db0474 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Fri May 11 18:25:23 2001  Tim Janik  <timj@gtk.org>
+
+       * gdataset.c:
+       (g_dataset_foreach):
+       (g_datalist_foreach): make these safe against removal of the
+       current element.
+
 2001-05-10  Havoc Pennington  <hp@pobox.com>
 
        * gmessages.c (g_log_write_prefix): change env variable to
index 18eeaf6..0db0474 100644 (file)
@@ -1,3 +1,10 @@
+Fri May 11 18:25:23 2001  Tim Janik  <timj@gtk.org>
+
+       * gdataset.c:
+       (g_dataset_foreach):
+       (g_datalist_foreach): make these safe against removal of the
+       current element.
+
 2001-05-10  Havoc Pennington  <hp@pobox.com>
 
        * gmessages.c (g_log_write_prefix): change env variable to
index 18eeaf6..0db0474 100644 (file)
@@ -1,3 +1,10 @@
+Fri May 11 18:25:23 2001  Tim Janik  <timj@gtk.org>
+
+       * gdataset.c:
+       (g_dataset_foreach):
+       (g_datalist_foreach): make these safe against removal of the
+       current element.
+
 2001-05-10  Havoc Pennington  <hp@pobox.com>
 
        * gmessages.c (g_log_write_prefix): change env variable to
index 18eeaf6..0db0474 100644 (file)
@@ -1,3 +1,10 @@
+Fri May 11 18:25:23 2001  Tim Janik  <timj@gtk.org>
+
+       * gdataset.c:
+       (g_dataset_foreach):
+       (g_datalist_foreach): make these safe against removal of the
+       current element.
+
 2001-05-10  Havoc Pennington  <hp@pobox.com>
 
        * gmessages.c (g_log_write_prefix): change env variable to
index 18eeaf6..0db0474 100644 (file)
@@ -1,3 +1,10 @@
+Fri May 11 18:25:23 2001  Tim Janik  <timj@gtk.org>
+
+       * gdataset.c:
+       (g_dataset_foreach):
+       (g_datalist_foreach): make these safe against removal of the
+       current element.
+
 2001-05-10  Havoc Pennington  <hp@pobox.com>
 
        * gmessages.c (g_log_write_prefix): change env variable to
index 18eeaf6..0db0474 100644 (file)
@@ -1,3 +1,10 @@
+Fri May 11 18:25:23 2001  Tim Janik  <timj@gtk.org>
+
+       * gdataset.c:
+       (g_dataset_foreach):
+       (g_datalist_foreach): make these safe against removal of the
+       current element.
+
 2001-05-10  Havoc Pennington  <hp@pobox.com>
 
        * gmessages.c (g_log_write_prefix): change env variable to
index 18eeaf6..0db0474 100644 (file)
@@ -1,3 +1,10 @@
+Fri May 11 18:25:23 2001  Tim Janik  <timj@gtk.org>
+
+       * gdataset.c:
+       (g_dataset_foreach):
+       (g_datalist_foreach): make these safe against removal of the
+       current element.
+
 2001-05-10  Havoc Pennington  <hp@pobox.com>
 
        * gmessages.c (g_log_write_prefix): change env variable to
index 18eeaf6..0db0474 100644 (file)
@@ -1,3 +1,10 @@
+Fri May 11 18:25:23 2001  Tim Janik  <timj@gtk.org>
+
+       * gdataset.c:
+       (g_dataset_foreach):
+       (g_datalist_foreach): make these safe against removal of the
+       current element.
+
 2001-05-10  Havoc Pennington  <hp@pobox.com>
 
        * gmessages.c (g_log_write_prefix): change env variable to
index 136141e..7d8d9af 100644 (file)
@@ -481,10 +481,13 @@ g_dataset_foreach (gconstpointer    dataset_location,
       G_UNLOCK (g_dataset_global);
       if (dataset)
        {
-         register GData *list;
+         register GData *list, *next;
          
-         for (list = dataset->datalist; list; list = list->next)
+         for (list = dataset->datalist; list; list = next)
+           {
+             next = list->next;
              func (list->id, list->data, user_data);
+           }
        }
     }
   else
@@ -498,13 +501,16 @@ g_datalist_foreach (GData    **datalist,
                    GDataForeachFunc func,
                    gpointer         user_data)
 {
-  register GData *list;
+  register GData *list, *next;
 
   g_return_if_fail (datalist != NULL);
   g_return_if_fail (func != NULL);
   
-  for (list = *datalist; list; list = list->next)
-    func (list->id, list->data, user_data);
+  for (list = *datalist; list; list = next)
+    {
+      next = list->next;
+      func (list->id, list->data, user_data);
+    }
 }
 
 void
index 136141e..7d8d9af 100644 (file)
@@ -481,10 +481,13 @@ g_dataset_foreach (gconstpointer    dataset_location,
       G_UNLOCK (g_dataset_global);
       if (dataset)
        {
-         register GData *list;
+         register GData *list, *next;
          
-         for (list = dataset->datalist; list; list = list->next)
+         for (list = dataset->datalist; list; list = next)
+           {
+             next = list->next;
              func (list->id, list->data, user_data);
+           }
        }
     }
   else
@@ -498,13 +501,16 @@ g_datalist_foreach (GData    **datalist,
                    GDataForeachFunc func,
                    gpointer         user_data)
 {
-  register GData *list;
+  register GData *list, *next;
 
   g_return_if_fail (datalist != NULL);
   g_return_if_fail (func != NULL);
   
-  for (list = *datalist; list; list = list->next)
-    func (list->id, list->data, user_data);
+  for (list = *datalist; list; list = next)
+    {
+      next = list->next;
+      func (list->id, list->data, user_data);
+    }
 }
 
 void