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>2011-12-15 03:53:46 +0400
committerCampbell Barton <ideasman42@gmail.com>2011-12-15 03:53:46 +0400
commit27a56719a81867942a344f53aacc3e6170f5ba54 (patch)
tree2ef23dc9ac34ccbf1f4d244191e721608b3f0f08 /source/blender/blenkernel/intern/deform.c
parent40a2c1a2921b50edd8b798e79b6bd2a6d94d7bba (diff)
minor vertex group edits
* when freeing a deform weight, use one less memcpy call. * vgroup_delete_object_mode(), was looping on the deform verts twice when it didn't need to.
Diffstat (limited to 'source/blender/blenkernel/intern/deform.c')
-rw-r--r--source/blender/blenkernel/intern/deform.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/deform.c b/source/blender/blenkernel/intern/deform.c
index e14fd6827af..f7f10276ee4 100644
--- a/source/blender/blenkernel/intern/deform.c
+++ b/source/blender/blenkernel/intern/deform.c
@@ -645,9 +645,16 @@ void defvert_remove_group(MDeformVert *dvert, MDeformWeight *dw)
if (dvert->totweight) {
dw_new = MEM_mallocN(sizeof(MDeformWeight)*(dvert->totweight), __func__);
if (dvert->dw) {
+#if 1 /* since we dont care about order, swap this with the last, save a memcpy */
+ if (i != dvert->totweight) {
+ dvert->dw[i]= dvert->dw[dvert->totweight];
+ }
+ memcpy(dw_new, dvert->dw, sizeof(MDeformWeight) * dvert->totweight);
+ MEM_freeN(dvert->dw);
+#else
memcpy(dw_new, dvert->dw, sizeof(MDeformWeight)*i);
memcpy(dw_new+i, dvert->dw+i+1, sizeof(MDeformWeight)*(dvert->totweight-i));
- MEM_freeN(dvert->dw);
+#endif
}
dvert->dw = dw_new;
}