summaryrefslogtreecommitdiff
path: root/src/dispextern.h
diff options
context:
space:
mode:
authorPhilip <pipcet@gmail.com>2015-09-05 11:08:57 +0300
committerEli Zaretskii <eliz@gnu.org>2015-09-05 11:08:57 +0300
commit90937cbfe48229028d839a5e8c5815020e84b235 (patch)
tree0972dc7b4397159972b951d370bbc6e2fb08f145 /src/dispextern.h
parent8a6260e1e14ab1523c195001454c98aaa044ea64 (diff)
downloademacs-90937cbfe48229028d839a5e8c5815020e84b235.tar.gz
Fix segfaults due to using a stale face ID
* src/xdisp.c (forget_escape_and_glyphless_faces): New function. (display_echo_area_1, redisplay_internal): Call it to avoid reusing stale face IDs for 'escape-glyph' and 'glyphless-char' faces, which could case a segfault if the frame's face cache was freed since the last redisplay. (Bug#21394) * src/xfaces.c (free_realized_faces): Call forget_escape_and_glyphless_faces. * src/dispextern.h (forget_escape_and_glyphless_faces): Add prototype. Copyright-paperwork-exempt: yes
Diffstat (limited to 'src/dispextern.h')
-rw-r--r--src/dispextern.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/dispextern.h b/src/dispextern.h
index 37ebab04ddf..e5adeab0dc0 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -3245,6 +3245,7 @@ extern ptrdiff_t compute_display_string_end (ptrdiff_t,
struct bidi_string_data *);
extern void produce_stretch_glyph (struct it *);
extern int merge_glyphless_glyph_face (struct it *);
+extern void forget_escape_and_glyphless_faces (void);
extern void get_font_ascent_descent (struct font *, int *, int *);