Fix: issue in previous commit
Many tests started failing after 173c41c1c0
due to memory leaks.
This commit is contained in:
parent
173c41c1c0
commit
65083472ec
|
@ -311,6 +311,8 @@ void mesh_calc_edges(Mesh &mesh, bool keep_existing_edges, bool select_new_edges
|
|||
|
||||
void mesh_flip_faces(Mesh &mesh, const IndexMask &selection);
|
||||
|
||||
void mesh_ensure_required_data_layers(Mesh &mesh);
|
||||
|
||||
/** Set mesh vertex normals to known-correct values, avoiding future lazy computation. */
|
||||
void mesh_vert_normals_assign(Mesh &mesh, Span<float3> vert_normals);
|
||||
|
||||
|
|
|
@ -477,7 +477,7 @@ void mesh_ensure_default_color_attribute_on_add(Mesh &mesh,
|
|||
mesh.default_color_attribute = BLI_strdupn(id.name().data(), id.name().size());
|
||||
}
|
||||
|
||||
static void mesh_ensure_cdlayers_primary(Mesh &mesh)
|
||||
void mesh_ensure_required_data_layers(Mesh &mesh)
|
||||
{
|
||||
MutableAttributeAccessor attributes = mesh.attributes_for_write();
|
||||
AttributeInitConstruct attribute_init;
|
||||
|
@ -548,8 +548,6 @@ void BKE_mesh_clear_geometry_and_metadata(Mesh *mesh)
|
|||
BKE_mesh_runtime_clear_cache(mesh);
|
||||
mesh_clear_geometry(*mesh);
|
||||
clear_attribute_names(*mesh);
|
||||
|
||||
blender::bke::mesh_ensure_cdlayers_primary(*mesh);
|
||||
}
|
||||
|
||||
static void mesh_tessface_clear_intern(Mesh *mesh, int free_customdata)
|
||||
|
@ -698,7 +696,7 @@ Mesh *BKE_mesh_new_nomain(const int verts_num,
|
|||
mesh->faces_num = faces_num;
|
||||
mesh->corners_num = corners_num;
|
||||
|
||||
blender::bke::mesh_ensure_cdlayers_primary(*mesh);
|
||||
blender::bke::mesh_ensure_required_data_layers(*mesh);
|
||||
BKE_mesh_face_offsets_ensure_alloc(mesh);
|
||||
|
||||
return mesh;
|
||||
|
@ -800,7 +798,7 @@ Mesh *BKE_mesh_new_nomain_from_template_ex(const Mesh *me_src,
|
|||
|
||||
/* The destination mesh should at least have valid primary CD layers,
|
||||
* even in cases where the source mesh does not. */
|
||||
blender::bke::mesh_ensure_cdlayers_primary(*me_dst);
|
||||
blender::bke::mesh_ensure_required_data_layers(*me_dst);
|
||||
BKE_mesh_face_offsets_ensure_alloc(me_dst);
|
||||
if (do_tessface && !CustomData_get_layer(&me_dst->fdata_legacy, CD_MFACE)) {
|
||||
CustomData_add_layer(&me_dst->fdata_legacy, CD_MFACE, CD_SET_DEFAULT, me_dst->totface_legacy);
|
||||
|
|
|
@ -201,6 +201,8 @@ static void rna_Mesh_clear_geometry(Mesh *mesh)
|
|||
BKE_mesh_clear_geometry_and_metadata(mesh);
|
||||
BKE_animdata_free(&mesh->id, false);
|
||||
|
||||
blender::bke::mesh_ensure_required_data_layers(*mesh);
|
||||
|
||||
DEG_id_tag_update(&mesh->id, ID_RECALC_GEOMETRY_ALL_MODES);
|
||||
WM_main_add_notifier(NC_GEOM | ND_DATA, mesh);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue