diff --git a/src/ChangeLog b/src/ChangeLog index 9899ee2b1b4..3be8709b36c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2001-11-17 Gerd Moellmann + + * xdisp.c (tool_bar_item_info): Avoid calling Fget_text_property + with invalid position. + 2001-11-16 Eli Zaretskii * syswait.h (HAVE_SYS_WAIT_H): Undef for ISC 4.1. Reported by diff --git a/src/xdisp.c b/src/xdisp.c index 471ffbc8b4a..6ff8e9c1cde 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -7945,11 +7945,18 @@ tool_bar_item_info (f, glyph, prop_idx) { Lisp_Object prop; int success_p; + int charpos; + + /* This function can be called asynchronously, which means we must + exclude any possibility that Fget_text_property signals an + error. */ + charpos = min (XSTRING (f->current_tool_bar_string)->size, glyph->charpos); + charpos = max (0, charpos); /* Get the text property `menu-item' at pos. The value of that property is the start index of this item's properties in F->tool_bar_items. */ - prop = Fget_text_property (make_number (glyph->charpos), + prop = Fget_text_property (make_number (charpos), Qmenu_item, f->current_tool_bar_string); if (INTEGERP (prop)) {