[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