From 8623935aa838a168f64b54f4fefe472444db72fc Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 15 Nov 2011 09:22:52 +0000 Subject: pass a pointer to IDP_New's IDPropertyTemplate rather then a copy. --- source/blender/blenkernel/intern/idprop.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) (limited to 'source/blender/blenkernel/intern/idprop.c') diff --git a/source/blender/blenkernel/intern/idprop.c b/source/blender/blenkernel/intern/idprop.c index 07057e4ee32..a07af5161db 100644 --- a/source/blender/blenkernel/intern/idprop.c +++ b/source/blender/blenkernel/intern/idprop.c @@ -193,7 +193,7 @@ static void idp_resize_group_array(IDProperty *prop, int newlen, void *newarr) for(a=prop->len; adata.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 @@ IDProperty *IDP_New(int type, IDPropertyTemplate val, const char *name) } 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 @@ IDProperty *IDP_New(int type, IDPropertyTemplate val, const char *name) 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; } -- cgit v1.2.3