tony2001 Wed Feb 21 15:00:27 2007 UTC
Modified files: (Branch: PHP_5_2)
/php-src NEWS
/php-src/ext/gd/libgd gdft.c
Log:
MFH: fix #40578 (imagettftext() multithreading issue)
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.555&r2=1.2027.2.547.2.556&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.555 php-src/NEWS:1.2027.2.547.2.556
--- php-src/NEWS:1.2027.2.547.2.555 Wed Feb 21 14:25:27 2007
+++ php-src/NEWS Wed Feb 21 15:00:26 2007
@@ -9,6 +9,7 @@
- Added --ri switch to CLI which allows to check extension information.
(Marcus)
- Added tidyNode::getParent() method (John, Nuno)
- Fixed zend_llist_remove_tail (Michael Wallner, Dmitry)
+- Fixed bug #40578 (imagettftext() multithreading issue). (Tony)
- Fixed bug #40576 (double values are truncated to 6 decimal digits when
encoding). (Tony)
- Fixed bug #40560 (DIR functions do not work on root UNC path). (Dmitry)
http://cvs.php.net/viewvc.cgi/php-src/ext/gd/libgd/gdft.c?r1=1.36.4.2&r2=1.36.4.3&diff_format=u
Index: php-src/ext/gd/libgd/gdft.c
diff -u php-src/ext/gd/libgd/gdft.c:1.36.4.2
php-src/ext/gd/libgd/gdft.c:1.36.4.3
--- php-src/ext/gd/libgd/gdft.c:1.36.4.2 Fri Sep 15 16:11:39 2006
+++ php-src/ext/gd/libgd/gdft.c Wed Feb 21 15:00:26 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