[Bf-blender-cvs] [d01bb0b] master: Avoid memcpy to self when validating UV layer name

Sergey Sharybin noreply at git.blender.org
Mon Jan 13 11:27:53 CET 2014


Commit: d01bb0b8b6653f9a9e36c5d992f80d20405ee715
Author: Sergey Sharybin
Date:   Mon Jan 13 16:26:10 2014 +0600
https://developer.blender.org/rBd01bb0b8b6653f9a9e36c5d992f80d20405ee715

Avoid memcpy to self when validating UV layer name

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

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

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

diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c
index b2738f5..0905ce1 100644
--- a/source/blender/blenkernel/intern/mesh.c
+++ b/source/blender/blenkernel/intern/mesh.c
@@ -647,8 +647,13 @@ bool BKE_mesh_uv_cdlayer_rename_index(Mesh *me, const int poly_index, const int
 	cdlu = &ldata->layers[loop_index];
 	cdlf = fdata && do_tessface ? &fdata->layers[face_index] : NULL;
 
-	BLI_strncpy(cdlp->name, new_name, sizeof(cdlp->name));
-	CustomData_set_layer_unique_name(pdata, cdlp - pdata->layers);
+	if (cdlp->name != name) {
+		/* Mesh validate passes a name from the CD layer as the new name,
+		 * Avoid memcpy from self to self in this case.
+		 */
+		BLI_strncpy(cdlp->name, new_name, sizeof(cdlp->name));
+		CustomData_set_layer_unique_name(pdata, cdlp - pdata->layers);
+	}
 
 	/* Loop until we do have exactly the same name for all layers! */
 	for (i = 1; (strcmp(cdlp->name, cdlu->name) != 0 || (cdlf && strcmp(cdlp->name, cdlf->name) != 0)); i++) {




More information about the Bf-blender-cvs mailing list