[glib/glib-2-42] glist: Mention that g_list_length() is bad for checking list emptiness
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib/glib-2-42] glist: Mention that g_list_length() is bad for checking list emptiness
- Date: Thu, 26 Feb 2015 03:49:49 +0000 (UTC)
commit 9337b315771c77cf3977f1a71ecdec650c779e3e
Author: Philip Withnall <philip withnall collabora co uk>
Date: Tue Dec 2 15:00:45 2014 +0000
glist: Mention that g_list_length() is bad for checking list emptiness
Despite linked lists being a fairly fundamental computer science
concept, some developers insist on using:
g_list_length (list) > 0
to determine whether a list is non-empty, rather than using:
list != NULL
Add a comment to the documentation for g_list_length() and
g_slist_length() pointing out the better alternative in the hope that it
will prevent some of this abuse.
https://bugzilla.gnome.org/show_bug.cgi?id=741024
glib/glist.c | 3 ++-
glib/gslist.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
---
diff --git a/glib/glist.c b/glib/glist.c
index 18e25da..2f3a49b 100644
--- a/glib/glist.c
+++ b/glib/glist.c
@@ -947,7 +947,8 @@ g_list_first (GList *list)
*
* This function iterates over the whole list to count its elements.
* Use a #GQueue instead of a GList if you regularly need the number
- * of items.
+ * of items. To check whether the list is non-empty, it is faster to check
+ * @list against %NULL.
*
* Returns: the number of elements in the #GList
*/
diff --git a/glib/gslist.c b/glib/gslist.c
index 83c0449..8a3e9e5 100644
--- a/glib/gslist.c
+++ b/glib/gslist.c
@@ -839,7 +839,8 @@ g_slist_last (GSList *list)
* Gets the number of elements in a #GSList.
*
* This function iterates over the whole list to
- * count its elements.
+ * count its elements. To check whether the list is non-empty, it is faster to
+ * check @list against %NULL.
*
* Returns: the number of elements in the #GSList
*/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]