diff options
author | Haru <haru@dotalux.com> | 2015-12-06 15:18:01 +0100 |
---|---|---|
committer | Haru <haru@dotalux.com> | 2015-12-06 15:19:00 +0100 |
commit | d7d6e7214cc1af22dab0b28fdde218ea7d37f05f (patch) | |
tree | 67cb2529c39c8a8ad2d062b8a1092fc70ba60b09 /src | |
parent | 10e512506d82f5dfd2a1b1d99304d338e03c4803 (diff) | |
download | hercules-d7d6e7214cc1af22dab0b28fdde218ea7d37f05f.tar.gz hercules-d7d6e7214cc1af22dab0b28fdde218ea7d37f05f.tar.bz2 hercules-d7d6e7214cc1af22dab0b28fdde218ea7d37f05f.tar.xz hercules-d7d6e7214cc1af22dab0b28fdde218ea7d37f05f.zip |
Added backtrace in case an invalid race is passed to map_race_id2mask
Signed-off-by: Haru <haru@dotalux.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/common/nullpo.h | 13 | ||||
-rw-r--r-- | src/map/map.c | 2 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/common/nullpo.h b/src/common/nullpo.h index 52e9fba39..8abeb4af9 100644 --- a/src/common/nullpo.h +++ b/src/common/nullpo.h @@ -27,10 +27,23 @@ #include <crtdbg.h> #endif // !DEFCPP && WIN && !MINGW #define Assert(EX) assert(EX) +/** + * Reports an assertion failure if the passed expression is false. + * + * @param EX The expression to test. + * @return false if the passed expression is true, false otherwise. + */ #define Assert_chk(EX) ( (EX) ? false : (nullpo->assert_report(__FILE__, __LINE__, __func__, #EX, "failed assertion"), true) ) +/** + * Reports an assertion failure (without actually checking it). + * + * @param EX the expression to report. + */ +#define Assert_report(EX) (nullpo->assert_report(__FILE__, __LINE__, __func__, #EX, "failed assertion")) #else // ! ASSERT_CHECK #define Assert(EX) (EX) #define Assert_chk(EX) ((EX), false) +#define Assert_report(EX) ((void)(EX)) #endif // ASSERT_CHECK #if defined(NULLPO_CHECK) diff --git a/src/map/map.c b/src/map/map.c index 7a0dde260..e1bf5232a 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -2068,6 +2068,8 @@ uint32 map_race_id2mask(int race) return RCMASK_NONDEMIPLAYER; ShowWarning("map_race_id2mask: Invalid race: %d\n", race); + Assert_report((race >= RC_FORMLESS && race < RC_NONDEMIPLAYER) || race == RC_ALL); + return RCMASK_NONE; } |