Static assert for correct strings from context mode enum.

Adding new context modes requires adding a string in CTX_data_mode_string,
but there is no error when omitting this other than panels using
incorrect contexts. The static assert should help detect simple
missing strings at least to avoid confusing errors.
This commit is contained in:
Lukas Tönne 2018-01-03 13:10:42 +00:00
parent f20bb6c63f
commit 8a72c3baef
2 changed files with 3 additions and 1 deletions

View File

@ -118,7 +118,8 @@ enum {
CTX_MODE_PAINT_VERTEX,
CTX_MODE_PAINT_TEXTURE,
CTX_MODE_PARTICLE,
CTX_MODE_OBJECT
CTX_MODE_OBJECT,
CTX_MODE_NUM /* must be last */
};
/* Context */

View File

@ -1059,6 +1059,7 @@ static const char *data_mode_strings[] = {
"objectmode",
NULL
};
BLI_STATIC_ASSERT(ARRAY_SIZE(data_mode_strings) == CTX_MODE_NUM + 1, "Must have a string for each context mode")
const char *CTX_data_mode_string(const bContext *C)
{
return data_mode_strings[CTX_data_mode_enum(C)];