diff options
Diffstat (limited to 'src/input/inputactionsortfunctor.h')
-rw-r--r-- | src/input/inputactionsortfunctor.h | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/input/inputactionsortfunctor.h b/src/input/inputactionsortfunctor.h index 6a3a72245..6884f9c11 100644 --- a/src/input/inputactionsortfunctor.h +++ b/src/input/inputactionsortfunctor.h @@ -21,6 +21,8 @@ #ifndef INPUT_INPUTACTIONSORTFUNCTOR_H #define INPUT_INPUTACTIONSORTFUNCTOR_H +#include "logger.h" + #include "input/inputactiondata.h" #include "localconsts.h" @@ -31,8 +33,19 @@ class InputActionSortFunctor final bool operator() (const InputActionT key1, const InputActionT key2) const { - return keys[CAST_SIZE(key1)].priority - >= keys[CAST_SIZE(key2)].priority; + const size_t k1 = CAST_SIZE(key1); + const size_t k2 = CAST_SIZE(key2); + if (k1 >= CAST_SIZE(InputAction::TOTAL)) + { + logger->log("broken key1: %ld", static_cast<long>(k1)); + return false; + } + if (k2 >= CAST_SIZE(InputAction::TOTAL)) + { + logger->log("broken key2: %ld", static_cast<long>(k2)); + return false; + } + return keys[k1].priority >= keys[k2].priority; } const InputActionData *keys A_NONNULLPOINTER; |