aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohan Bockgård <[email protected]>2012-01-09 17:44:18 +0800
committerChong Yidong <[email protected]>2012-01-09 17:44:18 +0800
commit1ba94341834d2846ca3bde3e5c1154fb365b7360 (patch)
tree64ba0109696553cd0d1d6fa1a0fafe1971f9f6d6
parent3f235eece06afee170bf143cfde2ca8702384e75 (diff)
Avoid crash on composition (backport from trunk).
* xdisp.c (fill_composite_glyph_string): Always set s->face, to avoid a crash (bug#9496).
-rw-r--r--src/ChangeLog5
-rw-r--r--src/xdisp.c6
2 files changed, 11 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index fcaff20727..7cfb3aa61e 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2011-11-11 Johan Bockgård <[email protected]>
+
+ * xdisp.c (fill_composite_glyph_string): Always set s->face, to
+ avoid a crash (bug#9496).
+
2012-01-09 Chong Yidong <[email protected]>
* xdisp.c (note_mouse_highlight): Fix use of uninitialized var.
diff --git a/src/xdisp.c b/src/xdisp.c
index c0c11bf02d..ca61947be8 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -19635,6 +19635,12 @@ fill_composite_glyph_string (s, base_face, overlaps)
}
s->cmp_to = i;
+ if (s->face == NULL)
+ {
+ s->face = base_face->ascii_face;
+ s->font = s->face->font;
+ }
+
/* All glyph strings for the same composition has the same width,
i.e. the width set for the first component of the composition. */
s->width = s->first_glyph->pixel_width;