[Fontconfig] fontconfig: Branch 'master'

Akira TAGOH tagoh at kemper.freedesktop.org
Thu Feb 6 11:41:14 CET 2014


 src/fccompat.c |   35 ++++++++++++++++++++++++-----------
 1 file changed, 24 insertions(+), 11 deletions(-)

New commits:
commit e310d2fac2d874d5aa76c609df70cc7b871c0b6d
Author: Akira TAGOH <akira at tagoh.org>
Date:   Thu Feb 6 19:40:01 2014 +0900

    Fix incompatible API on AIX with random_r and initstate_r
    
    https://bugs.freedesktop.org/show_bug.cgi?id=74603

diff --git a/src/fccompat.c b/src/fccompat.c
index 1c2ba8b..f4f3f5f 100644
--- a/src/fccompat.c
+++ b/src/fccompat.c
@@ -170,14 +170,27 @@ FcRandom(void)
     static struct random_data fcrandbuf;
     static char statebuf[256];
     static FcBool initialized = FcFalse;
+#ifdef _AIX
+    static char *retval;
+    long res;
+#endif
 
     if (initialized != FcTrue)
     {
-	initstate_r(time(NULL), statebuf, 256, &fcrandbuf);
+#ifdef _AIX
+	initstate_r (time (NULL), statebuf, 256, &retval, &fcrandbuf);
+#else
+	initstate_r (time (NULL), statebuf, 256, &fcrandbuf);
+#endif
 	initialized = FcTrue;
     }
 
-    random_r(&fcrandbuf, &result);
+#ifdef _AIX
+    random_r (&res, &fcrandbuf);
+    result = (int32_t)res;
+#else
+    random_r (&fcrandbuf, &result);
+#endif
 #elif HAVE_RANDOM
     static char statebuf[256];
     char *state;
@@ -185,30 +198,30 @@ FcRandom(void)
 
     if (initialized != FcTrue)
     {
-	state = initstate(time(NULL), statebuf, 256);
+	state = initstate (time (NULL), statebuf, 256);
 	initialized = FcTrue;
     }
     else
-	state = setstate(statebuf);
+	state = setstate (statebuf);
 
-    result = random();
+    result = random ();
 
-    setstate(state);
+    setstate (state);
 #elif HAVE_LRAND48
-    result = lrand48();
+    result = lrand48 ();
 #elif HAVE_RAND_R
-    static unsigned int seed = time(NULL);
+    static unsigned int seed = time (NULL);
 
-    result = rand_r(&seed);
+    result = rand_r (&seed);
 #elif HAVE_RAND
     static FcBool initialized = FcFalse;
 
     if (initialized != FcTrue)
     {
-	srand(time(NULL));
+	srand (time (NULL));
 	initialized = FcTrue;
     }
-    result = rand();
+    result = rand ();
 #else
 # error no random number generator function available.
 #endif


More information about the Fontconfig mailing list