[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54921] trunk/blender/source/blender: fix for bmesh regression similar to last revision r54920.

Campbell Barton ideasman42 at gmail.com
Thu Feb 28 05:18:02 CET 2013


Revision: 54921
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54921
Author:   campbellbarton
Date:     2013-02-28 04:18:01 +0000 (Thu, 28 Feb 2013)
Log Message:
-----------
fix for bmesh regression similar to last revision r54920. only effected loading old blend files without edge data.

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54920

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/mesh.c
    trunk/blender/source/blender/editors/mesh/editface.c

Modified: trunk/blender/source/blender/blenkernel/intern/mesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mesh.c	2013-02-28 03:39:41 UTC (rev 54920)
+++ trunk/blender/source/blender/blenkernel/intern/mesh.c	2013-02-28 04:18:01 UTC (rev 54921)
@@ -887,12 +887,11 @@
                              int old, MEdge **alledge, int *_totedge)
 {
 	MPoly *mpoly;
-	MLoop *mloop;
 	MFace *mface;
 	MEdge *medge;
 	EdgeHash *hash = BLI_edgehash_new();
 	struct edgesort *edsort, *ed;
-	int a, b, totedge = 0, final = 0;
+	int a, totedge = 0, final = 0;
 
 	/* we put all edges in array, sort them, and detect doubles that way */
 
@@ -973,13 +972,16 @@
 	
 	mpoly = allpoly;
 	for (a = 0; a < totpoly; a++, mpoly++) {
-		mloop = allloop + mpoly->loopstart;
-		for (b = 0; b < mpoly->totloop; b++) {
-			int v1, v2;
-			
-			v1 = mloop[b].v;
-			v2 = ME_POLY_LOOP_NEXT(mloop, mpoly, b)->v;
-			mloop[b].e = GET_INT_FROM_POINTER(BLI_edgehash_lookup(hash, v1, v2));
+		MLoop *ml, *ml_next;
+		int i = mpoly->totloop;
+
+		ml_next = allloop + mpoly->loopstart;  /* first loop */
+		ml = &ml_next[i - 1];                  /* last loop */
+
+		while (i-- != 0) {
+			ml->e = GET_INT_FROM_POINTER(BLI_edgehash_lookup(hash, ml->v, ml_next->v));
+			ml = ml_next;
+			ml_next++;
 		}
 	}
 	

Modified: trunk/blender/source/blender/editors/mesh/editface.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editface.c	2013-02-28 03:39:41 UTC (rev 54920)
+++ trunk/blender/source/blender/editors/mesh/editface.c	2013-02-28 04:18:01 UTC (rev 54921)
@@ -181,12 +181,11 @@
 
 static void hash_add_face(EdgeHash *ehash, MPoly *mp, MLoop *mloop)
 {
-	MLoop *ml;
-	MLoop *ml_next;
+	MLoop *ml, *ml_next;
 	int i = mp->totloop;
 
-	ml_next = mloop;
-	ml = &mloop[mp->totloop - 1];
+	ml_next = mloop;       /* first loop */
+	ml = &ml_next[i - 1];  /* last loop */
 
 	while (i-- != 0) {
 		BLI_edgehash_insert(ehash, ml->v, ml_next->v, NULL);




More information about the Bf-blender-cvs mailing list