summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog4
-rw-r--r--lisp/emacs-lisp/bytecomp.el18
2 files changed, 20 insertions, 2 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 87794ceb5d2..7e3982a5a70 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,7 @@
+2010-12-27 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * emacs-lisp/bytecomp.el (byte-compile-track-mouse): Don't use #'.
+
2010-12-15 Stefan Monnier <monnier@iro.umontreal.ca>
* emacs-lisp/edebug.el (edebug-eval-defun, edebug-eval):
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 0f7018b9b64..82b5ed3367d 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -441,6 +441,7 @@ specify different fields to sort on."
;(defvar byte-compile-debug nil)
(defvar byte-compile-debug t)
+(setq debug-on-error t)
;; (defvar byte-compile-overwrite-file t
;; "If nil, old .elc files are deleted before the new is saved, and .elc
@@ -4084,8 +4085,21 @@ if LFORMINFO is nil (meaning all bindings are dynamic)."
(defun byte-compile-track-mouse (form)
(byte-compile-form
- `(funcall #'(lambda nil
- (track-mouse ,@(byte-compile-top-level-body (cdr form)))))))
+ ;; Use quote rather that #' here, because we don't want to go
+ ;; through the body again, which would lead to an infinite recursion:
+ ;; "byte-compile-track-mouse" (0xbffc98e4)
+ ;; "byte-compile-form" (0xbffc9c54)
+ ;; "byte-compile-top-level" (0xbffc9fd4)
+ ;; "byte-compile-lambda" (0xbffca364)
+ ;; "byte-compile-closure" (0xbffca6d4)
+ ;; "byte-compile-function-form" (0xbffcaa44)
+ ;; "byte-compile-form" (0xbffcadc0)
+ ;; "mapc" (0xbffcaf74)
+ ;; "byte-compile-funcall" (0xbffcb2e4)
+ ;; "byte-compile-form" (0xbffcb654)
+ ;; "byte-compile-track-mouse" (0xbffcb9d4)
+ `(funcall '(lambda nil
+ (track-mouse ,@(byte-compile-top-level-body (cdr form)))))))
(defun byte-compile-condition-case (form)
(let* ((var (nth 1 form))