* evas: fix fribidi race condition (perhaps not the right way) with thread rendering.

SVN revision: 47418
This commit is contained in:
Cedric BAIL 2010-03-24 11:06:54 +00:00
parent 34e4c55f37
commit e414c90820
1 changed files with 7 additions and 0 deletions

View File

@ -9,6 +9,10 @@
#define UTF8_BYTES_PER_CHAR 4
#ifdef BUILD_PTHREAD
static LK(fribidi_lock);
#endif
/* FIXME: fribidi_utf8_to_unicode should use char len and not byte len!*/
char *
evas_intl_utf8_to_visual(const char *text,
@ -87,12 +91,15 @@ evas_intl_utf8_to_visual(const char *text,
/* fix arabic context */
evas_intl_arabic_to_context(unicode_in);
#endif
LKL(fribidi_lock);
if (!fribidi_log2vis(unicode_in, len, direction,
unicode_out, tmp_L_to_V_list, tmp_V_to_L_list, tmp_level_list))
{
LKU(fribidi_lock);
len = -2;
goto error5;
}
LKU(fribidi_lock);
text_out = malloc(UTF8_BYTES_PER_CHAR * len + 1);
if (!text_out)