Commit: 4cfac9edab8e74982aec1a57541167751c59ac4f
Author: Bastien Montagne
Date:   Thu Mar 30 22:52:12 2017 +0200
Branches: master
https://developer.blender.org/rB4cfac9edab8e74982aec1a57541167751c59ac4f

Cleanup/fix bad code in IDP_SetIndexArray()

Mainly, using index before checking for its validity...

===================================================================

M       source/blender/blenkernel/intern/idprop.c

===================================================================

diff --git a/source/blender/blenkernel/intern/idprop.c 
b/source/blender/blenkernel/intern/idprop.c
index b2641b110f8..a596869e5e8 100644
--- a/source/blender/blenkernel/intern/idprop.c
+++ b/source/blender/blenkernel/intern/idprop.c
@@ -130,18 +130,22 @@ void IDP_FreeIDPArray(IDProperty *prop)
                MEM_freeN(prop->data.pointer);
 }
 
-/*shallow copies item*/
+/* shallow copies item */
 void IDP_SetIndexArray(IDProperty *prop, int index, IDProperty *item)
 {
        IDProperty *old;
 
        BLI_assert(prop->type == IDP_IDPARRAY);
 
+       if (index >= prop->len || index < 0)
+               return;
+
        old = GETPROP(prop, index);
-       if (index >= prop->len || index < 0) return;
-       if (item != old) IDP_FreeProperty(old);
-       
-       memcpy(GETPROP(prop, index), item, sizeof(IDProperty));
+       if (item != old) {
+               IDP_FreeProperty(old);
+
+               memcpy(old, item, sizeof(IDProperty));
+       }
 }
 
 IDProperty *IDP_GetIndexArray(IDProperty *prop, int index)

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to