[Fontconfig] fontconfig: Branch 'master'
Keith Packard
keithp at kemper.freedesktop.org
Sun Sep 17 14:20:25 PDT 2006
configure.in | 2 +-
src/fccache.c | 13 ++++++++++++-
2 files changed, 13 insertions(+), 2 deletions(-)
New commits:
diff-tree cc104e6a910427db009be36ec34125962889ecb8 (from 706a1b367abc4589c7eccfd7cea3af1029bc2d8c)
Author: Keith Packard <keithp at neko.keithp.com>
Date: Sun Sep 17 14:20:18 2006 -0700
Detect and use available random number generator (bug 8308)
Prefer random over lrand48 over rand
diff --git a/configure.in b/configure.in
index 06bdf52..98604c3 100644
--- a/configure.in
+++ b/configure.in
@@ -166,7 +166,7 @@ AC_TYPE_PID_T
# Checks for library functions.
AC_FUNC_VPRINTF
AC_FUNC_MMAP
-AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr strtol getopt getopt_long sysconf ftruncate chsize rand_r])
+AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr strtol getopt getopt_long sysconf ftruncate chsize rand random lrand48])
#
# Checks for iconv
diff --git a/src/fccache.c b/src/fccache.c
index e289c5d..7e2c1be 100644
--- a/src/fccache.c
+++ b/src/fccache.c
@@ -213,6 +213,17 @@ struct _FcCacheSkip {
static FcCacheSkip *fcCacheChains[FC_CACHE_MAX_LEVEL];
static int fcCacheMaxLevel;
+#if HAVE_RANDOM
+# define FcRandom() random()
+#else
+# if HAVE_LRAND48
+# define FcRandom() lrand48()
+# else
+# if HAVE_RAND
+# define FcRandom() rand()
+# endif
+# endif
+#endif
/*
* Generate a random level number, distributed
* so that each level is 1/4 as likely as the one before
@@ -223,7 +234,7 @@ static int
random_level (void)
{
/* tricky bit -- each bit is '1' 75% of the time */
- long int bits = random () | random ();
+ long int bits = FcRandom () | FcRandom ();
int level = 0;
while (++level < FC_CACHE_MAX_LEVEL)
More information about the Fontconfig
mailing list