summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-09-01 21:13:54 -0400
committerMatthias Clasen <mclasen@redhat.com>2021-09-01 21:13:54 -0400
commit21a0ba66b1e670b8ce858ae285384f69345508af (patch)
tree54afaca0ba60301f55653bb60b2434894145a608
parentdd21621c1bba8121151c6828abbb68ef403c7d76 (diff)
downloadpango-21a0ba66b1e670b8ce858ae285384f69345508af.tar.gz
Avoid a crash
I was carelessly not initializing prev to NULL.
-rw-r--r--pango/itemize.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/pango/itemize.c b/pango/itemize.c
index 29a1cdff..bd339633 100644
--- a/pango/itemize.c
+++ b/pango/itemize.c
@@ -1056,15 +1056,21 @@ collect_font_scale (PangoContext *context,
entry->attr = attr;
*stack = g_list_prepend (*stack, entry);
- hb_font = pango_font_get_hb_font (prev->analysis.font);
- hb_font_get_scale (hb_font, NULL, &y_scale);
+ if (prev)
+ {
+ hb_font = pango_font_get_hb_font (prev->analysis.font);
+ hb_font_get_scale (hb_font, NULL, &y_scale);
+ }
+ else
+ hb_font = NULL;
switch (((PangoAttrInt *)attr)->value)
{
case PANGO_FONT_SCALE_NONE:
break;
case PANGO_FONT_SCALE_SUPERSCRIPT:
- if (hb_ot_metrics_get_position (hb_font,
+ if (hb_font &&
+ hb_ot_metrics_get_position (hb_font,
HB_OT_METRICS_TAG_SUPERSCRIPT_EM_Y_SIZE,
&y_size))
entry->scale = y_size / (double) y_scale;
@@ -1072,7 +1078,8 @@ collect_font_scale (PangoContext *context,
entry->scale = 1 / 1.2;
break;
case PANGO_FONT_SCALE_SUBSCRIPT:
- if (hb_ot_metrics_get_position (hb_font,
+ if (hb_font &&
+ hb_ot_metrics_get_position (hb_font,
HB_OT_METRICS_TAG_SUBSCRIPT_EM_Y_SIZE,
&y_size))
entry->scale = y_size / (double) y_scale;
@@ -1139,7 +1146,7 @@ static void
apply_font_scale (PangoContext *context,
GList *items)
{
- PangoItem *prev;
+ PangoItem *prev = NULL;
GList *stack = NULL;
for (GList *l = items; l; l = l->next)