[Bf-blender-cvs] [0206d499603] hair_guides: Static assert for correct strings from context mode enum.

Lukas Tönne noreply at git.blender.org
Wed Jan 3 14:26:14 CET 2018


Commit: 0206d499603133550ca4b4309221a8c6b517b56e
Author: Lukas Tönne
Date:   Wed Jan 3 13:10:42 2018 +0000
Branches: hair_guides
https://developer.blender.org/rB0206d499603133550ca4b4309221a8c6b517b56e

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.

===================================================================

M	source/blender/blenkernel/BKE_context.h
M	source/blender/blenkernel/intern/context.c

===================================================================

diff --git a/source/blender/blenkernel/BKE_context.h b/source/blender/blenkernel/BKE_context.h
index 73af8f26f15..6b88df8b203 100644
--- a/source/blender/blenkernel/BKE_context.h
+++ b/source/blender/blenkernel/BKE_context.h
@@ -119,7 +119,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 */
diff --git a/source/blender/blenkernel/intern/context.c b/source/blender/blenkernel/intern/context.c
index b9a8ea67a0a..c4d7153602a 100644
--- a/source/blender/blenkernel/intern/context.c
+++ b/source/blender/blenkernel/intern/context.c
@@ -1061,6 +1061,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)];



More information about the Bf-blender-cvs mailing list