bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#16003: 24.3.50; "Stack overflow in equal" in advice--member-p


From: Stefan Monnier
Subject: bug#16003: 24.3.50; "Stack overflow in equal" in advice--member-p
Date: Fri, 29 Nov 2013 14:09:02 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux)

> I've been getting this kind of errors lately.  Unfortunately, I've been
> unable to reproduce it from `emacs -Q' so far, but here are two
> backtraces, one from `vc-dir-mode', and another from
> `diff-hl-dired-mode'.

The patch below should avoid the problem.
But we really should try and improve `equal' not to fail this way.


        Stefan


=== modified file 'lisp/vc/vc-dispatcher.el'
--- lisp/vc/vc-dispatcher.el    2013-11-28 01:49:25 +0000
+++ lisp/vc/vc-dispatcher.el    2013-11-29 19:03:35 +0000
@@ -239,10 +239,12 @@
      ;; If a process is running, add CODE to the sentinel
      ((eq (process-status proc) 'run)
       (vc-set-mode-line-busy-indicator)
-      (letrec ((fun (lambda (p _msg)
-                      (remove-function (process-sentinel p) fun)
+      (let* ((funsym (make-symbol "fun"))
+             (fun (lambda (p _msg)
+                    (remove-function (process-sentinel p) funsym)
                       (vc--process-sentinel p code))))
-        (add-function :after (process-sentinel proc) fun)))
+        (fset funsym fun)
+        (add-function :after (process-sentinel proc) funsym)))
      (t (error "Unexpected process state"))))
   nil)
 






reply via email to

[Prev in Thread] Current Thread [Next in Thread]