Fix crash when converting BMesh to Mesh with shape keys
The `BM_mesh_bm_to_me()` function copies shape keys from the BMesh to the Mesh. However, it tries to copy the same number of shape keys as are defined on the target mesh. Since the target mesh does not necessarily have the same number of shape keys as the BMesh, this would crash if the target Mesh has more. Found while performing some tests for {D7785}. Differential Revision: https://developer.blender.org/D7818 Reviewed by: brecht
This commit is contained in:
parent
c15bb3b55f
commit
9b9f84b317
Notes:
blender-bot
2023-02-14 05:12:59 +01:00
Referenced by commit 1e186cea7c
, Fix T77584: Edit Mode crash with shape keys created on blank mesh
|
@ -893,6 +893,10 @@ void BM_mesh_bm_to_me(Main *bmain, BMesh *bm, Mesh *me, const struct BMeshToMesh
|
|||
|
||||
j = bm_to_mesh_shape_layer_index_from_kb(bm, currkey);
|
||||
cd_shape_offset = CustomData_get_n_offset(&bm->vdata, CD_SHAPEKEY, j);
|
||||
if (cd_shape_offset < 0) {
|
||||
/* The target Mesh has more shapekeys than the BMesh. */
|
||||
continue;
|
||||
}
|
||||
|
||||
fp = newkey = MEM_callocN(me->key->elemsize * bm->totvert, "currkey->data");
|
||||
oldkey = currkey->data;
|
||||
|
|
Loading…
Reference in New Issue