summaryrefslogtreecommitdiff
path: root/pango/pango-context.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2020-06-10 11:36:24 -0400
committerMarco Trevisan (TreviƱo) <mail@3v1n0.net>2021-05-05 16:38:25 +0200
commitac07f75e9c1c560f0e8243426ef4f12a2ff1a7e8 (patch)
treeaaa8e66c2c291941b2b84f55e349befff466b8e3 /pango/pango-context.c
parent6f0e6d7c97d90dd7a7c4b6404cd5c14172b00a6b (diff)
downloadpango-ac07f75e9c1c560f0e8243426ef4f12a2ff1a7e8.tar.gz
itemize: Work around gtk2 brokenness
GTK 2 apparently manages to call pango_itemize_with_base_dir with a non-zero length for a string that contains 0 characters. That in turn causes pango_log2vis_get_embedding_levels to return NULL, and things go downhill from there. A test is included. Fixes: #480 (cherry-picked from commit 279bd525)
Diffstat (limited to 'pango/pango-context.c')
-rw-r--r--pango/pango-context.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/pango/pango-context.c b/pango/pango-context.c
index f0bf11c3..d1c5a734 100644
--- a/pango/pango-context.c
+++ b/pango/pango-context.c
@@ -1571,7 +1571,7 @@ pango_itemize_with_base_dir (PangoContext *context,
g_return_val_if_fail (length >= 0, NULL);
g_return_val_if_fail (length == 0 || text != NULL, NULL);
- if (length == 0)
+ if (length == 0 || g_utf8_strlen (text, length) == 0)
return NULL;
itemize_state_init (&state, context, text, base_dir, start_index, length,