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
path: root/source
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2008-04-15 22:07:04 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2008-04-15 22:07:04 +0400
commitd5c1042ed8af1d68e742b89358e9fff3c928e0ba (patch)
treef0f9d7d8ad250147ba70ccb9525da28824bff6d8 /source
parent6e6a6cdf553920c37f22746a0063bf3250f09634 (diff)
Bugfix: editmode mesh transform was doing slow x-axis mirror
computations with the option disabled. Also small memory usage optimization for vertex groups.
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/intern/customdata.c13
-rw-r--r--source/blender/src/transform_conversions.c2
2 files changed, 10 insertions, 5 deletions
diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c
index d8ce311b5ca..663c94e5155 100644
--- a/source/blender/blenkernel/intern/customdata.c
+++ b/source/blender/blenkernel/intern/customdata.c
@@ -97,11 +97,16 @@ static void layerCopy_mdeformvert(const void *source, void *dest,
for(i = 0; i < count; ++i) {
MDeformVert *dvert = (MDeformVert *)((char *)dest + i * size);
- MDeformWeight *dw = MEM_callocN(dvert->totweight * sizeof(*dw),
- "layerCopy_mdeformvert dw");
- memcpy(dw, dvert->dw, dvert->totweight * sizeof(*dw));
- dvert->dw = dw;
+ if(dvert->totweight) {
+ MDeformWeight *dw = MEM_callocN(dvert->totweight * sizeof(*dw),
+ "layerCopy_mdeformvert dw");
+
+ memcpy(dw, dvert->dw, dvert->totweight * sizeof(*dw));
+ dvert->dw = dw;
+ }
+ else
+ dvert->dw = NULL;
}
}
diff --git a/source/blender/src/transform_conversions.c b/source/blender/src/transform_conversions.c
index 7efcdb93cbc..24ead9a52c7 100644
--- a/source/blender/src/transform_conversions.c
+++ b/source/blender/src/transform_conversions.c
@@ -2012,7 +2012,7 @@ static void createTransEditVerts(TransInfo *t)
int propmode = t->flag & T_PROP_EDIT;
int mirror = 0;
- if ((t->context & CTX_NO_MIRROR) == 0 || (G.scene->toolsettings->editbutflag & B_MESH_X_MIRROR))
+ if ((t->context & CTX_NO_MIRROR) == 0 && (G.scene->toolsettings->editbutflag & B_MESH_X_MIRROR))
{
mirror = 1;
}