+Thu May 3 06:38:28 2001 Owen Taylor <otaylor@redhat.com>
+
+ * g[s]list.c (g_[s]list_foreach) docs/Changes-2.0.txt: Make
+ foreach() safe against removal of the _current_ element. While
+ this could break some code, the new behavior is consistent with
+ the rest of GLib/GTK+ and probably is what people expect in most
+ cases. (Suggested by Paul Kuykendall, #50071)
+
Wed May 2 11:10:22 2001 Owen Taylor <otaylor@redhat.com>
* gutf8.c (g_utf8_to_ucs4_fast): Fix read past end of the string.
+Thu May 3 06:38:28 2001 Owen Taylor <otaylor@redhat.com>
+
+ * g[s]list.c (g_[s]list_foreach) docs/Changes-2.0.txt: Make
+ foreach() safe against removal of the _current_ element. While
+ this could break some code, the new behavior is consistent with
+ the rest of GLib/GTK+ and probably is what people expect in most
+ cases. (Suggested by Paul Kuykendall, #50071)
+
Wed May 2 11:10:22 2001 Owen Taylor <otaylor@redhat.com>
* gutf8.c (g_utf8_to_ucs4_fast): Fix read past end of the string.
+Thu May 3 06:38:28 2001 Owen Taylor <otaylor@redhat.com>
+
+ * g[s]list.c (g_[s]list_foreach) docs/Changes-2.0.txt: Make
+ foreach() safe against removal of the _current_ element. While
+ this could break some code, the new behavior is consistent with
+ the rest of GLib/GTK+ and probably is what people expect in most
+ cases. (Suggested by Paul Kuykendall, #50071)
+
Wed May 2 11:10:22 2001 Owen Taylor <otaylor@redhat.com>
* gutf8.c (g_utf8_to_ucs4_fast): Fix read past end of the string.
+Thu May 3 06:38:28 2001 Owen Taylor <otaylor@redhat.com>
+
+ * g[s]list.c (g_[s]list_foreach) docs/Changes-2.0.txt: Make
+ foreach() safe against removal of the _current_ element. While
+ this could break some code, the new behavior is consistent with
+ the rest of GLib/GTK+ and probably is what people expect in most
+ cases. (Suggested by Paul Kuykendall, #50071)
+
Wed May 2 11:10:22 2001 Owen Taylor <otaylor@redhat.com>
* gutf8.c (g_utf8_to_ucs4_fast): Fix read past end of the string.
+Thu May 3 06:38:28 2001 Owen Taylor <otaylor@redhat.com>
+
+ * g[s]list.c (g_[s]list_foreach) docs/Changes-2.0.txt: Make
+ foreach() safe against removal of the _current_ element. While
+ this could break some code, the new behavior is consistent with
+ the rest of GLib/GTK+ and probably is what people expect in most
+ cases. (Suggested by Paul Kuykendall, #50071)
+
Wed May 2 11:10:22 2001 Owen Taylor <otaylor@redhat.com>
* gutf8.c (g_utf8_to_ucs4_fast): Fix read past end of the string.
+Thu May 3 06:38:28 2001 Owen Taylor <otaylor@redhat.com>
+
+ * g[s]list.c (g_[s]list_foreach) docs/Changes-2.0.txt: Make
+ foreach() safe against removal of the _current_ element. While
+ this could break some code, the new behavior is consistent with
+ the rest of GLib/GTK+ and probably is what people expect in most
+ cases. (Suggested by Paul Kuykendall, #50071)
+
Wed May 2 11:10:22 2001 Owen Taylor <otaylor@redhat.com>
* gutf8.c (g_utf8_to_ucs4_fast): Fix read past end of the string.
+Thu May 3 06:38:28 2001 Owen Taylor <otaylor@redhat.com>
+
+ * g[s]list.c (g_[s]list_foreach) docs/Changes-2.0.txt: Make
+ foreach() safe against removal of the _current_ element. While
+ this could break some code, the new behavior is consistent with
+ the rest of GLib/GTK+ and probably is what people expect in most
+ cases. (Suggested by Paul Kuykendall, #50071)
+
Wed May 2 11:10:22 2001 Owen Taylor <otaylor@redhat.com>
* gutf8.c (g_utf8_to_ucs4_fast): Fix read past end of the string.
+Thu May 3 06:38:28 2001 Owen Taylor <otaylor@redhat.com>
+
+ * g[s]list.c (g_[s]list_foreach) docs/Changes-2.0.txt: Make
+ foreach() safe against removal of the _current_ element. While
+ this could break some code, the new behavior is consistent with
+ the rest of GLib/GTK+ and probably is what people expect in most
+ cases. (Suggested by Paul Kuykendall, #50071)
+
Wed May 2 11:10:22 2001 Owen Taylor <otaylor@redhat.com>
* gutf8.c (g_utf8_to_ucs4_fast): Fix read past end of the string.
in to the ->dispatch() vfunc.
To go along with this change, the vtable for GIOChannel has changed and
- add_watch() has been replaced by create_watch().
\ No newline at end of file
+ add_watch() has been replaced by create_watch().
+
+* g_list_foreach() and g_slist_foreach() have been changed so they
+ are now safe against removal of the current item, not the next item.
+
+ It's not recommended to mutate the list in the callback to these
+ functions in any case.
\ No newline at end of file
{
while (list)
{
+ GList *next = list->next;
(*func) (list->data, user_data);
- list = list->next;
+ list = next;
}
}
{
while (list)
{
+ GSList *next = list->next;
(*func) (list->data, user_data);
- list = list->next;
+ list = next;
}
}
{
while (list)
{
+ GList *next = list->next;
(*func) (list->data, user_data);
- list = list->next;
+ list = next;
}
}
{
while (list)
{
+ GSList *next = list->next;
(*func) (list->data, user_data);
- list = list->next;
+ list = next;
}
}