[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