diff options
author | Tim-Philipp Müller <tpm@src.gnome.org> | 2005-08-12 16:09:19 +0000 |
---|---|---|
committer | Tim-Philipp Müller <tpm@src.gnome.org> | 2005-08-12 16:09:19 +0000 |
commit | 7788ead1376fd75d4798c5602b9ad6b742020570 (patch) | |
tree | 4a02d8f6eb86314ffc59d0ca52176b6eadb76987 | |
parent | 5534bedf75faecde2c57f9580286563099e011a4 (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-- | ChangeLog | 8 | ||||
-rw-r--r-- | ChangeLog.pre-2-10 | 8 | ||||
-rw-r--r-- | ChangeLog.pre-2-12 | 8 | ||||
-rw-r--r-- | ChangeLog.pre-2-8 | 8 | ||||
-rw-r--r-- | gobject/genums.c | 17 |
5 files changed, 45 insertions, 4 deletions
@@ -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; |