[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58886] trunk/blender/source: avoid runtime overflow (1 << 31), for RNA and armature layer UI.

Campbell Barton ideasman42 at gmail.com
Sun Aug 4 02:01:42 CEST 2013


Revision: 58886
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58886
Author:   campbellbarton
Date:     2013-08-04 00:01:41 +0000 (Sun, 04 Aug 2013)
Log Message:
-----------
avoid runtime overflow (1 << 31), for RNA and armature layer UI.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/interface/interface_layout.c
    trunk/blender/source/blender/makesrna/intern/makesrna.c
    trunk/blender/source/gameengine/Ketsji/KX_MeshProxy.cpp

Modified: trunk/blender/source/blender/editors/interface/interface_layout.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_layout.c	2013-08-03 23:58:17 UTC (rev 58885)
+++ trunk/blender/source/blender/editors/interface/interface_layout.c	2013-08-04 00:01:41 UTC (rev 58886)
@@ -355,7 +355,7 @@
 	PropertyType type;
 	PropertySubType subtype;
 	uiLayout *sub;
-	int a, b;
+	unsigned int a, b;
 
 	/* retrieve type and subtype */
 	type = RNA_property_type(prop);
@@ -373,8 +373,8 @@
 		/* special check for layer layout */
 		int butw, buth, unit;
 		int cols = (len >= 20) ? 2 : 1;
-		int colbuts = len / (2 * cols);
-		int layer_used = 0;
+		const unsigned int colbuts = len / (2 * cols);
+		unsigned int layer_used = 0;
 
 		uiBlockSetCurLayout(block, uiLayoutAbsolute(layout, FALSE));
 

Modified: trunk/blender/source/blender/makesrna/intern/makesrna.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/makesrna.c	2013-08-03 23:58:17 UTC (rev 58885)
+++ trunk/blender/source/blender/makesrna/intern/makesrna.c	2013-08-04 00:01:41 UTC (rev 58886)
@@ -646,13 +646,14 @@
 					if (prop->flag & PROP_DYNAMIC) {
 						char *lenfunc = rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier),
 						                                        "get_length");
-						fprintf(f, "	int i, arraylen[RNA_MAX_ARRAY_DIMENSION];\n");
-						fprintf(f, "	int len = %s(ptr, arraylen);\n\n", lenfunc);
+						fprintf(f, "	unsigned int arraylen[RNA_MAX_ARRAY_DIMENSION];\n");
+						fprintf(f, "	unsigned int i;\n");
+						fprintf(f, "	unsigned int len = %s(ptr, arraylen);\n\n", lenfunc);
 						fprintf(f, "	for (i = 0; i < len; i++) {\n");
 						MEM_freeN(lenfunc);
 					}
 					else {
-						fprintf(f, "	int i;\n\n");
+						fprintf(f, "	unsigned int i;\n\n");
 						fprintf(f, "	for (i = 0; i < %u; i++) {\n", prop->totarraylength);
 					}
 

Modified: trunk/blender/source/gameengine/Ketsji/KX_MeshProxy.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_MeshProxy.cpp	2013-08-03 23:58:17 UTC (rev 58885)
+++ trunk/blender/source/gameengine/Ketsji/KX_MeshProxy.cpp	2013-08-04 00:01:41 UTC (rev 58886)
@@ -387,16 +387,13 @@
 	
 	
 	for (i=0; i<tot; mit++, i++) {
-		RAS_IPolyMaterial *polymat = mit->m_bucket->GetPolyMaterial(); 	 
-		
-		/* Why do we need to check for RAS_BLENDERMAT if both are cast to a (PyObject *)? - Campbell */
-		if (polymat->GetFlag() & RAS_BLENDERMAT) 	 
-		{ 	 
-			KX_BlenderMaterial *mat = static_cast<KX_BlenderMaterial*>(polymat); 	 
+		RAS_IPolyMaterial *polymat = mit->m_bucket->GetPolyMaterial();
+		if (polymat->GetFlag() & RAS_BLENDERMAT) {
+			KX_BlenderMaterial *mat = static_cast<KX_BlenderMaterial *>(polymat);
 			PyList_SET_ITEM(materials, i, mat->GetProxy());
 		}
 		else {
-			KX_PolygonMaterial *mat = static_cast<KX_PolygonMaterial*>(polymat);
+			KX_PolygonMaterial *mat = static_cast<KX_PolygonMaterial *>(polymat);
 			PyList_SET_ITEM(materials, i, mat->GetProxy());
 		}
 	}




More information about the Bf-blender-cvs mailing list