diff options
author | Pauli Nieminen <suokkos@gmail.com> | 2009-07-20 16:25:59 +0300 |
---|---|---|
committer | Pauli Nieminen <suokkos@gmail.com> | 2009-08-25 02:50:06 +0300 |
commit | f26c845705aaa691b134021638ee11ababa418ac (patch) | |
tree | a8f1577285771e6618eecc9d3cc0812f06436013 | |
parent | 272b893498ec442a864cbe1d2ff3e3e8857a10ac (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.c | 6 |
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; } |