Hi, I am trying to wrap my head around the BMesh datastructures and architecture while attempting to fix this bug:
Dissolve with multiple verts crashes blender: http://projects.blender.org/tracker/index.php?func=detail&aid=28445&group_id=9&atid=516 The crash seems to be coming when flags are tried to be set on the faces through bmesh_systag_elements function and the BMFlagLayer flags memory is not allocated. This only happens when BM_Join_TwoFaces calls the BM_Join_Faces and passes the face with null flags to the bmesh_systag_elements function. These memory are only not allocated for the loop's faces. See the /source/blender/bmesh/intern/bmesh_mods.c function: BM_Dissolve_Disk where f= v->e->l->f; before passing the face to BM_Join_Faces. *Whats the 2 and 3-valence vertices concepts? Any links?* I have noticed that in file /source/blender/bmesh/intern/bmesh_operators.c function alloc_flag_layer(BMesh *bm) there is a comment "/*now go through and memcpy all the flags. Loops don't get a flag layer at this time...*/". *Any reason why*? Regards, Ahmad Luqman _______________________________________________ Bf-committers mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-committers
