Subject: Re: bug#7722: 24.0.50; Finding this C++ header file drops emacs into a infinite loop

From: Chong Yidong <[email-masked]>
Date: Fri, 11 Feb 2011 20:25:06 -0500

Alan Mackenzie <[email-masked]> writes:

> It was indeed such a loop.  It was caused by a 500n jit-lock boundary
> falling in the middle of a template construct, hence the "necessity" of
> all the whitespace to reproduce the failure.
>
> Here's a putative patch for the problem.  I've refactored the offending
> function by replacing obscenely nested `if'-forms with a simple `cond'.
> I've also removed some narrowing (to the 500n limit) which should help
> jit-lock, hopefully without hurting too much elsewhere.
>
> Tassilo, would you try out the patch, please, and let me know how it
> goes.  Thanks!

Thanks.  This patch doesn't apply cleanly to the emacs-23 branch.  Do
you think we could apply it to the trunk, and just use the workaround in
the branch (some of these logic changes don't look obvious to me)?