# HG changeset patch # User Gerd Moellmann # Date 962712456 0 # Node ID 94dcb1b07998f186db6e57dd413e398375dcaea5 # Parent 6742ca2adb2bd1504b6be8f8fb5d3ce7db9421a3 (get_keyelt): Temporarily inhibit GC while evaluating a menu filter. diff -r 6742ca2adb2b -r 94dcb1b07998 src/keymap.c --- a/src/keymap.c Tue Jul 04 11:27:14 2000 +0000 +++ b/src/keymap.c Tue Jul 04 12:07:36 2000 +0000 @@ -592,14 +592,18 @@ /* 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; } }