Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2012-09-28 18:51:33 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-09-28 18:51:33 +0400
commit41965e197c2ba9c62a26402d08d08bf09a5dd0f2 (patch)
treefd9d6c6636bb788a989ca5889863cf34dd70bd41 /source/blender/editors/transform
parentb0fb857ef29014b46f125b6e0c175c14e2a3bb59 (diff)
- transform's createTransCurveVerts was using both CTX_data_edit_object(C) and t->obedit, now only use t->obedit.
- freeing bez-triple handle data was being done in a loop for many types which don't support bezier handle data.
Diffstat (limited to 'source/blender/editors/transform')
-rw-r--r--source/blender/editors/transform/transform_conversions.c13
-rw-r--r--source/blender/editors/transform/transform_generics.c13
2 files changed, 15 insertions, 11 deletions
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index 900f265c6cc..540cbb97609 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -1334,10 +1334,9 @@ static TransDataCurveHandleFlags *initTransDataCurveHandles(TransData *td, struc
return hdata;
}
-static void createTransCurveVerts(bContext *C, TransInfo *t)
+static void createTransCurveVerts(TransInfo *t)
{
- Object *obedit = CTX_data_edit_object(C);
- Curve *cu = obedit->data;
+ Curve *cu = t->obedit->data;
TransData *td = NULL;
Nurb *nu;
BezTriple *bezt;
@@ -1935,9 +1934,9 @@ static void VertsToTransData(TransInfo *t, TransData *td, TransDataExtension *tx
}
}
-static void createTransEditVerts(bContext *C, TransInfo *t)
+static void createTransEditVerts(TransInfo *t)
{
- ToolSettings *ts = CTX_data_tool_settings(C);
+ ToolSettings *ts = t->scene->toolsettings;
TransData *tob = NULL;
TransDataExtension *tx = NULL;
BMEditMesh *em = BMEdit_FromObject(t->obedit);
@@ -6425,10 +6424,10 @@ void createTransData(bContext *C, TransInfo *t)
else if (t->obedit) {
t->ext = NULL;
if (t->obedit->type == OB_MESH) {
- createTransEditVerts(C, t);
+ createTransEditVerts(t);
}
else if (ELEM(t->obedit->type, OB_CURVE, OB_SURF)) {
- createTransCurveVerts(C, t);
+ createTransCurveVerts(t);
}
else if (t->obedit->type == OB_LATTICE) {
createTransLatticeVerts(t);
diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c
index 26ae355a827..b8db0b575cf 100644
--- a/source/blender/editors/transform/transform_generics.c
+++ b/source/blender/editors/transform/transform_generics.c
@@ -1302,12 +1302,17 @@ void postTrans(bContext *C, TransInfo *t)
/* postTrans can be called when nothing is selected, so data is NULL already */
if (t->data) {
- int a;
/* free data malloced per trans-data */
- for (a = 0, td = t->data; a < t->total; a++, td++) {
- if (td->flag & TD_BEZTRIPLE)
- MEM_freeN(td->hdata);
+ if ((t->obedit && ELEM(t->obedit->type, OB_CURVE, OB_SURF)) ||
+ (t->spacetype == SPACE_IPO))
+ {
+ int a;
+ for (a = 0, td = t->data; a < t->total; a++, td++) {
+ if (td->flag & TD_BEZTRIPLE) {
+ MEM_freeN(td->hdata);
+ }
+ }
}
MEM_freeN(t->data);
}