]> git.eshelyaron.com Git - emacs.git/commitdiff
(tool_bar_item_info): Avoid calling Fget_text_property
authorGerd Moellmann <gerd@gnu.org>
Sat, 17 Nov 2001 10:48:51 +0000 (10:48 +0000)
committerGerd Moellmann <gerd@gnu.org>
Sat, 17 Nov 2001 10:48:51 +0000 (10:48 +0000)
with invalid position.

src/ChangeLog
src/xdisp.c

index 9899ee2b1b40d89d52efda43a79d3d27505c21f5..3be8709b36c928d56e42f733958626d344809340 100644 (file)
@@ -1,3 +1,8 @@
+2001-11-17  Gerd Moellmann  <gerd@gnu.org>
+
+       * xdisp.c (tool_bar_item_info): Avoid calling Fget_text_property
+       with invalid position.
+
 2001-11-16  Eli Zaretskii  <eliz@is.elta.co.il>
 
        * syswait.h (HAVE_SYS_WAIT_H): Undef for ISC 4.1.  Reported by
index 471ffbc8b4aa0506c2241372f48ddaff93c02697..6ff8e9c1cde0fcf2954f9c5d26f456ccb99dd8a2 100644 (file)
@@ -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))
     {