Revision: 44889
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44889
Author:   campbellbarton
Date:     2012-03-15 00:57:14 +0000 (Thu, 15 Mar 2012)
Log Message:
-----------
fix [#30542] Shear Vertical Seg Faults Blender
honor the T_FREE_CUSTOMDATA flag.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/transform/transform.c
    trunk/blender/source/blender/editors/transform/transform_conversions.c
    trunk/blender/source/blender/editors/transform/transform_generics.c

Modified: trunk/blender/source/blender/editors/transform/transform.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform.c  2012-03-15 
00:26:20 UTC (rev 44888)
+++ trunk/blender/source/blender/editors/transform/transform.c  2012-03-15 
00:57:14 UTC (rev 44889)
@@ -2454,7 +2454,7 @@
                        initMouseInputMode(t, &t->mouse, 
INPUT_HORIZONTAL_ABSOLUTE);
                        t->customData = NULL;
                }
-               
+
                status = 1;
        }
        

Modified: trunk/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_conversions.c      
2012-03-15 00:26:20 UTC (rev 44888)
+++ trunk/blender/source/blender/editors/transform/transform_conversions.c      
2012-03-15 00:57:14 UTC (rev 44889)
@@ -4204,9 +4204,9 @@
                }
        }
 
-       if (t->customData) {
+       if ((t->customData != NULL) && (t->flag & T_FREE_CUSTOMDATA)) {
                MEM_freeN(t->customData);
-               t->customData= NULL;
+               t->customData = NULL;
        }
        if (t->data) {
                MEM_freeN(t->data); // XXX postTrans usually does this
@@ -4281,7 +4281,8 @@
 
        td = t->data = MEM_callocN(t->total*sizeof(TransData), "TransSeq 
TransData");
        td2d = t->data2d = MEM_callocN(t->total*sizeof(TransData2D), "TransSeq 
TransData2D");
-       tdsq = t->customData= MEM_callocN(t->total*sizeof(TransDataSeq), 
"TransSeq TransDataSeq");
+       tdsq = t->customData = MEM_callocN(t->total*sizeof(TransDataSeq), 
"TransSeq TransDataSeq");
+       t->flag |= T_FREE_CUSTOMDATA;
 
 
 

Modified: trunk/blender/source/blender/editors/transform/transform_generics.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_generics.c 
2012-03-15 00:26:20 UTC (rev 44888)
+++ trunk/blender/source/blender/editors/transform/transform_generics.c 
2012-03-15 00:57:14 UTC (rev 44889)
@@ -1245,7 +1245,7 @@
                /* Can take over freeing t->data and data2d etc... */
                t->customFree(t);
        }
-       else if (t->customData) {
+       else if ((t->customData != NULL) && (t->flag & T_FREE_CUSTOMDATA)) {
                MEM_freeN(t->customData);
        }
 

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to