Changeset: ca004025c0e4 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ca004025c0e4
Modified Files:
gdk/gdk_utils.c
Branch: Jan2014
Log Message:
Smarter check for power-of-two.
diffs (20 lines):
diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -1042,10 +1042,12 @@ GDKinit(opt *set, int setlen)
GDK_mmap_minsize = (size_t) strtoll(n[i].value, NULL,
10);
} else if (strcmp("gdk_mmap_pagesize", n[i].name) == 0) {
GDK_mmap_pagesize = (size_t) strtoll(n[i].value, NULL,
10);
- for (i = 12; i < 20; i++)
- if (GDK_mmap_pagesize == ((size_t) 1 << i))
- break;
- if (i == 20)
+ if (GDK_mmap_pagesize < 1 << 12 ||
+ GDK_mmap_pagesize > 1 << 20 ||
+ /* x & (x - 1): turn off rightmost 1 bit;
+ * i.e. if result is zero, x is power of
+ * two */
+ (GDK_mmap_pagesize & (GDK_mmap_pagesize - 1)) != 0)
GDKfatal("GDKinit: gdk_mmap_pagesize must be
power of 2 between 2**12 and 2**20\n");
}
}
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list