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

Reply via email to