[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41863] trunk/blender/source/blender: pass a pointer to IDP_New's IDPropertyTemplate rather then a copy.

Campbell Barton ideasman42 at gmail.com
Tue Nov 15 10:22:52 CET 2011


Revision: 41863
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41863
Author:   campbellbarton
Date:     2011-11-15 09:22:52 +0000 (Tue, 15 Nov 2011)
Log Message:
-----------
pass a pointer to IDP_New's IDPropertyTemplate rather then a copy.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_idprop.h
    trunk/blender/source/blender/blenkernel/intern/idprop.c
    trunk/blender/source/blender/editors/interface/interface.c
    trunk/blender/source/blender/editors/interface/interface_layout.c
    trunk/blender/source/blender/editors/sculpt_paint/paint_image.c
    trunk/blender/source/blender/makesrna/intern/rna_access.c
    trunk/blender/source/blender/makesrna/intern/rna_armature.c
    trunk/blender/source/blender/makesrna/intern/rna_pose.c
    trunk/blender/source/blender/makesrna/intern/rna_wm.c
    trunk/blender/source/blender/python/generic/IDProp.c
    trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
    trunk/blender/source/blender/windowmanager/intern/wm_operators.c

Modified: trunk/blender/source/blender/blenkernel/BKE_idprop.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_idprop.h	2011-11-15 09:21:22 UTC (rev 41862)
+++ trunk/blender/source/blender/blenkernel/BKE_idprop.h	2011-11-15 09:22:52 UTC (rev 41863)
@@ -187,7 +187,7 @@
 IDP_AddToGroup or MEM_freeN the property, doing anything else might result in
 a memory leak.
 */
-struct IDProperty *IDP_New(int type, IDPropertyTemplate val, const char *name);
+struct IDProperty *IDP_New(const int type, const IDPropertyTemplate *val, const char *name);
 
 /** \note this will free all child properties of list arrays and groups!
   Also, note that this does NOT unlink anything!  Plus it doesn't free

Modified: trunk/blender/source/blender/blenkernel/intern/idprop.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/idprop.c	2011-11-15 09:21:22 UTC (rev 41862)
+++ trunk/blender/source/blender/blenkernel/intern/idprop.c	2011-11-15 09:22:52 UTC (rev 41863)
@@ -193,7 +193,7 @@
 
 		for(a=prop->len; a<newlen; a++) {
 			val.i = 0; /* silence MSVC warning about uninitialized var when debugging */
-			array[a]= IDP_New(IDP_GROUP, val, "IDP_ResizeArray group");
+			array[a]= IDP_New(IDP_GROUP, &val, "IDP_ResizeArray group");
 		}
 	}
 	else {
@@ -673,32 +673,33 @@
 	return 1;
 }
 
-IDProperty *IDP_New(int type, IDPropertyTemplate val, const char *name)
+/* 'val' is never NULL, dont check */
+IDProperty *IDP_New(const int type, const IDPropertyTemplate *val, const char *name)
 {
 	IDProperty *prop=NULL;
 
 	switch (type) {
 		case IDP_INT:
 			prop = MEM_callocN(sizeof(IDProperty), "IDProperty int");
-			prop->data.val = val.i;
+			prop->data.val = val->i;
 			break;
 		case IDP_FLOAT:
 			prop = MEM_callocN(sizeof(IDProperty), "IDProperty float");
-			*(float*)&prop->data.val = val.f;
+			*(float*)&prop->data.val = val->f;
 			break;
 		case IDP_DOUBLE:
 			prop = MEM_callocN(sizeof(IDProperty), "IDProperty float");
-			*(double*)&prop->data.val = val.d;
+			*(double*)&prop->data.val = val->d;
 			break;		
 		case IDP_ARRAY:
 		{
 			/*for now, we only support float and int and double arrays*/
-			if (val.array.type == IDP_FLOAT || val.array.type == IDP_INT || val.array.type == IDP_DOUBLE || val.array.type == IDP_GROUP) {
+			if (val->array.type == IDP_FLOAT || val->array.type == IDP_INT || val->array.type == IDP_DOUBLE || val->array.type == IDP_GROUP) {
 				prop = MEM_callocN(sizeof(IDProperty), "IDProperty array");
-				prop->subtype = val.array.type;
-				if (val.array.len)
-					prop->data.pointer = MEM_callocN(idp_size_table[val.array.type]*val.array.len, "id property array");
-				prop->len = prop->totallen = val.array.len;
+				prop->subtype = val->array.type;
+				if (val->array.len)
+					prop->data.pointer = MEM_callocN(idp_size_table[val->array.type]*val->array.len, "id property array");
+				prop->len = prop->totallen = val->array.len;
 				break;
 			} else {
 				return NULL;
@@ -706,10 +707,10 @@
 		}
 		case IDP_STRING:
 		{
-			const char *st = val.string.str;
+			const char *st = val->string.str;
 
 			prop = MEM_callocN(sizeof(IDProperty), "IDProperty string");
-			if (val.string.subtype == IDP_STRING_SUB_BYTE) {
+			if (val->string.subtype == IDP_STRING_SUB_BYTE) {
 				/* note, intentionally not null terminated */
 				if (st == NULL) {
 					prop->data.pointer = MEM_callocN(DEFAULT_ALLOC_FOR_NULL_STRINGS, "id property string 1");
@@ -717,9 +718,9 @@
 					prop->len = 0;
 				}
 				else {
-					prop->data.pointer = MEM_mallocN(val.string.len, "id property string 2");
-					prop->len = prop->totallen = val.string.len;
-					memcpy(prop->data.pointer, st, val.string.len);
+					prop->data.pointer = MEM_mallocN(val->string.len, "id property string 2");
+					prop->len = prop->totallen = val->string.len;
+					memcpy(prop->data.pointer, st, val->string.len);
 				}
 				prop->subtype= IDP_STRING_SUB_BYTE;
 			}

Modified: trunk/blender/source/blender/editors/interface/interface.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface.c	2011-11-15 09:21:22 UTC (rev 41862)
+++ trunk/blender/source/blender/editors/interface/interface.c	2011-11-15 09:22:52 UTC (rev 41863)
@@ -831,7 +831,7 @@
 			if (prop_menu == NULL) {
 				/* annoying, create a property */
 				IDPropertyTemplate val = {0};
-				prop_menu= IDP_New(IDP_GROUP, val, __func__); /* dummy, name is unimportant  */
+				prop_menu= IDP_New(IDP_GROUP, &val, __func__); /* dummy, name is unimportant  */
 				IDP_AddToGroup(prop_menu, (prop_menu_name= IDP_NewString("", "name", sizeof(mt->idname))));
 			}
 

Modified: trunk/blender/source/blender/editors/interface/interface_layout.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_layout.c	2011-11-15 09:21:22 UTC (rev 41862)
+++ trunk/blender/source/blender/editors/interface/interface_layout.c	2011-11-15 09:22:52 UTC (rev 41863)
@@ -677,7 +677,7 @@
 		}
 		else {
 			IDPropertyTemplate val = {0};
-			opptr->data= IDP_New(IDP_GROUP, val, "wmOperatorProperties");
+			opptr->data= IDP_New(IDP_GROUP, &val, "wmOperatorProperties");
 		}
 
 		return *opptr;
@@ -2747,7 +2747,7 @@
 {
 	if(!op->properties) {
 		IDPropertyTemplate val = {0};
-		op->properties= IDP_New(IDP_GROUP, val, "wmOperatorProperties");
+		op->properties= IDP_New(IDP_GROUP, &val, "wmOperatorProperties");
 	}
 
 	if(flag & UI_LAYOUT_OP_SHOW_TITLE) {

Modified: trunk/blender/source/blender/editors/sculpt_paint/paint_image.c
===================================================================
--- trunk/blender/source/blender/editors/sculpt_paint/paint_image.c	2011-11-15 09:21:22 UTC (rev 41862)
+++ trunk/blender/source/blender/editors/sculpt_paint/paint_image.c	2011-11-15 09:22:52 UTC (rev 41863)
@@ -5669,7 +5669,7 @@
 
 		val.array.len = PROJ_VIEW_DATA_SIZE;
 		val.array.type = IDP_FLOAT;
-		view_data = IDP_New(IDP_ARRAY, val, PROJ_VIEW_DATA_ID);
+		view_data = IDP_New(IDP_ARRAY, &val, PROJ_VIEW_DATA_ID);
 
 		array= (float *)IDP_Array(view_data);
 		memcpy(array, rv3d->winmat, sizeof(rv3d->winmat)); array += sizeof(rv3d->winmat)/sizeof(float);

Modified: trunk/blender/source/blender/makesrna/intern/rna_access.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_access.c	2011-11-15 09:21:22 UTC (rev 41862)
+++ trunk/blender/source/blender/makesrna/intern/rna_access.c	2011-11-15 09:22:52 UTC (rev 41863)
@@ -1617,7 +1617,7 @@
 
 		group= RNA_struct_idprops(ptr, 1);
 		if(group)
-			IDP_AddToGroup(group, IDP_New(IDP_INT, val, prop->identifier));
+			IDP_AddToGroup(group, IDP_New(IDP_INT, &val, prop->identifier));
 	}
 }
 
@@ -1696,7 +1696,7 @@
 
 		group= RNA_struct_idprops(ptr, 1);
 		if(group) {
-			idprop= IDP_New(IDP_ARRAY, val, prop->identifier);
+			idprop= IDP_New(IDP_ARRAY, &val, prop->identifier);
 			IDP_AddToGroup(group, idprop);
 			memcpy(IDP_Array(idprop), values, sizeof(int)*idprop->len);
 		}
@@ -1814,7 +1814,7 @@
 
 		group= RNA_struct_idprops(ptr, 1);
 		if(group)
-			IDP_AddToGroup(group, IDP_New(IDP_INT, val, prop->identifier));
+			IDP_AddToGroup(group, IDP_New(IDP_INT, &val, prop->identifier));
 	}
 }
 
@@ -1930,7 +1930,7 @@
 
 		group= RNA_struct_idprops(ptr, 1);
 		if(group) {
-			idprop= IDP_New(IDP_ARRAY, val, prop->identifier);
+			idprop= IDP_New(IDP_ARRAY, &val, prop->identifier);
 			IDP_AddToGroup(group, idprop);
 			memcpy(IDP_Array(idprop), values, sizeof(int)*idprop->len);
 		}
@@ -2050,7 +2050,7 @@
 
 		group= RNA_struct_idprops(ptr, 1);
 		if(group)
-			IDP_AddToGroup(group, IDP_New(IDP_FLOAT, val, prop->identifier));
+			IDP_AddToGroup(group, IDP_New(IDP_FLOAT, &val, prop->identifier));
 	}
 }
 
@@ -2184,7 +2184,7 @@
 
 		group= RNA_struct_idprops(ptr, 1);
 		if(group) {
-			idprop= IDP_New(IDP_ARRAY, val, prop->identifier);
+			idprop= IDP_New(IDP_ARRAY, &val, prop->identifier);
 			IDP_AddToGroup(group, idprop);
 			memcpy(IDP_Array(idprop), values, sizeof(float)*idprop->len);
 		}
@@ -2439,7 +2439,7 @@
 
 		group= RNA_struct_idprops(ptr, 1);
 		if(group)
-			IDP_AddToGroup(group, IDP_New(IDP_INT, val, prop->identifier));
+			IDP_AddToGroup(group, IDP_New(IDP_INT, &val, prop->identifier));
 	}
 }
 
