Prevent stack overflow on very long command lists.

In "el-get-start-process-list", increase "max-specpdl-size" by 100 for
each command in in the list. This allows
"el-get-start-process-list" (but not other functions) to recurse
indefinitely.

This is needed for the emacs-goodies-el recipe, which generates many
build commands and will overflow the default of max-specpdl-size
during the build.
This commit is contained in:
Ryan C. Thompson 2012-06-18 16:39:42 -07:00
parent 4ad42c3ba2
commit 9d3ec6a452

View File

@ -388,7 +388,12 @@ makes it easier to conditionally splice a command into the list.
(error "el-get: %s %s" cname errorm))
(when cbuf (kill-buffer cbuf))
(if next
(el-get-start-process-list package next final-func)
;; Prevent stack overflow on very long command
;; lists. This allows
;; `el-get-start-process-list' (but not other
;; functions) to recurse indefinitely.
(let ((max-specpdl-size (+ 100 max-specpdl-size)))
(el-get-start-process-list package next final-func))
(when (functionp final-func)
(funcall final-func package)))))
;; async case