diff options
author | Manish Singh <yosh@src.gnome.org> | 1998-01-29 08:00:28 +0000 |
---|---|---|
committer | Manish Singh <yosh@src.gnome.org> | 1998-01-29 08:00:28 +0000 |
commit | 89a5c21c077b5b8c43107aff44942b65bb6d27f7 (patch) | |
tree | 8233b21878260ac2f6bc28fa9aa06d8910a7624a /glib | |
parent | 4fb20bdbcc488413a770c47238e0e5b2a17b657b (diff) | |
download | gtk+-89a5c21c077b5b8c43107aff44942b65bb6d27f7.tar.gz |
The list sort functions compared things backwards. Fixed.
The list iterator macros now check for NULL args
-Yosh
Diffstat (limited to 'glib')
-rw-r--r-- | glib/ChangeLog | 7 | ||||
-rw-r--r-- | glib/glib.h | 6 | ||||
-rw-r--r-- | glib/glist.c | 4 | ||||
-rw-r--r-- | glib/gslist.c | 4 | ||||
-rw-r--r-- | glib/testglib.c | 8 |
5 files changed, 18 insertions, 11 deletions
diff --git a/glib/ChangeLog b/glib/ChangeLog index 4d8c9927b2..5fb90e439a 100644 --- a/glib/ChangeLog +++ b/glib/ChangeLog @@ -1,3 +1,10 @@ +Wed Jan 28 23:53:27 PST 1998 Manish Singh <yosh@gimp.org> + + * glist.c + * gslist.c + * testglib.c: the sort functions compared backwards. Fixed + * glib.h: list iterator macros now check for NULL pointers + Tue Jan 27 09:46:57 PST 1998 Manish Singh <yosh@gimp.org> * gstring.c: g_string_prepend and g_string_prepend_c had diff --git a/glib/glib.h b/glib/glib.h index e929827799..257d5925ce 100644 --- a/glib/glib.h +++ b/glib/glib.h @@ -419,8 +419,8 @@ void g_list_foreach (GList *list, GFunc func, gpointer user_data); -#define g_list_previous(list) (((GList *)list)->prev) -#define g_list_next(list) (((GList *)list)->next) +#define g_list_previous(list) ((list) ? (((GList *)list)->prev) : NULL) +#define g_list_next(list) ((list) ? (((GList *)list)->next) : NULL) /* Singly linked lists */ @@ -455,7 +455,7 @@ void g_slist_foreach (GSList *list, GFunc func, gpointer user_data); -#define g_slist_next(list) (((GSList *)list)->next) +#define g_slist_next(list) ((list) ? (((GSList *)list)->next) : NULL) /* List Allocators */ diff --git a/glib/glist.c b/glib/glist.c index 9af3c79a6c..a9aebff1f2 100644 --- a/glib/glist.c +++ b/glib/glist.c @@ -381,12 +381,12 @@ g_list_insert_sorted (GList *list, return new_list; } - cmp = (*func) (tmp_list->data, data); + cmp = (*func) (data, tmp_list->data); while ((tmp_list->next) && (cmp > 0)) { tmp_list = tmp_list->next; - cmp = (*func) (tmp_list->data, data); + cmp = (*func) (data, tmp_list->data); } if (cmp == 0) diff --git a/glib/gslist.c b/glib/gslist.c index f1a6fddaed..50e93e0ce7 100644 --- a/glib/gslist.c +++ b/glib/gslist.c @@ -358,13 +358,13 @@ g_slist_insert_sorted (GSList *list, return new_list; } - cmp = (*func) (tmp_list->data, data); + cmp = (*func) (data, tmp_list->data); while ((tmp_list->next) && (cmp > 0)) { prev_list = tmp_list; tmp_list = tmp_list->next; - cmp = (*func) (tmp_list->data, data); + cmp = (*func) (data, tmp_list->data); } if (cmp == 0) diff --git a/glib/testglib.c b/glib/testglib.c index 74231b5ece..4dc782b07a 100644 --- a/glib/testglib.c +++ b/glib/testglib.c @@ -138,7 +138,7 @@ main (int argc, for (i = 0; i < 10; i++) { t = g_list_nth (list, i); - if (*((gint*) t->data) != (9 - i)) + if (*((gint*) t->data) != i) g_error ("Sorted insert failed"); } @@ -156,7 +156,7 @@ main (int argc, for (i = 0; i < 10; i++) { t = g_list_nth (list, i); - if (*((gint*) t->data) != i) + if (*((gint*) t->data) != (9 - i)) g_error ("Sorted insert failed"); } @@ -193,7 +193,7 @@ main (int argc, for (i = 0; i < 10; i++) { st = g_slist_nth (slist, i); - if (*((gint*) st->data) != (9 - i)) + if (*((gint*) st->data) != i) g_error ("Sorted insert failed"); } @@ -211,7 +211,7 @@ main (int argc, for (i = 0; i < 10; i++) { st = g_slist_nth (slist, i); - if (*((gint*) st->data) != i) + if (*((gint*) st->data) != (9 - i)) g_error("Sorted insert failed"); } |