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. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs