summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPauli Nieminen <suokkos@gmail.com>2009-07-20 16:25:59 +0300
committerPauli Nieminen <suokkos@gmail.com>2009-08-25 02:50:06 +0300
commitf26c845705aaa691b134021638ee11ababa418ac (patch)
treea8f1577285771e6618eecc9d3cc0812f06436013
parent272b893498ec442a864cbe1d2ff3e3e8857a10ac (diff)
libdrm: Fix random number generator to use unsigned seed.
This fixes wanring about unsigned/signed comparision. Also make it easier to compile test program using -D switch.
-rw-r--r--libdrm/xf86drmRandom.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libdrm/xf86drmRandom.c b/libdrm/xf86drmRandom.c
index ecab9e2d..f488630a 100644
--- a/libdrm/xf86drmRandom.c
+++ b/libdrm/xf86drmRandom.c
@@ -74,7 +74,9 @@
#include <stdio.h>
#include <stdlib.h>
+#ifndef RANDOM_MAIN
#define RANDOM_MAIN 0
+#endif
#if !RANDOM_MAIN
# include "xf86drm.h"
@@ -98,7 +100,7 @@ typedef struct RandomState {
unsigned long q; /* m div a */
unsigned long r; /* m mod a */
unsigned long check;
- long seed;
+ unsigned long seed;
} RandomState;
#if RANDOM_MAIN
@@ -153,7 +155,7 @@ unsigned long drmRandom(void *state)
hi = s->seed / s->q;
lo = s->seed % s->q;
s->seed = s->a * lo - s->r * hi;
- if (s->seed <= 0) s->seed += s->m;
+ if (s->seed > s->m) s->seed += s->m;
return s->seed;
}