[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/lisp.h,v
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] Changes to emacs/src/lisp.h,v |
Date: |
Tue, 16 Oct 2007 15:43:01 +0000 |
CVSROOT: /sources/emacs
Module name: emacs
Changes by: Stefan Monnier <monnier> 07/10/16 15:42:59
Index: lisp.h
===================================================================
RCS file: /sources/emacs/emacs/src/lisp.h,v
retrieving revision 1.595
retrieving revision 1.596
diff -u -b -r1.595 -r1.596
--- lisp.h 13 Oct 2007 12:40:15 -0000 1.595
+++ lisp.h 16 Oct 2007 15:42:57 -0000 1.596
@@ -214,7 +214,6 @@
Lisp_Misc_Objfwd,
Lisp_Misc_Buffer_Objfwd,
Lisp_Misc_Buffer_Local_Value,
- Lisp_Misc_Some_Buffer_Local_Value,
Lisp_Misc_Overlay,
Lisp_Misc_Kboard_Objfwd,
Lisp_Misc_Save_Value,
@@ -522,7 +521,8 @@
/* Misc types. */
#define XMISC(a) ((union Lisp_Misc *) XPNTR(a))
-#define XMISCTYPE(a) (XMARKER (a)->type)
+#define XMISCANY(a) (&(XMISC(a)->u_any))
+#define XMISCTYPE(a) (XMISCANY (a)->type)
#define XMARKER(a) (&(XMISC(a)->u_marker))
#define XINTFWD(a) (&(XMISC(a)->u_intfwd))
#define XBOOLFWD(a) (&(XMISC(a)->u_boolfwd))
@@ -1124,6 +1124,13 @@
/* These structures are used for various misc types. */
+struct Lisp_Misc_Any /* Supertype of all Misc types. */
+{
+ int type : 16; /* = Lisp_Misc_Marker */
+ unsigned gcmarkbit : 1;
+ int spacer : 15;
+};
+
struct Lisp_Marker
{
int type : 16; /* = Lisp_Misc_Marker */
@@ -1224,19 +1231,19 @@
binding into `realvalue' (or through it). Also update
LOADED-BINDING to point to the newly loaded binding.
- Lisp_Misc_Buffer_Local_Value and Lisp_Misc_Some_Buffer_Local_Value
- both use this kind of structure. With the former, merely setting
- the variable creates a local binding for the current buffer. With
- the latter, setting the variable does not do that; only
- make-local-variable does that. */
+ `local_if_set' indicates that merely setting the variable creates a local
+ binding for the current buffer. Otherwise the latter, setting the
+ variable does not do that; only make-local-variable does that. */
struct Lisp_Buffer_Local_Value
{
- int type : 16; /* = Lisp_Misc_Buffer_Local_Value
- or Lisp_Misc_Some_Buffer_Local_Value */
+ int type : 16; /* = Lisp_Misc_Buffer_Local_Value */
unsigned gcmarkbit : 1;
- int spacer : 12;
+ int spacer : 11;
+ /* 1 means that merely setting the variable creates a local
+ binding for the current buffer */
+ unsigned int local_if_set : 1;
/* 1 means this variable is allowed to have frame-local bindings,
so check for them when looking for the proper binding. */
unsigned int check_frame : 1;
@@ -1326,7 +1333,8 @@
union Lisp_Misc
{
- struct Lisp_Free u_free;
+ struct Lisp_Misc_Any u_any; /* Supertype of all Misc types. */
+ struct Lisp_Free u_free; /* Includes padding to force alignment. */
struct Lisp_Marker u_marker;
struct Lisp_Intfwd u_intfwd;
struct Lisp_Boolfwd u_boolfwd;
- [Emacs-diffs] Changes to emacs/src/lisp.h,v, Stefan Monnier, 2007/10/02
- [Emacs-diffs] Changes to emacs/src/lisp.h,v, Stefan Monnier, 2007/10/02
- [Emacs-diffs] Changes to emacs/src/lisp.h,v, Stefan Monnier, 2007/10/02
- [Emacs-diffs] Changes to emacs/src/lisp.h,v, Stefan Monnier, 2007/10/02
- [Emacs-diffs] Changes to emacs/src/lisp.h,v, Stefan Monnier, 2007/10/09
- [Emacs-diffs] Changes to emacs/src/lisp.h,v, Stefan Monnier, 2007/10/10
- [Emacs-diffs] Changes to emacs/src/lisp.h,v, Eli Zaretskii, 2007/10/13
- [Emacs-diffs] Changes to emacs/src/lisp.h,v,
Stefan Monnier <=
- [Emacs-diffs] Changes to emacs/src/lisp.h,v, Stefan Monnier, 2007/10/16
- [Emacs-diffs] Changes to emacs/src/lisp.h,v, Stefan Monnier, 2007/10/23
- [Emacs-diffs] Changes to emacs/src/lisp.h,v, Ken Raeburn, 2007/10/29