Subject: bug#6744: closed (Re: bug#6744: 24.0.50; [PATCH] local-variable-p: Handle variable aliases correctly)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 03 Aug 2010 17:14:02 +0000

Your bug report

#6744: 24.0.50; [PATCH] local-variable-p: Handle variable aliases correctly

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
6744: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6744
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#6744: 24.0.50; [PATCH] local-variable-p: Handle variable aliases correctly
From: Johan Bockgård <[email-masked]>
To: Juanma Barranquero <[email-masked]>
Cc: [email-masked]
Date: Tue, 03 Aug 2010 19:13:49 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Juanma Barranquero <[email-masked]> writes:

> On Wed, Jul 28, 2010 at 02:15, Johan Bockg=e5rd <[email-masked]> wrote:
>
>> 2010-07-27  Johan Bockg=e5rd  <[email-masked]>
>>
>>        * data.c (Flocal_variable_p): Handle variable aliases correctly.
>>
>> +       XSETSYMBOL (variable, sym); /* Update in case of aliasing.  */
>
> If you think this is the right fix, please install it.

Done.

Subject: 24.0.50; [PATCH] local-variable-p: Handle variable aliases correctly
From: "Johan Bockg\=e5rd" <[email-masked]>
To: [email-masked]
Date: Wed, 28 Jul 2010 02:15:32 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Found by --enable-checking.

    (defvar foo nil)
    (defvaralias 'bar 'foo)
    (make-local-variable 'bar)
    (local-variable-p 'bar)

returns nil or may crash if checking is enabled. (trunk)

2010-07-27  Johan Bockg=e5rd  <[email-masked]>

	* data.c (Flocal_variable_p): Handle variable aliases correctly.

diff --git a/src/data.c b/src/data.c
index 152a888..b78a665 100644
--- a/src/data.c
+++ b/src/data.c
@@ -1865,6 +1865,7 @@ BUFFER defaults to the current buffer.  */)
 	Lisp_Object tail, elt, tmp;
 	struct Lisp_Buffer_Local_Value *blv = SYMBOL_BLV (sym);
 	XSETBUFFER (tmp, buf);
+	XSETSYMBOL (variable, sym); /* Update in case of aliasing.  */
 
 	for (tail = buf->local_var_alist; CONSP (tail); tail = XCDR (tail))
 	  {