Commit: fd7bd0588e743de16999d98aca24d6b16b87e477
Author: Campbell Barton
Date:   Tue Jun 7 16:05:04 2016 +1000
Branches: compositor-2016
https://developer.blender.org/rBfd7bd0588e743de16999d98aca24d6b16b87e477

BLO_idcode: Move ID_ID last

This lets us use MAX_LIBARRAY to loop over id-codes in Main.

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

M       source/blender/blenkernel/intern/idcode.c

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

diff --git a/source/blender/blenkernel/intern/idcode.c 
b/source/blender/blenkernel/intern/idcode.c
index 68a741b..899ed54 100644
--- a/source/blender/blenkernel/intern/idcode.c
+++ b/source/blender/blenkernel/intern/idcode.c
@@ -39,6 +39,7 @@
 
 #include "BLT_translation.h"
 
+#include "BKE_library.h"
 #include "BKE_idcode.h"
 
 typedef struct {
@@ -54,6 +55,7 @@ typedef struct {
 /* plural need to match rna_main.c's MainCollectionDef */
 /* WARNING! Keep it in sync with i18n contexts in BLT_translation.h */
 static IDType idtypes[] = {
+       /** ID's directly below must all be in #Main, and be kept in sync with 
#MAX_LIBARRAY (membership, not order) */
        { ID_AC,   "Action",             "actions",         
BLT_I18NCONTEXT_ID_ACTION,             IDTYPE_FLAGS_ISLINKABLE },
        { ID_AR,   "Armature",           "armatures",       
BLT_I18NCONTEXT_ID_ARMATURE,           IDTYPE_FLAGS_ISLINKABLE },
        { ID_BR,   "Brush",              "brushes",         
BLT_I18NCONTEXT_ID_BRUSH,              IDTYPE_FLAGS_ISLINKABLE },
@@ -61,7 +63,6 @@ static IDType idtypes[] = {
        { ID_CU,   "Curve",              "curves",          
BLT_I18NCONTEXT_ID_CURVE,              IDTYPE_FLAGS_ISLINKABLE },
        { ID_GD,   "GPencil",            "grease_pencil",   
BLT_I18NCONTEXT_ID_GPENCIL,            IDTYPE_FLAGS_ISLINKABLE }, /* rename 
gpencil */
        { ID_GR,   "Group",              "groups",          
BLT_I18NCONTEXT_ID_GROUP,              IDTYPE_FLAGS_ISLINKABLE },
-       { ID_ID,   "ID",                 "ids",             
BLT_I18NCONTEXT_ID_ID,                 0                       }, /* plural is 
fake */
        { ID_IM,   "Image",              "images",          
BLT_I18NCONTEXT_ID_IMAGE,              IDTYPE_FLAGS_ISLINKABLE },
        { ID_IP,   "Ipo",                "ipos",            "",                 
                   IDTYPE_FLAGS_ISLINKABLE }, /* deprecated */
        { ID_KE,   "Key",                "shape_keys",      
BLT_I18NCONTEXT_ID_SHAPEKEY,           0                       },
@@ -89,8 +90,14 @@ static IDType idtypes[] = {
        { ID_VF,   "VFont",              "fonts",           
BLT_I18NCONTEXT_ID_VFONT,              IDTYPE_FLAGS_ISLINKABLE },
        { ID_WO,   "World",              "worlds",          
BLT_I18NCONTEXT_ID_WORLD,              IDTYPE_FLAGS_ISLINKABLE },
        { ID_WM,   "WindowManager",      "window_managers", 
BLT_I18NCONTEXT_ID_WINDOWMANAGER,      0                       },
+
+       /** Keep last, not an ID exactly, only include for completeness */
+       { ID_ID,   "ID",                 "ids",             
BLT_I18NCONTEXT_ID_ID,                 0                       }, /* plural is 
fake */
 };
 
+/* -1 for ID_ID */
+BLI_STATIC_ASSERT((ARRAY_SIZE(idtypes) - 1 == MAX_LIBARRAY), "Missing IDType");
+
 static IDType *idtype_from_name(const char *str) 
 {
        int i = ARRAY_SIZE(idtypes);

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to