summaryrefslogtreecommitdiff
path: root/src/base
diff options
context:
space:
mode:
Diffstat (limited to 'src/base')
-rw-r--r--src/base/flags.hh8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/base/flags.hh b/src/base/flags.hh
index 7cf6ef9c6..712b65319 100644
--- a/src/base/flags.hh
+++ b/src/base/flags.hh
@@ -61,16 +61,14 @@ class Flags
bool any() const { return _flags; }
bool any(Type flags) const { return (_flags & flags); }
- bool all() const { return (~_flags); }
- bool all(Type flags) const { return (_flags & flags) != flags; }
+ bool all() const { return !(~_flags); }
+ bool all(Type flags) const { return (_flags & flags) == flags; }
bool none() const { return _flags == 0; }
bool none(Type flags) const { return (_flags & flags) == 0; }
- bool exact(Type flags) const { return _flags = flags; }
void clear() { _flags = 0; }
void clear(Type flags) { _flags &= ~flags; }
- void reset(Type flags) { _flags = flags;}
void set(Type flags) { _flags |= flags; }
- void set(Type f, bool val) { _flags = (_flags & f) | (val ? f : 0); }
+ void set(Type f, bool val) { _flags = (_flags & ~f) | (val ? f : 0); }
void
update(Type flags, Type mask)
{