diff options
author | Noel Grandin <noel@peralex.com> | 2015-07-30 08:20:20 +0200 |
---|---|---|
committer | Noel Grandin <noelgrandin@gmail.com> | 2015-07-30 07:15:39 +0000 |
commit | cebfe56ae5f9cee4b403370774040f35a17d223c (patch) | |
tree | ee5ef74632b70980e58af8e6c75a6be921622c11 /include | |
parent | a45827b2308febc7369db27fb489a6d1389534e1 (diff) |
add assert for valid value in o3tl::typed_flags_set
, fixing a couple of bugs in the process
Change-Id: I40f932deecbcc99dff9aa13dd1882c7487e7fa8e
Reviewed-on: https://gerrit.libreoffice.org/17411
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/o3tl/typed_flags_set.hxx | 5 | ||||
-rw-r--r-- | include/vcl/salnativewidgets.hxx | 18 |
2 files changed, 13 insertions, 10 deletions
diff --git a/include/o3tl/typed_flags_set.hxx b/include/o3tl/typed_flags_set.hxx index d997f6ac6afc..d3ac7e276775 100644 --- a/include/o3tl/typed_flags_set.hxx +++ b/include/o3tl/typed_flags_set.hxx @@ -70,7 +70,10 @@ struct is_typed_flags { public: explicit Wrap(typename std::underlying_type<E>::type value): value_(value) - { assert(detail::isNonNegative(value)); } + { + assert(detail::isNonNegative(value)); + assert((value & ~M) == 0); + } operator E() { return static_cast<E>(value_); } diff --git a/include/vcl/salnativewidgets.hxx b/include/vcl/salnativewidgets.hxx index 8118b299dba8..2ae7a6e26c19 100644 --- a/include/vcl/salnativewidgets.hxx +++ b/include/vcl/salnativewidgets.hxx @@ -240,20 +240,20 @@ typedef sal_uInt32 ControlPart; * in the ControlState. */ enum class ControlState { - NONE = 0, - ENABLED = 0x0001, - FOCUSED = 0x0002, - PRESSED = 0x0004, - ROLLOVER = 0x0008, - HIDDEN = 0x0010, - DEFAULT = 0x0020, - SELECTED = 0x0040, + NONE = 0, + ENABLED = 0x0001, + FOCUSED = 0x0002, + PRESSED = 0x0004, + ROLLOVER = 0x0008, + HIDDEN = 0x0010, + DEFAULT = 0x0020, + SELECTED = 0x0040, DOUBLEBUFFERING = 0x4000, ///< Set when the control is painted using double-buffering via VirtualDevice. CACHING_ALLOWED = 0x8000, ///< Set when the control is completely visible (i.e. not clipped). }; namespace o3tl { - template<> struct typed_flags<ControlState> : is_typed_flags<ControlState, 0xc007f> {}; + template<> struct typed_flags<ControlState> : is_typed_flags<ControlState, 0xc07f> {}; } class ControlCacheKey |