[Bf-blender-cvs] [d598dcd] master: Code cleanup: remove scdata from ScanFillContext

Campbell Barton noreply at git.blender.org
Tue Feb 4 19:40:29 CET 2014


Commit: d598dcd4618f664db64e6cefdeb4e003d3524dab
Author: Campbell Barton
Date:   Wed Feb 5 05:39:28 2014 +1100
https://developer.blender.org/rBd598dcd4618f664db64e6cefdeb4e003d3524dab

Code cleanup: remove scdata from ScanFillContext

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

M	source/blender/blenlib/BLI_scanfill.h
M	source/blender/blenlib/intern/scanfill.c

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

diff --git a/source/blender/blenlib/BLI_scanfill.h b/source/blender/blenlib/BLI_scanfill.h
index d77640e..4639ddb 100644
--- a/source/blender/blenlib/BLI_scanfill.h
+++ b/source/blender/blenlib/BLI_scanfill.h
@@ -51,7 +51,6 @@ typedef struct ScanFillContext {
 	unsigned short poly_nr;
 
 	/* private */
-	struct ScanFillVertLink *_scdata;
 	struct MemArena *arena;
 } ScanFillContext;
 
diff --git a/source/blender/blenlib/intern/scanfill.c b/source/blender/blenlib/intern/scanfill.c
index 2c095bc..5ef8f33 100644
--- a/source/blender/blenlib/intern/scanfill.c
+++ b/source/blender/blenlib/intern/scanfill.c
@@ -270,7 +270,7 @@ static bool addedgetoscanvert(ScanFillVertLink *sc, ScanFillEdge *eed)
 }
 
 
-static ScanFillVertLink *addedgetoscanlist(ScanFillContext *sf_ctx, ScanFillEdge *eed, unsigned int len)
+static ScanFillVertLink *addedgetoscanlist(ScanFillVertLink *scdata, ScanFillEdge *eed, unsigned int len)
 {
 	/* inserts edge at correct location in ScanFillVertLink list */
 	/* returns sc when edge already exists */
@@ -292,7 +292,7 @@ static ScanFillVertLink *addedgetoscanlist(ScanFillContext *sf_ctx, ScanFillEdge
 	}
 	/* find location in list */
 	scsearch.vert = eed->v1;
-	sc = (ScanFillVertLink *)bsearch(&scsearch, sf_ctx->_scdata, len,
+	sc = (ScanFillVertLink *)bsearch(&scsearch, scdata, len,
 	                                 sizeof(ScanFillVertLink), vergscdata);
 
 	if (UNLIKELY(sc == NULL)) {
@@ -425,6 +425,7 @@ static void splitlist(ScanFillContext *sf_ctx, ListBase *tempve, ListBase *tempe
 
 static unsigned int scanfill(ScanFillContext *sf_ctx, PolyFill *pf, const int flag)
 {
+	ScanFillVertLink *scdata;
 	ScanFillVertLink *sc = NULL, *sc1;
 	ScanFillVert *eve, *v1, *v2, *v3;
 	ScanFillEdge *eed, *eed_next, *ed1, *ed2, *ed3;
@@ -470,7 +471,7 @@ static unsigned int scanfill(ScanFillContext *sf_ctx, PolyFill *pf, const int fl
 	/* STEP 1: make using FillVert and FillEdge lists a sorted
 	 * ScanFillVertLink list
 	 */
-	sc = sf_ctx->_scdata = (ScanFillVertLink *)MEM_callocN(pf->verts * sizeof(ScanFillVertLink), "Scanfill1");
+	sc = scdata = (ScanFillVertLink *)MEM_callocN(pf->verts * sizeof(ScanFillVertLink), "Scanfill1");
 	verts = 0;
 	for (eve = sf_ctx->fillvertbase.first; eve; eve = eve->next) {
 		if (eve->poly_nr == nr) {
@@ -484,7 +485,7 @@ static unsigned int scanfill(ScanFillContext *sf_ctx, PolyFill *pf, const int fl
 		}
 	}
 
-	qsort(sf_ctx->_scdata, verts, sizeof(ScanFillVertLink), vergscdata);
+	qsort(scdata, verts, sizeof(ScanFillVertLink), vergscdata);
 
 	if (flag & BLI_SCANFILL_CALC_REMOVE_DOUBLES) {
 		for (eed = sf_ctx->filledgebase.first; eed; eed = eed_next) {
@@ -510,7 +511,7 @@ static unsigned int scanfill(ScanFillContext *sf_ctx, PolyFill *pf, const int fl
 					eed->v2 = eed->v2->tmp.v;
 			}
 			if (eed->v1 != eed->v2) {
-				addedgetoscanlist(sf_ctx, eed, verts);
+				addedgetoscanlist(scdata, eed, verts);
 			}
 		}
 	}
@@ -519,7 +520,7 @@ static unsigned int scanfill(ScanFillContext *sf_ctx, PolyFill *pf, const int fl
 			eed_next = eed->next;
 			BLI_remlink(&sf_ctx->filledgebase, eed);
 			if (eed->v1 != eed->v2) {
-				addedgetoscanlist(sf_ctx, eed, verts);
+				addedgetoscanlist(scdata, eed, verts);
 			}
 		}
 	}
@@ -549,7 +550,7 @@ static unsigned int scanfill(ScanFillContext *sf_ctx, PolyFill *pf, const int fl
 		maxface = verts - 2;       /* when we don't calc any holes, we assume face is a non overlapping loop */
 	}
 
-	sc = sf_ctx->_scdata;
+	sc = scdata;
 	for (a = 0; a < verts; a++) {
 		/* printf("VERTEX %d index %d\n", a, sc->vert->tmp.u); */
 		/* set connectflags  */
@@ -678,7 +679,7 @@ static unsigned int scanfill(ScanFillContext *sf_ctx, PolyFill *pf, const int fl
 					ed3->v2->edge_tot++;
 					
 					/* printf("add new edge %x %x\n", v1, v3); */
-					sc1 = addedgetoscanlist(sf_ctx, ed3, verts);
+					sc1 = addedgetoscanlist(scdata, ed3, verts);
 					
 					if (sc1) {  /* ed3 already exists: remove if a boundary */
 						/* printf("Edge exists\n"); */
@@ -716,8 +717,7 @@ static unsigned int scanfill(ScanFillContext *sf_ctx, PolyFill *pf, const int fl
 		sc++;
 	}
 
-	MEM_freeN(sf_ctx->_scdata);
-	sf_ctx->_scdata = NULL;
+	MEM_freeN(scdata);
 
 	BLI_assert(totface <= maxface);




More information about the Bf-blender-cvs mailing list