@@ -2535,7 +2535,7 @@
 
 		group= RNA_struct_idprops(ptr, 1);
 		if(group)
-			IDP_AddToGroup(group, IDP_New(IDP_GROUP, val, prop->identifier));
+			IDP_AddToGroup(group, IDP_New(IDP_GROUP, &val, prop->identifier));
 	}
 	else
 		printf("%s %s.%s: only supported for id properties.\n", __func__, ptr->type->identifier, prop->identifier);
@@ -2658,7 +2658,7 @@
 		IDPropertyTemplate val = {0};
 		IDProperty *item;
 
-		item= IDP_New(IDP_GROUP, val, "");
+		item= IDP_New(IDP_GROUP, &val, "");
 		IDP_AppendArray(idprop, item);
 		// IDP_FreeProperty(item); // IDP_AppendArray does a shallow copy (memcpy), only free memory 
 		MEM_freeN(item);
@@ -2672,7 +2672,7 @@
 			idprop= IDP_NewIDPArray(prop->identifier);
 			IDP_AddToGroup(group, idprop);
 
-			item= IDP_New(IDP_GROUP, val, "");
+			item= IDP_New(IDP_GROUP, &val, "");
 			IDP_AppendArray(idprop, item);
 			// IDP_FreeProperty(item); // IDP_AppendArray does a shallow copy (memcpy), only free memory
 			MEM_freeN(item);

Modified: trunk/blender/source/blender/makesrna/intern/rna_armature.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_armature.c	2011-11-15 09:21:22 UTC (rev 41862)
+++ trunk/blender/source/blender/makesrna/intern/rna_armature.c	2011-11-15 09:22:52 UTC (rev 41863)
@@ -169,7 +169,7 @@
 
 	if(create && !bone->prop) {
 		IDPropertyTemplate val = {0};
-		bone->prop= IDP_New(IDP_GROUP, val, "RNA_Bone ID properties");
+		bone->prop= IDP_New(IDP_GROUP, &val, "RNA_Bone ID properties");
 	}
 
 	return bone->prop;
@@ -181,7 +181,7 @@
 
 	if(create && !ebone->prop) {
 		IDPropertyTemplate val = {0};
-		ebone->prop= IDP_New(IDP_GROUP, val, "RNA_EditBone ID properties");
+		ebone->prop= IDP_New(IDP_GROUP, &val, "RNA_EditBone ID properties");
 	}
 
 	return ebone->prop;

Modified: trunk/blender/source/blender/makesrna/intern/rna_pose.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_pose.c	2011-11-15 09:21:22 UTC (rev 41862)

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list