[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs/src ChangeLog buffer.c
From: |
Chong Yidong |
Subject: |
[Emacs-diffs] emacs/src ChangeLog buffer.c |
Date: |
Sat, 15 Aug 2009 14:06:04 +0000 |
CVSROOT: /sources/emacs
Module name: emacs
Changes by: Chong Yidong <cyd> 09/08/15 14:06:04
Modified files:
src : ChangeLog buffer.c
Log message:
* buffer.c (set_buffer_internal_1)
(swap_out_buffer_local_variables): Check for unbound local
variables (Bug#4138).
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/src/ChangeLog?cvsroot=emacs&r1=1.7685&r2=1.7686
http://cvs.savannah.gnu.org/viewcvs/emacs/src/buffer.c?cvsroot=emacs&r1=1.583&r2=1.584
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/src/ChangeLog,v
retrieving revision 1.7685
retrieving revision 1.7686
diff -u -b -r1.7685 -r1.7686
--- ChangeLog 14 Aug 2009 09:17:11 -0000 1.7685
+++ ChangeLog 15 Aug 2009 14:06:02 -0000 1.7686
@@ -1,3 +1,9 @@
+2009-08-15 Chong Yidong <address@hidden>
+
+ * buffer.c (set_buffer_internal_1)
+ (swap_out_buffer_local_variables): Check for unbound local
+ variables (Bug#4138).
+
2009-08-14 Eli Zaretskii <address@hidden>
* process.c (create_pty): Fix last change.
Index: buffer.c
===================================================================
RCS file: /sources/emacs/emacs/src/buffer.c,v
retrieving revision 1.583
retrieving revision 1.584
diff -u -b -r1.583 -r1.584
--- buffer.c 16 Jul 2009 01:45:11 -0000 1.583
+++ buffer.c 15 Aug 2009 14:06:04 -0000 1.584
@@ -1921,12 +1921,14 @@
for (tail = b->local_var_alist; CONSP (tail); tail = XCDR (tail))
{
- valcontents = SYMBOL_VALUE (XCAR (XCAR (tail)));
- if ((BUFFER_LOCAL_VALUEP (valcontents))
+ if (CONSP (XCAR (tail))
+ && SYMBOLP (XCAR (XCAR (tail)))
+ && (valcontents = SYMBOL_VALUE (XCAR (XCAR (tail))),
+ (BUFFER_LOCAL_VALUEP (valcontents)))
&& (tem = XBUFFER_LOCAL_VALUE (valcontents)->realvalue,
(BOOLFWDP (tem) || INTFWDP (tem) || OBJFWDP (tem))))
- /* Just reference the variable
- to cause it to become set for this buffer. */
+ /* Just reference the variable to cause it to become set for
+ this buffer. */
Fsymbol_value (XCAR (XCAR (tail)));
}
@@ -1935,12 +1937,14 @@
if (old_buf)
for (tail = old_buf->local_var_alist; CONSP (tail); tail = XCDR (tail))
{
- valcontents = SYMBOL_VALUE (XCAR (XCAR (tail)));
- if ((BUFFER_LOCAL_VALUEP (valcontents))
+ if (CONSP (tail)
+ && SYMBOLP (XCAR (XCAR (tail)))
+ && (valcontents = SYMBOL_VALUE (XCAR (XCAR (tail))),
+ (BUFFER_LOCAL_VALUEP (valcontents)))
&& (tem = XBUFFER_LOCAL_VALUE (valcontents)->realvalue,
(BOOLFWDP (tem) || INTFWDP (tem) || OBJFWDP (tem))))
- /* Just reference the variable
- to cause it to become set for this buffer. */
+ /* Just reference the variable to cause it to become set for
+ this buffer. */
Fsymbol_value (XCAR (XCAR (tail)));
}
}
@@ -2653,18 +2657,19 @@
swap_out_buffer_local_variables (b)
struct buffer *b;
{
- Lisp_Object oalist, alist, sym, tem, buffer;
+ Lisp_Object oalist, alist, sym, buffer;
XSETBUFFER (buffer, b);
oalist = b->local_var_alist;
for (alist = oalist; CONSP (alist); alist = XCDR (alist))
{
- sym = XCAR (XCAR (alist));
-
- /* Need not do anything if some other buffer's binding is now encached.
*/
- tem = XBUFFER_LOCAL_VALUE (SYMBOL_VALUE (sym))->buffer;
- if (EQ (tem, buffer))
+ if (CONSP (XCAR (alist))
+ && (sym = XCAR (XCAR (alist)), SYMBOLP (sym))
+ /* Need not do anything if some other buffer's binding is
+ now encached. */
+ && EQ (XBUFFER_LOCAL_VALUE (SYMBOL_VALUE (sym))->buffer,
+ buffer))
{
/* Symbol is set up for this buffer's old local value:
swap it out! */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] emacs/src ChangeLog buffer.c,
Chong Yidong <=