From f76a1696f903b90a192a626968dd0731e94b9c91 Mon Sep 17 00:00:00 2001 From: Tor Lillqvist Date: Thu, 10 Sep 2009 18:46:33 +0300 Subject: Revert "[basic-win32] Increase performance of Uniscribe code" Unfortunately this change breaks complex script shaping. This reverts commit f4643a7c1a725606fe37308ed60688d8d65d8816. --- modules/basic/basic-win32.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/modules/basic/basic-win32.c b/modules/basic/basic-win32.c index 60a86532..ecb139e0 100644 --- a/modules/basic/basic-win32.c +++ b/modules/basic/basic-win32.c @@ -581,7 +581,7 @@ itemize_shape_and_place (PangoFont *font, #endif items[item].a.fRTL = analysis->level % 2; - if ((*script_shape) (hdc, script_cache, + if ((*script_shape) (hdc, &script_cache[script], wtext + items[item].iCharPos, itemlen, G_N_ELEMENTS (iglyphs), &items[item].a, @@ -611,7 +611,7 @@ itemize_shape_and_place (PangoFont *font, nglyphs, glyphs->log_clusters + ng, char_offset); - if ((*script_place) (hdc, script_cache, iglyphs, nglyphs, + if ((*script_place) (hdc, &script_cache[script], iglyphs, nglyphs, visattrs, &items[item].a, advances, offsets, &abc)) { @@ -673,7 +673,7 @@ uniscribe_shape (PangoFont *font, long wlen; int i; gboolean retval = TRUE; - SCRIPT_CACHE script_cache; + SCRIPT_CACHE script_cache[100]; if (!pango_win32_font_select_font (font, hdc)) return FALSE; @@ -684,10 +684,11 @@ uniscribe_shape (PangoFont *font, if (retval) { - memset (&script_cache, 0, sizeof (script_cache)); + memset (script_cache, 0, sizeof (script_cache)); retval = itemize_shape_and_place (font, hdc, wtext, wlen, analysis, glyphs, script_cache); - if (script_cache) - (*script_free_cache)(&script_cache); + for (i = 0; i < G_N_ELEMENTS (script_cache); i++) + if (script_cache[i]) + (*script_free_cache)(&script_cache[i]); } if (retval) -- cgit v1.2.1