tony2001                Wed Feb 21 14:59:36 2007 UTC

  Modified files:              
    /php-src/ext/gd/libgd       gdft.c 
  Log:
  fix #40578 (imagettftext() multithreading issue)
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/gd/libgd/gdft.c?r1=1.38&r2=1.39&diff_format=u
Index: php-src/ext/gd/libgd/gdft.c
diff -u php-src/ext/gd/libgd/gdft.c:1.38 php-src/ext/gd/libgd/gdft.c:1.39
--- php-src/ext/gd/libgd/gdft.c:1.38    Fri Sep 15 16:14:57 2006
+++ php-src/ext/gd/libgd/gdft.c Wed Feb 21 14:59:36 2007
@@ -192,6 +192,16 @@
 #include "jisx0208.h"
 #endif
 
+extern int any2eucjp (char *, char *, unsigned int);
+
+/* Persistent font cache until explicitly cleared */
+/* Fonts can be used across multiple images */
+
+/* 2.0.16: thread safety (the font cache is shared) */
+gdMutexDeclare(gdFontCacheMutex);
+static gdCache_head_t *fontCache = NULL;
+static FT_Library library;
+
 #define Tcl_UniChar int
 #define TCL_UTF_MAX 3
 static int gdTcl_UtfToUniChar (char *str, Tcl_UniChar * chPtr)
@@ -688,8 +698,10 @@
                                } else {
                                        /* find antialised color */
                                        tc_key.bgcolor = *pixel;
+                                       gdMutexLock(gdFontCacheMutex);
                                        tc_elem = (tweencolor_t *) 
gdCacheGet(tc_cache, &tc_key);
                                        *pixel = tc_elem->tweencolor;
+                                       gdMutexUnlock(gdFontCacheMutex);
                                }
                        }
                }
@@ -703,16 +715,6 @@
        return (!updown) ? (v1 < 0 ? ((v1 - 63) >> 6) : v1 >> 6) : (v1 > 0 ? 
((v1 + 63) >> 6) : v1 >> 6);
 }
 
-extern int any2eucjp (char *, char *, unsigned int);
-
-/* Persistent font cache until explicitly cleared */
-/* Fonts can be used across multiple images */
-
-/* 2.0.16: thread safety (the font cache is shared) */
-gdMutexDeclare(gdFontCacheMutex);
-static gdCache_head_t *fontCache = NULL;
-static FT_Library library;
-
 void gdFontCacheShutdown()
 {
        if (fontCache) {

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to