Fixed unsafe casts

This commit is contained in:
Rainer Deyke 2022-04-04 14:55:41 +02:00
parent 2907ca3a41
commit 56ae5bbafb

View file

@ -315,7 +315,8 @@ constexpr Key operator-(uint32_t a, Key b) {
}
constexpr Key &operator-=(Key &a, int b) {
return (Key &)((int &)a -= b);
a = static_cast<Key>(static_cast<int>(a) - static_cast<int>(b));
return a;
}
constexpr Key operator+(Key a, int b) {
@ -339,15 +340,18 @@ constexpr Key operator|(Key a, Key b) {
}
constexpr Key &operator|=(Key &a, Key b) {
return (Key &)((int &)a |= (int)b);
a = static_cast<Key>(static_cast<int>(a) | static_cast<int>(b));
return a;
}
constexpr Key &operator|=(Key &a, KeyModifierMask b) {
return (Key &)((int &)a |= (int)b);
a = static_cast<Key>(static_cast<int>(a) | static_cast<int>(b));
return a;
}
constexpr Key &operator&=(Key &a, KeyModifierMask b) {
return (Key &)((int &)a &= (int)b);
a = static_cast<Key>(static_cast<int>(a) & static_cast<int>(b));
return a;
}
constexpr Key operator|(Key a, KeyModifierMask b) {