Large brace-block initialisation makes CC Mode slow: Fix.
authorAlan Mackenzie <acm@muc.de>
Tue, 13 Dec 2011 18:47:08 +0000 (18:47 +0000)
committerAlan Mackenzie <acm@muc.de>
Tue, 13 Dec 2011 18:47:08 +0000 (18:47 +0000)
commit13d49cbb266f0ead789944508ad0872129885609
treea8515a60dfcd07275049cf07cc2ad9d68e2ad5dc
parent15e0efc7dc8e01b9416def38bc1f18fdabe70256
Large brace-block initialisation makes CC Mode slow: Fix.
Tidy up and accelerate c-in-literal, etc. by using the c-parse-state
routines.  Limit backward searching in c-font-lock-enclosing.decl.

cc-engine.el (c-state-pp-to-literal): Return the pp-state and literal
type in addition to the limits.
(c-state-safe-place): New defun, extracted from c-state-literal-at.
(c-state-literal-at): Use the above new defun.
(c-slow-in-literal, c-fast-in-literal): Removed.
(c-in-literal, c-literal-limits): Amended to use c-state-pp-to-literal.

cc-fonts.el (c-font-lock-enclosing-decls): Check for being in a literal.
Add a limit for backward searching.

cc-mode.el (awk-mode): Don't alias c-in-literal to c-slow-in-literal.
lisp/ChangeLog
lisp/progmodes/cc-engine.el
lisp/progmodes/cc-fonts.el
lisp/progmodes/cc-mode.el