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

Reply via email to