GNU bug report logs -
#10480
24.0.92; cc-mode breakage due to "Large brace-block initialisation makes CC Mode slow: Fix"
Previous Next
Reported by: Alex <alex <at> bennee.com>
Date: Wed, 11 Jan 2012 17:05:02 UTC
Severity: important
Merged with 10463
Found in version 24.0.92
Done: Alan Mackenzie <acm <at> muc.de>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
In article <mailman.1652.1326301490.15002.bug-gnu-emacs <at> gnu.org> you
wrote:
>
> I'm currently tracking the Emacs BZR/GIT repo for the current bleeding
> edge code. It seems it broke over Christmas. While editing C code I
> was
> constantly hit with back traces like the following:
> Debugger entered--Lisp error: (args-out-of-range 10389 15607)
> parse-partial-sexp(10389 15607)
> c-literal-limits(nil nil t)
> c-indent-new-comment-line(t)
> default-indent-new-line(t)
> do-auto-fill()
> apply(do-auto-fill nil)
> c-mask-paragraph(nil t do-auto-fill)
> c-do-auto-fill()
> self-insert-command(1)
> newline()
> newline-and-indent()
> call-interactively(newline-and-indent nil nil)
Sorry about this, and thanks for reporting the bug.
> This often left emacs unusable, sometime wiping the current editing
> buffer. Bisecting through the code tree I found it was the Large
> brace-block fix that causes the regression.
This looks to be the same as bug #10463 which has already been fixed.
The fix was committed to the savannah repository on 2012-01-11, revision
#106849.
Would you please apply that bug's patch and let me know if it fails to
fix the current bug. Here is that patch:
*** orig/cc-engine.el 2012-01-09 20:27:51.000000000 +0000
--- cc-engine.el 2012-01-10 11:09:42.000000000 +0000
***************
*** 4225,4236 ****
Note that this function might do hidden buffer changes. See the
comment at the start of cc-engine.el for more info."
! (let* ((safe-place (c-state-safe-place (point)))
! (lit (c-state-pp-to-literal safe-place (point))))
! (or (cadr lit)
! (and detect-cpp
! (save-excursion (c-beginning-of-macro))
! 'pound))))
(defun c-literal-limits (&optional lim near not-in-delimiter)
"Return a cons of the beginning and end positions of the comment or
--- 4225,4238 ----
Note that this function might do hidden buffer changes. See the
comment at the start of cc-engine.el for more info."
! (save-restriction
! (widen)
! (let* ((safe-place (c-state-safe-place (point)))
! (lit (c-state-pp-to-literal safe-place (point))))
! (or (cadr lit)
! (and detect-cpp
! (save-excursion (c-beginning-of-macro))
! 'pound)))))
(defun c-literal-limits (&optional lim near not-in-delimiter)
"Return a cons of the beginning and end positions of the comment or
***************
*** 4250,4258 ****
(save-excursion
(let* ((pos (point))
(lim (or lim (c-state-safe-place pos)))
! (pp-to-lit (c-state-pp-to-literal lim pos))
(state (car pp-to-lit))
- (lit-type (cadr pp-to-lit))
(lit-limits (car (cddr pp-to-lit))))
(cond
--- 4252,4261 ----
(save-excursion
(let* ((pos (point))
(lim (or lim (c-state-safe-place pos)))
! (pp-to-lit (save-restriction
! (widen)
! (c-state-pp-to-literal lim pos)))
(state (car pp-to-lit))
(lit-limits (car (cddr pp-to-lit))))
(cond
> Regards,
> Alex
--
Alan Mackenzie (Nuremberg, Germany).
This bug report was last modified 13 years and 190 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.