summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim-Philipp Müller <tpm@src.gnome.org>2005-08-12 16:09:19 +0000
committerTim-Philipp Müller <tpm@src.gnome.org>2005-08-12 16:09:19 +0000
commit7788ead1376fd75d4798c5602b9ad6b742020570 (patch)
tree4a02d8f6eb86314ffc59d0ca52176b6eadb76987
parent5534bedf75faecde2c57f9580286563099e011a4 (diff)
Special-case flag value of 0. Instead of returning the first random
* gobject/genums.c: (g_flags_get_first_value): Special-case flag value of 0. Instead of returning the first random GFlagsValue we come across, return the GFlagsValue for 0 if it exists or NULL if it does not exist. Never return the GFlagsValue for 0 if the requested flags value is nonzero.
-rw-r--r--ChangeLog8
-rw-r--r--ChangeLog.pre-2-108
-rw-r--r--ChangeLog.pre-2-128
-rw-r--r--ChangeLog.pre-2-88
-rw-r--r--gobject/genums.c17
5 files changed, 45 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 1c3d25305..f1dd89ef3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2005-08-12 Tim-Philipp Müller <tim at centricular dot net>
+
+ * gobject/genums.c: (g_flags_get_first_value): Special-case flag
+ value of 0. Instead of returning the first random GFlagsValue
+ we come across, return the GFlagsValue for 0 if it exists or
+ NULL if it does not exist. Never return the GFlagsValue for 0
+ if the requested flags value is nonzero.
+
2005-08-12 Matthias Clasen <mclasen@redhat.com>
* configure.in: Bump version to 2.8.0
diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10
index 1c3d25305..f1dd89ef3 100644
--- a/ChangeLog.pre-2-10
+++ b/ChangeLog.pre-2-10
@@ -1,3 +1,11 @@
+2005-08-12 Tim-Philipp Müller <tim at centricular dot net>
+
+ * gobject/genums.c: (g_flags_get_first_value): Special-case flag
+ value of 0. Instead of returning the first random GFlagsValue
+ we come across, return the GFlagsValue for 0 if it exists or
+ NULL if it does not exist. Never return the GFlagsValue for 0
+ if the requested flags value is nonzero.
+
2005-08-12 Matthias Clasen <mclasen@redhat.com>
* configure.in: Bump version to 2.8.0
diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12
index 1c3d25305..f1dd89ef3 100644
--- a/ChangeLog.pre-2-12
+++ b/ChangeLog.pre-2-12
@@ -1,3 +1,11 @@
+2005-08-12 Tim-Philipp Müller <tim at centricular dot net>
+
+ * gobject/genums.c: (g_flags_get_first_value): Special-case flag
+ value of 0. Instead of returning the first random GFlagsValue
+ we come across, return the GFlagsValue for 0 if it exists or
+ NULL if it does not exist. Never return the GFlagsValue for 0
+ if the requested flags value is nonzero.
+
2005-08-12 Matthias Clasen <mclasen@redhat.com>
* configure.in: Bump version to 2.8.0
diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8
index 1c3d25305..f1dd89ef3 100644
--- a/ChangeLog.pre-2-8
+++ b/ChangeLog.pre-2-8
@@ -1,3 +1,11 @@
+2005-08-12 Tim-Philipp Müller <tim at centricular dot net>
+
+ * gobject/genums.c: (g_flags_get_first_value): Special-case flag
+ value of 0. Instead of returning the first random GFlagsValue
+ we come across, return the GFlagsValue for 0 if it exists or
+ NULL if it does not exist. Never return the GFlagsValue for 0
+ if the requested flags value is nonzero.
+
2005-08-12 Matthias Clasen <mclasen@redhat.com>
* configure.in: Bump version to 2.8.0
diff --git a/gobject/genums.c b/gobject/genums.c
index 63ccd939e..2ce3dc3b4 100644
--- a/gobject/genums.c
+++ b/gobject/genums.c
@@ -379,10 +379,19 @@ g_flags_get_first_value (GFlagsClass *flags_class,
if (flags_class->n_values)
{
GFlagsValue *flags_value;
-
- for (flags_value = flags_class->values; flags_value->value_name; flags_value++)
- if ((flags_value->value & value) == flags_value->value)
- return flags_value;
+
+ if (value == 0)
+ {
+ for (flags_value = flags_class->values; flags_value->value_name; flags_value++)
+ if (flags_value->value == 0)
+ return flags_value;
+ }
+ else
+ {
+ for (flags_value = flags_class->values; flags_value->value_name; flags_value++)
+ if (flags_value->value != 0 && (flags_value->value & value) == flags_value->value)
+ return flags_value;
+ }
}
return NULL;