summaryrefslogtreecommitdiff
path: root/lisp/subr.el
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>2014-03-21 19:16:26 -0400
committerRichard M. Stallman <rms@gnu.org>2014-03-21 19:16:26 -0400
commit16ec0742ffd77057d58a9cf203ead02e06a645d5 (patch)
tree79707450717d174b15348fdf8e98e878804429ad /lisp/subr.el
parent664ed753351084e8d53c00ccbfc4d4fefcd78e05 (diff)
Avoid GC crashes.
* lisp/subr.el (set-transient-map): Clear out function and value of the temporary symbol when we're done with it.
Diffstat (limited to 'lisp/subr.el')
-rw-r--r--lisp/subr.el5
1 files changed, 4 insertions, 1 deletions
diff --git a/lisp/subr.el b/lisp/subr.el
index e4350bffff..1246efedea 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -4312,7 +4312,10 @@ lookup sequence then continues."
(t (funcall keep-pred)))
(internal-pop-keymap map 'overriding-terminal-local-map)
(remove-hook 'pre-command-hook clearfun)
- (when on-exit (funcall on-exit))))))
+ (when on-exit (funcall on-exit))
+;; Comment out the fset if you want to debug the GC bug.
+ (fset clearfun nil)
+ (set clearfun nil)))))
(add-hook 'pre-command-hook clearfun)
(internal-push-keymap map 'overriding-terminal-local-map)))