Subject: Re: bug#64391: buffer narrowing slowdown regression in emacs 29

From: Gregory Heytings <[email-masked]>
Date: Sun, 09 Jul 2023 19:19:43 +0000

>>  \(fn START END [:label LABEL] BODY)"
>>    (declare (indent 2) (debug t))
>> -  (if (eq (car rest) :label)
>> +  (if (and (eq (car rest) :label)
>> +           (symbolp (cadr rest)))
>>        `(internal--with-restriction ,start ,end (lambda () ,@(cddr rest))
>>                                   ,(cadr rest))
>>      `(internal--with-restriction ,start ,end (lambda () ,@rest))))
>
> Doesn't look right: (cadr rest) should be an *expression* that evaluates 
> to a symbol, so in general it won't itself be a symbol.
>

Whoops, indeed.  (symbolp (eval (cadr rest))) would work, but somehow I 
think it's not TRT and there's a more idiomatic way to do that.