[Bf-blender-cvs] [f43fb3e] soc-2014-shapekey: Fixed a bad crash while switching shapekeys with topo changes
Grigory Revzin
noreply at git.blender.org
Sat Jul 19 00:46:26 CEST 2014
Commit: f43fb3ee82ea74fd3c0271f06d29e3392502c91e
Author: Grigory Revzin
Date: Sat Jul 19 02:41:37 2014 +0400
https://developer.blender.org/rBf43fb3ee82ea74fd3c0271f06d29e3392502c91e
Fixed a bad crash while switching shapekeys with topo changes
Turned out to be a memory corruption issue due to a stupid 'premature
optimization' attempt, used Valgrind to figure out where that was.
===================================================================
M source/blender/editors/mesh/editmesh_utils.c
===================================================================
diff --git a/source/blender/editors/mesh/editmesh_utils.c b/source/blender/editors/mesh/editmesh_utils.c
index 5db76b6..6166db9 100644
--- a/source/blender/editors/mesh/editmesh_utils.c
+++ b/source/blender/editors/mesh/editmesh_utils.c
@@ -624,12 +624,12 @@ void EDBM_update_scratch_from_active(Object *ob)
KeyBlock *neworigin = BKE_keyblock_from_object(ob);
k->scratch.origin = neworigin;
- if (oldorigin->totelem != neworigin->totelem) {
- if (k->scratch.data) {
- MEM_freeN(k->scratch.data);
- k->scratch.data = MEM_mallocN(sizeof(float) * 3 * neworigin->totelem, __func__);
- }
+
+ if (k->scratch.data) {
+ MEM_freeN(k->scratch.data);
+ k->scratch.data = MEM_mallocN(sizeof(float)* 3 * neworigin->totelem, __func__);
}
+
/* neworigin -> scratch */
BLI_assert(neworigin->totelem == BKE_editmesh_from_object(ob)->bm->totvert);
memcpy(k->scratch.data, neworigin->data, sizeof(float) * 3 * neworigin->totelem);
More information about the Bf-blender-cvs
mailing list