Remove workaround for loopcut and DM stability
Neither me nor Campbell could redo the issue, lets get rid of this workaround and fix it properly if still needed.
This commit is contained in:
@@ -75,7 +75,6 @@ struct BMFace *EDBM_verts_mirror_get_face(struct BMEditMesh *em, struct BMFace *
|
||||
void EDBM_verts_mirror_cache_clear(struct BMEditMesh *em, struct BMVert *v);
|
||||
void EDBM_verts_mirror_cache_end(struct BMEditMesh *em);
|
||||
|
||||
void EDBM_mesh_ensure_valid_dm_hack(struct Scene *scene, struct BMEditMesh *em);
|
||||
void EDBM_mesh_normals_update(struct BMEditMesh *em);
|
||||
void EDBM_mesh_clear(struct BMEditMesh *em);
|
||||
|
||||
|
||||
@@ -517,9 +517,6 @@ static int ringsel_init(bContext *C, wmOperator *op, bool do_cut)
|
||||
lcd->num.unit_type[0] = B_UNIT_NONE;
|
||||
lcd->num.unit_type[1] = B_UNIT_NONE;
|
||||
|
||||
/* XXX, temp, workaround for [# ] */
|
||||
EDBM_mesh_ensure_valid_dm_hack(scene, lcd->em);
|
||||
|
||||
em_setup_viewcontext(C, &lcd->vc);
|
||||
|
||||
ED_region_tag_redraw(lcd->ar);
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
#include "BKE_editmesh.h"
|
||||
#include "BKE_editmesh_bvh.h"
|
||||
|
||||
#include "BKE_object.h" /* XXX. only for EDBM_mesh_ensure_valid_dm_hack() which will be removed */
|
||||
#include "BKE_object.h" /* XXX. only for EDBM_mesh_load(). */
|
||||
|
||||
#include "WM_api.h"
|
||||
#include "WM_types.h"
|
||||
@@ -107,21 +107,6 @@ void EDBM_redo_state_free(BMBackup *backup, BMEditMesh *em, int recalctess)
|
||||
BKE_editmesh_tessface_calc(em);
|
||||
}
|
||||
|
||||
/* hack to workaround multiple operators being called within the same event loop without an update
|
||||
* see: [#31811] */
|
||||
void EDBM_mesh_ensure_valid_dm_hack(Scene *scene, BMEditMesh *em)
|
||||
{
|
||||
if ((((ID *)em->ob->data)->tag & LIB_TAG_ID_RECALC) ||
|
||||
(em->ob->recalc & OB_RECALC_DATA))
|
||||
{
|
||||
/* since we may not have done selection flushing */
|
||||
if ((em->ob->recalc & OB_RECALC_DATA) == 0) {
|
||||
DAG_id_tag_update(&em->ob->id, OB_RECALC_DATA);
|
||||
}
|
||||
BKE_object_handle_update(G.main->eval_ctx, scene, em->ob);
|
||||
}
|
||||
}
|
||||
|
||||
void EDBM_mesh_normals_update(BMEditMesh *em)
|
||||
{
|
||||
BM_mesh_normals_update(em->bm);
|
||||
@@ -412,6 +397,7 @@ void EDBM_mesh_load(Object *ob)
|
||||
* of freed data on scene update, especially in cases when there are dependency
|
||||
* cycles.
|
||||
*/
|
||||
/*
|
||||
for (Object *other_object = G.main->object.first;
|
||||
other_object != NULL;
|
||||
other_object = other_object->id.next)
|
||||
@@ -420,6 +406,7 @@ void EDBM_mesh_load(Object *ob)
|
||||
BKE_object_free_derived_caches(other_object);
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user