summaryrefslogtreecommitdiff
path: root/pango/break.c
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@gnome.org>2006-09-11 21:03:30 +0000
committerBehdad Esfahbod <behdad@src.gnome.org>2006-09-11 21:03:30 +0000
commitfca3a5693a7516bb4871576886609f9baf97ac74 (patch)
treed08ccd84df27b69378321fd241f4d3384e725f9d /pango/break.c
parentb8fac1bfdd04bd0daa078c15e24116efca14f616 (diff)
downloadpango-fca3a5693a7516bb4871576886609f9baf97ac74.tar.gz
Bug 355435 – Invalid calls to pango_map_get_engine() Patch from
2006-09-11 Behdad Esfahbod <behdad@gnome.org> Bug 355435 – Invalid calls to pango_map_get_engine() Patch from Theppitak Karoonboonyanan * pango/break.c (pango_get_log_attrs): * pango/pango-renderer.c (add_underline): * pango/pangofc-font.c (pango_fc_font_find_shaper): * pango/pangowin32.c (pango_win32_font_find_shaper): * pango/pangox.c (pango_x_font_find_shaper): Pass a PangoScript to pango_map_get_engine, not a gunichar!
Diffstat (limited to 'pango/break.c')
-rw-r--r--pango/break.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/pango/break.c b/pango/break.c
index b8a47ccd..7a23ac19 100644
--- a/pango/break.c
+++ b/pango/break.c
@@ -1624,6 +1624,7 @@ pango_get_log_attrs (const char *text,
const char *end;
PangoEngineLang* range_engine;
const char *range_start;
+ PangoScript script;
int chars_in_range;
static guint engine_type_id = 0;
static guint render_type_id = 0;
@@ -1649,8 +1650,8 @@ pango_get_log_attrs (const char *text,
lang_map = pango_find_map (language, engine_type_id, render_type_id);
range_start = text;
- range_engine = (PangoEngineLang*) pango_map_get_engine (lang_map,
- g_utf8_get_char (text));
+ script = pango_script_for_unichar (g_utf8_get_char (text));
+ range_engine = (PangoEngineLang*) pango_map_get_engine (lang_map, script);
analysis.lang_engine = range_engine;
chars_broken = 0;
chars_in_range = 1;
@@ -1664,9 +1665,9 @@ pango_get_log_attrs (const char *text,
g_assert (range_start <= end);
g_assert (end - pos < length);
+ script = pango_script_for_unichar (g_utf8_get_char (pos));
analysis.lang_engine =
- (PangoEngineLang*) pango_map_get_engine (lang_map,
- g_utf8_get_char (pos));
+ (PangoEngineLang*) pango_map_get_engine (lang_map, script);
if (range_engine != analysis.lang_engine)
{