+2000-07-04 Gerd Moellmann <gerd@gnu.org>
+
+ * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
+ a menu filter.
+
2000-07-04 Kenichi Handa <handa@etl.go.jp>
* composite.h (make_composition_value_copy): Extern it.
/* If there's a `:filter FILTER', apply FILTER to the
menu-item's definition to get the real definition to
- use. */
+ use. Temporarily inhibit GC while evaluating FILTER,
+ because not functions calling get_keyelt are prepared
+ for a GC. */
for (; CONSP (tem) && CONSP (XCDR (tem)); tem = XCDR (tem))
if (EQ (XCAR (tem), QCfilter))
{
+ int count = inhibit_garbage_collection ();
Lisp_Object filter;
filter = XCAR (XCDR (tem));
filter = list2 (filter, list2 (Qquote, object));
object = menu_item_eval_property (filter);
+ unbind_to (count, Qnil);
break;
}
}