[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56459] trunk/blender/source/blender: make rna layer access less cryptic by using ARRAY_HAS_ITEM(), modified this to use unsigned offset.

Campbell Barton ideasman42 at gmail.com
Thu May 2 00:39:34 CEST 2013


Revision: 56459
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56459
Author:   campbellbarton
Date:     2013-05-01 22:39:34 +0000 (Wed, 01 May 2013)
Log Message:
-----------
make rna layer access less cryptic by using ARRAY_HAS_ITEM(), modified this to use unsigned offset.

Modified Paths:
--------------
    trunk/blender/source/blender/blenlib/BLI_utildefines.h
    trunk/blender/source/blender/makesrna/intern/rna_mesh.c

Modified: trunk/blender/source/blender/blenlib/BLI_utildefines.h
===================================================================
--- trunk/blender/source/blender/blenlib/BLI_utildefines.h	2013-05-01 19:50:37 UTC (rev 56458)
+++ trunk/blender/source/blender/blenlib/BLI_utildefines.h	2013-05-01 22:39:34 UTC (rev 56459)
@@ -300,14 +300,13 @@
 #define UNPACK4OP(op, a)  op((a)[0]), op((a)[1]), op((a)[2]), op((a)[3])
 
 /* array helpers */
-#define ARRAY_LAST_ITEM(arr_start, arr_dtype, elem_size, tot)                 \
+#define ARRAY_LAST_ITEM(arr_start, arr_dtype, elem_size, tot) \
 	(arr_dtype *)((char *)arr_start + (elem_size * (tot - 1)))
 
-#define ARRAY_HAS_ITEM(item, arr_start, arr_dtype, elem_size, tot) (          \
-		(item >= arr_start) &&                                                \
-		(item <= ARRAY_LAST_ITEM(arr_start, arr_dtype, elem_size, tot))       \
-	)
+#define ARRAY_HAS_ITEM(arr_item, arr_start, tot) \
+	((unsigned int)((arr_item) - (arr_start)) < (unsigned int)(tot))
 
+
 /* Warning-free macros for storing ints in pointers. Use these _only_
  * for storing an int in a pointer, not a pointer in an int (64bit)! */
 #define SET_INT_IN_POINTER(i)    ((void *)(intptr_t)(i))

Modified: trunk/blender/source/blender/makesrna/intern/rna_mesh.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_mesh.c	2013-05-01 19:50:37 UTC (rev 56458)
+++ trunk/blender/source/blender/makesrna/intern/rna_mesh.c	2013-05-01 22:39:34 UTC (rev 56459)
@@ -153,7 +153,7 @@
 	CustomData *cd;
 
 	/* rely on negative values wrapping */
-#define TEST_CDL(cmd) if ((void)(cd = cmd(me)), (unsigned int)(cdl - cd->layers) < (unsigned int)cd->totlayer) return cd
+#define TEST_CDL(cmd) if ((void)(cd = cmd(me)), ARRAY_HAS_ITEM(cdl, cd->layers, cd->totlayer)) return cd
 
 	TEST_CDL(rna_mesh_vdata_helper);
 	TEST_CDL(rna_mesh_edata_helper);




More information about the Bf-blender-cvs mailing list