fix [#26967] separate mesh with p crashes blender
authorCampbell Barton <ideasman42@gmail.com>
Tue, 19 Apr 2011 23:52:14 +0000 (23:52 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Tue, 19 Apr 2011 23:52:14 +0000 (23:52 +0000)
copying ID properties assumed each property was allocated separately which isnt the case for IDP_Arrays.

source/blender/blenkernel/intern/idprop.c

index 67be3e71101f26f0113fa6fbb3ea67bd6cf2ea80..80962de973046fb66f2a19401ff6cbf55b0a9758 100644 (file)
@@ -78,9 +78,12 @@ IDProperty *IDP_NewIDPArray(const char *name)
 
 IDProperty *IDP_CopyIDPArray(IDProperty *array)
 {
-       IDProperty *narray = MEM_dupallocN(array), *tmp;
+       /* dont use MEM_dupallocN because this may be part of an array */
+       IDProperty *narray = MEM_mallocN(sizeof(IDProperty), "IDP_CopyIDPArray"), *tmp;
        int i;
-       
+
+       *narray= *array;
+
        narray->data.pointer = MEM_dupallocN(array->data.pointer);
        for (i=0; i<narray->len; i++) {
                /*ok, the copy functions always allocate a new structure,