[Bf-blender-cvs] [8a72c3baefb] blender2.8: Static assert for correct strings from context mode enum.

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


Commit: 8a72c3baefbae22949dee16c004f253197e93914
Author: Lukas Tönne
Date:   Wed Jan 3 13:10:42 2018 +0000
Branches: blender2.8
https://developer.blender.org/rB8a72c3baefbae22949dee16c004f253197e93914

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 75e658613cb..121c276d5f2 100644
--- a/source/blender/blenkernel/BKE_context.h
+++ b/source/blender/blenkernel/BKE_context.h
@@ -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 */
diff --git a/source/blender/blenkernel/intern/context.c b/source/blender/blenkernel/intern/context.c
index ea46d000344..7d4cbd16331 100644
--- a/source/blender/blenkernel/intern/context.c
+++ b/source/blender/blenkernel/intern/context.c
@@ -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)];



More information about the Bf-blender-cvs mailing list