summaryrefslogtreecommitdiff
path: root/src/glx/x11/glxhash.c
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2009-09-20 10:36:45 -0600
committerBrian Paul <brianp@vmware.com>2009-09-20 10:36:45 -0600
commitebf2710b2fd21ae9a6604c015ca7a948589f5a8c (patch)
treedd6b9da40b44824a1a4bdcfb4b3b2fc7edef3233 /src/glx/x11/glxhash.c
parented4076b5b8c5d3c024e291f42a8730b4f71226c9 (diff)
parent82c2f7756af19f0a19aeda7ea1f627262e4561c0 (diff)
Merge branch 'mesa_7_6_branch'
Conflicts: src/mesa/drivers/dri/intel/intel_clear.c
Diffstat (limited to 'src/glx/x11/glxhash.c')
-rw-r--r--src/glx/x11/glxhash.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/glx/x11/glxhash.c b/src/glx/x11/glxhash.c
index 74cd4f344d..7d28ada49c 100644
--- a/src/glx/x11/glxhash.c
+++ b/src/glx/x11/glxhash.c
@@ -87,9 +87,13 @@
#define HASH_ALLOC malloc
#define HASH_FREE free
-#define HASH_RANDOM_DECL
-#define HASH_RANDOM_INIT(seed) srandom(seed)
-#define HASH_RANDOM random()
+#define HASH_RANDOM_DECL struct random_data rd; int32_t rv; char rs[256]
+#define HASH_RANDOM_INIT(seed) \
+ do { \
+ (void) memset(&rd, 0, sizeof(rd)); \
+ (void) initstate_r(seed, rs, sizeof(rs), &rd); \
+ } while(0)
+#define HASH_RANDOM ((void) random_r(&rd, &rv), rv)
#define HASH_RANDOM_DESTROY
typedef struct __glxHashBucket