Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2013-05-10 16:06:40 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-05-10 16:06:40 +0400
commit0ac5028f2a3ae17f66887934a1c367446ddec806 (patch)
tree8d4783a5a32b5ab0983879755a3247c3a523793a /source/blender/blenlib/intern/edgehash.c
parent34d73922974aba08e783839e0291aee59f4adc8c (diff)
use unsigned ints for edgehash
Diffstat (limited to 'source/blender/blenlib/intern/edgehash.c')
-rw-r--r--source/blender/blenlib/intern/edgehash.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/source/blender/blenlib/intern/edgehash.c b/source/blender/blenlib/intern/edgehash.c
index 5aa53f44519..3c153cc5998 100644
--- a/source/blender/blenlib/intern/edgehash.c
+++ b/source/blender/blenlib/intern/edgehash.c
@@ -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 EdgeEntry {
struct EdgeHash {
EdgeEntry **buckets;
BLI_mempool *epool;
- int nbuckets, nentries, cursize;
+ unsigned int nbuckets, nentries, cursize;
};
/***/
@@ -109,7 +115,7 @@ void BLI_edgehash_insert(EdgeHash *eh, unsigned int v0, unsigned int v1, void *v
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 @@ bool BLI_edgehash_haskey(EdgeHash *eh, unsigned int v0, unsigned int v1)
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 @@ void BLI_edgehash_free(EdgeHash *eh, EdgeHashFreeFP valfreefp)
struct EdgeHashIterator {
EdgeHash *eh;
- int curBucket;
+ unsigned int curBucket;
EdgeEntry *curEntry;
};
@@ -208,7 +214,7 @@ EdgeHashIterator *BLI_edgehashIterator_new(EdgeHash *eh)
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)