Commit 3e8f7d91 authored by Alan Mackenzie's avatar Alan Mackenzie
Browse files

Fix a situation where deletion of a cpp construct throws an error.

parent f0bd0ad5
2010-01-21 Alan Mackenzie <acm@muc.de>
Fix a situation where deletion of a cpp construct throws an error.
* progmodes/cc-engine.el (c-invalidate-state-cache): Before
invoking c-with-all-but-one-cpps-commented-out, check that the
special cpp construct is still in the buffer.
(c-parse-state): Record the special cpp with markers, not numbers.
2010-01-21 Kenichi Handa <handa@m17n.org>
* textmodes/sgml-mode.el (sgml-maybe-name-self): No need to
......
......@@ -2996,9 +2996,11 @@ comment at the start of cc-engine.el for more info."
;; containing point. We can then call `c-invalidate-state-cache-1' without
;; worrying further about macros and template delimiters.
(c-with-<->-as-parens-suppressed
(if c-state-old-cpp-beg
(if (and c-state-old-cpp-beg
(< c-state-old-cpp-beg here))
(c-with-all-but-one-cpps-commented-out
c-state-old-cpp-beg c-state-old-cpp-end
c-state-old-cpp-beg
(min c-state-old-cpp-end here)
(c-invalidate-state-cache-1 here))
(c-with-cpps-commented-out
(c-invalidate-state-cache-1 here)))))
......@@ -3029,8 +3031,9 @@ comment at the start of cc-engine.el for more info."
(c-parse-state-1))
(c-with-cpps-commented-out
(c-parse-state-1))))
(setq c-state-old-cpp-beg here-cpp-beg
c-state-old-cpp-end here-cpp-end))))
(setq c-state-old-cpp-beg (and here-cpp-beg (copy-marker here-cpp-beg t))
c-state-old-cpp-end (and here-cpp-end (copy-marker here-cpp-end t)))
)))
;; Debug tool to catch cache inconsistencies. This is called from
;; 000tests.el.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment