[Bf-blender-cvs] [ee64fa07170] refactor-mesh-position-generic: Fix mesh merge function

Hans Goudey noreply at git.blender.org
Thu Sep 15 18:44:14 CEST 2022


Commit: ee64fa071703c480479a6205a89d49fca024d1b9
Author: Hans Goudey
Date:   Thu Sep 15 09:50:14 2022 -0500
Branches: refactor-mesh-position-generic
https://developer.blender.org/rBee64fa071703c480479a6205a89d49fca024d1b9

Fix mesh merge function

===================================================================

M	source/blender/blenkernel/intern/mesh_merge.c

===================================================================

diff --git a/source/blender/blenkernel/intern/mesh_merge.c b/source/blender/blenkernel/intern/mesh_merge.c
index cdc88b3b6ee..fbc4ac3d208 100644
--- a/source/blender/blenkernel/intern/mesh_merge.c
+++ b/source/blender/blenkernel/intern/mesh_merge.c
@@ -204,17 +204,14 @@ Mesh *BKE_mesh_merge_verts(Mesh *mesh,
   const int totedge = mesh->totedge;
   const int totloop = mesh->totloop;
   const int totpoly = mesh->totpoly;
-  const float(*src_positions)[3] = BKE_mesh_positions(mesh);
   const MEdge *src_edges = BKE_mesh_edges(mesh);
   const MPoly *src_polys = BKE_mesh_polys(mesh);
   const MLoop *src_loops = BKE_mesh_loops(mesh);
 
   const int totvert_final = totvert - tot_vtargetmap;
 
-  float(*positions)[3] = MEM_malloc_arrayN(totvert_final, sizeof(float[3]), __func__);
   int *oldv = MEM_malloc_arrayN(totvert_final, sizeof(*oldv), __func__);
   int *newv = MEM_malloc_arrayN(totvert, sizeof(*newv), __func__);
-  STACK_DECLARE(positions);
   STACK_DECLARE(oldv);
 
   /* NOTE: create (totedge + totloop) elements because partially invalid polys due to merge may
@@ -265,7 +262,6 @@ Mesh *BKE_mesh_merge_verts(Mesh *mesh,
   for (i = 0; i < totvert; i++) {
     if (vtargetmap[i] == -1) {
       STACK_PUSH(oldv, i);
-      copy_v3_v3(positions[i], src_positions[c]);
       newv[i] = c++;
     }
     else {
@@ -606,10 +602,6 @@ Mesh *BKE_mesh_merge_verts(Mesh *mesh,
   }
 
   /* Copy over data. #CustomData_add_layer can do this, need to look it up. */
-  if (totvert_final > 0) {
-    memcpy(
-        BKE_mesh_positions_for_write(result), positions, sizeof(float[3]) * STACK_SIZE(positions));
-  }
   if (STACK_SIZE(medge)) {
     memcpy(BKE_mesh_edges_for_write(result), medge, sizeof(MEdge) * STACK_SIZE(medge));
   }
@@ -620,7 +612,6 @@ Mesh *BKE_mesh_merge_verts(Mesh *mesh,
     memcpy(BKE_mesh_polys_for_write(result), mpoly, sizeof(MPoly) * STACK_SIZE(mpoly));
   }
 
-  MEM_freeN(positions);
   MEM_freeN(medge);
   MEM_freeN(mloop);
   MEM_freeN(mpoly);



More information about the Bf-blender-cvs mailing list