[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56652] trunk/blender/source/blender/ blenlib/intern/edgehash.c: use unsigned ints for edgehash

Campbell Barton ideasman42 at gmail.com
Fri May 10 14:06:40 CEST 2013


Revision: 56652
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56652
Author:   campbellbarton
Date:     2013-05-10 12:06:40 +0000 (Fri, 10 May 2013)
Log Message:
-----------
use unsigned ints for edgehash

Modified Paths:
--------------
    trunk/blender/source/blender/blenlib/intern/edgehash.c

Modified: trunk/blender/source/blender/blenlib/intern/edgehash.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/edgehash.c	2013-05-10 11:44:24 UTC (rev 56651)
+++ trunk/blender/source/blender/blenlib/intern/edgehash.c	2013-05-10 12:06:40 UTC (rev 56652)
@@ -33,6 +33,7 @@
 
 #include <stdlib.h>
 #include <string.h>
+#include <limits.h>
 
 #include "MEM_guardedalloc.h"
 
@@ -40,6 +41,11 @@
 #include "BLI_edgehash.h"
 #include "BLI_mempool.h"
 
+#ifdef __GNUC__
+#  pragma GCC diagnostic ignored "-Wstrict-overflow"
+#  pragma GCC diagnostic error "-Wsign-conversion"
+#endif
+
 /**************inlined code************/
 static const unsigned int _ehash_hashsizes[] = {
 	1, 3, 5, 11, 17, 37, 67, 131, 257, 521, 1031, 2053, 4099, 8209,
@@ -70,7 +76,7 @@
 struct EdgeHash {
 	EdgeEntry **buckets;
 	BLI_mempool *epool;
-	int nbuckets, nentries, cursize;
+	unsigned int nbuckets, nentries, cursize;
 };
 
 /***/
@@ -109,7 +115,7 @@
 
 	if (++eh->nentries > eh->nbuckets * 3) {
 		EdgeEntry **old = eh->buckets;
-		int i, nold = eh->nbuckets;
+		unsigned int i, nold = eh->nbuckets;
 
 		eh->nbuckets = _ehash_hashsizes[++eh->cursize];
 		eh->buckets = MEM_mallocN(eh->nbuckets * sizeof(*eh->buckets), "eh buckets");
@@ -160,12 +166,12 @@
 
 int BLI_edgehash_size(EdgeHash *eh)
 {
-	return eh->nentries;
+	return (int)eh->nentries;
 }
 
 void BLI_edgehash_clear(EdgeHash *eh, EdgeHashFreeFP valfreefp)
 {
-	int i;
+	unsigned int i;
 	
 	for (i = 0; i < eh->nbuckets; i++) {
 		EdgeEntry *e;
@@ -199,7 +205,7 @@
 
 struct EdgeHashIterator {
 	EdgeHash *eh;
-	int curBucket;
+	unsigned int curBucket;
 	EdgeEntry *curEntry;
 };
 
@@ -208,7 +214,7 @@
 	EdgeHashIterator *ehi = MEM_mallocN(sizeof(*ehi), "eh iter");
 	ehi->eh = eh;
 	ehi->curEntry = NULL;
-	ehi->curBucket = -1;
+	ehi->curBucket = UINT_MAX;  /* wraps to zero */
 	while (!ehi->curEntry) {
 		ehi->curBucket++;
 		if (ehi->curBucket == ehi->eh->nbuckets)




More information about the Bf-blender-cvs mailing list