diff --git a/source/blender/blenkernel/intern/mesh.cc b/source/blender/blenkernel/intern/mesh.cc index 5a10f87b183..a77e8efcd13 100644 --- a/source/blender/blenkernel/intern/mesh.cc +++ b/source/blender/blenkernel/intern/mesh.cc @@ -233,9 +233,20 @@ static void mesh_free_data(ID *id) { Mesh *mesh = reinterpret_cast(id); - BKE_mesh_clear_geometry_and_metadata(mesh); + CustomData_free(&mesh->vert_data); + CustomData_free(&mesh->edge_data); + CustomData_free(&mesh->fdata_legacy); + CustomData_free(&mesh->corner_data); + CustomData_free(&mesh->face_data); + BLI_freelistN(&mesh->vertex_group_names); + MEM_SAFE_FREE(mesh->active_color_attribute); + MEM_SAFE_FREE(mesh->default_color_attribute); + if (mesh->face_offset_indices) { + blender::implicit_sharing::free_shared_data(&mesh->face_offset_indices, + &mesh->runtime->face_offsets_sharing_info); + } + MEM_SAFE_FREE(mesh->mselect); MEM_SAFE_FREE(mesh->mat); - delete mesh->runtime; }