Changeset: b16109cbbd21 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b16109cbbd21
Modified Files:
        common/utils/muuid.c
        monetdb5/modules/kernel/microbenchmark.c
        tools/merovingian/daemon/discoveryrunner.c
Branch: Oct2014
Log Message:

Minor changes around calls to rand().


diffs (133 lines):

diff --git a/common/utils/muuid.c b/common/utils/muuid.c
--- a/common/utils/muuid.c
+++ b/common/utils/muuid.c
@@ -52,16 +52,16 @@ generateUUID(void)
        /* try to do some pseudo interesting stuff, and stash it in the
         * format of a UUID to at least return some uniform answer */
        char out[37];
-       union {
-               unsigned char randbuf[16];
-               unsigned short s[8];
-       } r;
+       unsigned char randbuf[16];
 
-       if (RAND_bytes(r.randbuf, 16) >= 0) {
+       if (RAND_bytes(randbuf, 16) >= 0) {
                snprintf(out, sizeof(out),
-                        "%04x%04x-%04x-%04x-%04x-%04x%04x%04x",
-                        r.s[0], r.s[1], r.s[2], r.s[3],
-                        r.s[4], r.s[5], r.s[6], r.s[7]);
+                        "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-"
+                        "%02x%02x%02x%02x%02x%02x",
+                        randbuf[0], randbuf[1], randbuf[2], randbuf[3],
+                        randbuf[4], randbuf[5], randbuf[6], randbuf[7],
+                        randbuf[8], randbuf[9], randbuf[10], randbuf[11],
+                        randbuf[12], randbuf[13], randbuf[14], randbuf[15]);
        } else {
                /* generate something like this:
                 * cefa7a9c-1dd2-11b2-8350-880020adbeef
diff --git a/monetdb5/modules/kernel/microbenchmark.c 
b/monetdb5/modules/kernel/microbenchmark.c
--- a/monetdb5/modules/kernel/microbenchmark.c
+++ b/monetdb5/modules/kernel/microbenchmark.c
@@ -76,12 +76,16 @@ BATrandom(BAT **bn, oid *base, wrd *size
                srand(seed);
        if (*domain == int_nil) {
                BATloop(b, p, q) {
-                       /* coverity[dont_call] */
                        *(int *) Tloc(b, p) = rand();
                }
+#if RAND_MAX < 46340       /* 46340*46340 = 2147395600 < INT_MAX */
+       } else if (*domain > RAND_MAX + 1) {
+               BATloop(b, p, q) {
+                       *(int *) Tloc(b, p) = (rand() * (RAND_MAX + 1) + 
rand()) % *domain;
+               }
+#endif
        } else {
                BATloop(b, p, q) {
-                       /* coverity[dont_call] */
                        *(int *) Tloc(b, p) = rand() % *domain;
                }
        }
@@ -145,7 +149,6 @@ BATuniform(BAT **bn, oid *base, wrd *siz
 
        /* mix BUNs randomly */
        for (r = i = 0; i < n; i++) {
-               /* coverity[dont_call] */
                BUN idx = i + ((r += (BUN) rand()) % (n - i));
                int val;
 
@@ -218,18 +221,15 @@ BATskewed(BAT **bn, oid *base, wrd *size
 
        lastbun = firstbun + skewedSize;
        for(p=firstbun; p <lastbun; p++)
-               /* coverity[dont_call] */
                *(int *) Tloc(b, p) = (int)rand() % skewedDomain;
 
        lastbun = BUNlast(b);
        for(; p <lastbun; p++)
-               /* coverity[dont_call] */
                *(int *) Tloc(b, p) = ((int)rand() % (*domain-skewedDomain)) + 
skewedDomain;
 
        /* mix BUNs randomly */
 
        for (r = i = 0; i < n; i++) {
-               /* coverity[dont_call] */
                BUN idx = i + ((r += (BUN) rand()) % (n - i));
                int val;
 
@@ -332,7 +332,6 @@ BATnormal(BAT **bn, oid *base, wrd *size
 
        /* mix BUNs randomly */
        for (r = 0, i = 0; i < n; i++) {
-               /* coverity[dont_call] */
                BUN idx = i + (BUN) ((r += (unsigned int) rand()) % (n - i));
                int val;
 
@@ -415,7 +414,6 @@ MBMmix(bat *bn, bat *batid)
        firstbun = BUNfirst(b);
        /* mix BUNs randomly */
        for (r = i = 0; i < n; i++) {
-               /* coverity[dont_call] */
                BUN idx = i + ((r += (BUN) rand()) % (n - i));
                int val;
 
diff --git a/tools/merovingian/daemon/discoveryrunner.c 
b/tools/merovingian/daemon/discoveryrunner.c
--- a/tools/merovingian/daemon/discoveryrunner.c
+++ b/tools/merovingian/daemon/discoveryrunner.c
@@ -296,7 +296,6 @@ discoveryRunner(void *d)
        socklen_t peer_addr_len;
        fd_set fds;
        struct timeval tv;
-       int c;
        /* avoid first announce, the HELO will cause an announce when it's
         * received by ourself */
        time_t deadline = 1;
@@ -452,9 +451,9 @@ discoveryRunner(void *d)
                        Mfprintf(_mero_discout, "new neighbour %s (%s)\n", buf 
+ 5, host);
                        /* sleep a random amount of time to avoid an avalanche 
of
                         * ANNC messages flooding the network */
-                       /* coverity[dont_call] */
-                       c = 1 + (int)(2500.0 * (rand() / (RAND_MAX + 1.0)));
-                       sleep_ms(c);
+#ifndef STATIC_CODE_ANALYSIS   /* hide rand() from Coverity */
+                       sleep_ms(1 + (int)(2500.0 * (rand() / (RAND_MAX + 
1.0))));
+#endif
                        /* force an announcement round by dropping the deadline 
*/
                        forceannc = 1;
                        continue;
@@ -518,7 +517,6 @@ discoveryRunner(void *d)
        }
 
        /* craft LEAV messages for each db */
-       c = 0;
        orig = stats;
        while (stats != NULL) {
                readProps(ckv, stats->path);
@@ -528,7 +526,6 @@ discoveryRunner(void *d)
                                        stats->dbname, _mero_hostname,
                                        (unsigned int)getConfNum(_mero_props, 
"port"));
                        broadcast(buf);
-                       c = 1;
                }
                freeConfFile(ckv);
                stats = stats->next;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to