Limit recursion depth of c-forward-<>-arglist-recur (Bug#7722).
* progmodes/cc-engine.el (c-forward-<>-arglist-recur): Set a limit to the recursion depth.
This commit is contained in:
parent
37d1c45d60
commit
af7c5700ca
2 changed files with 17 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
2011-01-27 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* progmodes/cc-engine.el (c-forward-<>-arglist-recur): Set a limit
|
||||
to the recursion depth (Bug#7722).
|
||||
|
||||
2011-01-26 Roy Liu <carsomyr@gmail.com> (tiny change)
|
||||
|
||||
* term/ns-win.el (ns-find-file): Expand ns-input-file with
|
||||
|
|
|
@ -4393,6 +4393,8 @@ comment at the start of cc-engine.el for more info."
|
|||
(goto-char safe-pos)
|
||||
t)))
|
||||
|
||||
(defvar c-forward-<>-arglist-recur-depth)
|
||||
|
||||
(defun c-forward-<>-arglist (all-types)
|
||||
;; The point is assumed to be at a "<". Try to treat it as the open
|
||||
;; paren of an angle bracket arglist and move forward to the
|
||||
|
@ -4418,7 +4420,8 @@ comment at the start of cc-engine.el for more info."
|
|||
;; If `c-record-type-identifiers' is set then activate
|
||||
;; recording of any found types that constitute an argument in
|
||||
;; the arglist.
|
||||
(c-record-found-types (if c-record-type-identifiers t)))
|
||||
(c-record-found-types (if c-record-type-identifiers t))
|
||||
(c-forward-<>-arglist-recur--depth 0))
|
||||
(if (catch 'angle-bracket-arglist-escape
|
||||
(setq c-record-found-types
|
||||
(c-forward-<>-arglist-recur all-types)))
|
||||
|
@ -4434,6 +4437,14 @@ comment at the start of cc-engine.el for more info."
|
|||
nil)))
|
||||
|
||||
(defun c-forward-<>-arglist-recur (all-types)
|
||||
|
||||
;; Temporary workaround for Bug#7722.
|
||||
(when (boundp 'c-forward-<>-arglist-recur--depth)
|
||||
(if (> c-forward-<>-arglist-recur--depth 200)
|
||||
(error "Max recursion depth reached in <> arglist")
|
||||
(setq c-forward-<>-arglist-recur--depth
|
||||
(1+ c-forward-<>-arglist-recur--depth))))
|
||||
|
||||
;; Recursive part of `c-forward-<>-arglist'.
|
||||
;;
|
||||
;; This function might do hidden buffer changes.
|
||||
|
|
Loading…
Add table
Reference in a new issue