[Bf-blender-cvs] [ced9381] master: Simplify defvert_remove_group(), use realloc
Campbell Barton
noreply at git.blender.org
Thu Aug 6 08:57:57 CEST 2015
Commit: ced9381e209b8bd17baa21db74c074676e643866
Author: Campbell Barton
Date: Thu Aug 6 16:52:39 2015 +1000
Branches: master
https://developer.blender.org/rBced9381e209b8bd17baa21db74c074676e643866
Simplify defvert_remove_group(), use realloc
Patch by @chadf
===================================================================
M source/blender/blenkernel/intern/deform.c
===================================================================
diff --git a/source/blender/blenkernel/intern/deform.c b/source/blender/blenkernel/intern/deform.c
index 46d3dbb..6e5747a 100644
--- a/source/blender/blenkernel/intern/deform.c
+++ b/source/blender/blenkernel/intern/deform.c
@@ -843,7 +843,6 @@ void defvert_add_index_notest(MDeformVert *dvert, int defgroup, const float weig
void defvert_remove_group(MDeformVert *dvert, MDeformWeight *dw)
{
if (dvert && dw) {
- MDeformWeight *dw_new;
int i = dw - dvert->dw;
/* Security check! */
@@ -856,20 +855,13 @@ void defvert_remove_group(MDeformVert *dvert, MDeformWeight *dw)
* this deform weight, and reshuffle the others.
*/
if (dvert->totweight) {
- dw_new = MEM_mallocN(sizeof(MDeformWeight) * (dvert->totweight), __func__);
- if (dvert->dw) {
-#if 1 /* since we don't 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);
-#else
- memcpy(dw_new, dvert->dw, sizeof(MDeformWeight) * i);
- memcpy(dw_new + i, dvert->dw + i + 1, sizeof(MDeformWeight) * (dvert->totweight - i));
-#endif
- MEM_freeN(dvert->dw);
+ BLI_assert(dvert->dw != NULL);
+
+ if (i != dvert->totweight) {
+ dvert->dw[i] = dvert->dw[dvert->totweight];
}
- dvert->dw = dw_new;
+
+ dvert->dw = MEM_reallocN(dvert->dw, sizeof(MDeformWeight) * dvert->totweight);
}
else {
/* If there are no other deform weights left then just remove this one. */
More information about the Bf-blender-cvs
mailing list