GNU bug report logs - #10480
24.0.92; cc-mode breakage due to "Large brace-block initialisation makes CC Mode slow: Fix"

Previous Next

Packages: cc-mode, emacs;

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

From: Alan Mackenzie <acm <at> muc.de>
To: Alex <alex <at> bennee.com>
Cc: 10480 <at> debbugs.gnu.org
Subject: bug#10480: 24.0.92;?cc-mode breakage due to "Large brace-block initialisation makes CC?Mode slow: Fix"
Date: Sun, 15 Jan 2012 09:59:41 +0000
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 189 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.