mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-16 17:24:23 +00:00
Remove struct Lisp_Kboard_Objfwd
* src/lisp.h (struct Lisp_Kboard_Objfwd): Deleted ... (struct Lisp_Fwd): ... replaced with field kbdoffset. (DEFVAR_KBOARD): Use new field. * src/data.c (XKBOARD_OFFSET): Renamed from XKBOARD_OBJFWD. (do_symval_forwarding, store_symval_forwarding (set_default_internal): Use it .
This commit is contained in:
parent
d109bcf86e
commit
163dd21e73
2 changed files with 10 additions and 19 deletions
12
src/data.c
12
src/data.c
|
|
@ -59,11 +59,11 @@ XBOOLVAR (lispfwd a)
|
|||
eassert (BOOLFWDP (a));
|
||||
return a->u.boolvar;
|
||||
}
|
||||
static struct Lisp_Kboard_Objfwd const *
|
||||
XKBOARD_OBJFWD (lispfwd a)
|
||||
static int
|
||||
XKBOARD_OFFSET (lispfwd a)
|
||||
{
|
||||
eassert (KBOARD_OBJFWDP (a));
|
||||
return &a->u.kboardobjfwd;
|
||||
return a->u.kbdoffset;
|
||||
}
|
||||
static intmax_t *
|
||||
XINTVAR (lispfwd a)
|
||||
|
|
@ -1345,7 +1345,7 @@ do_symval_forwarding (lispfwd valcontents)
|
|||
XBUFFER_OBJFWD (valcontents)->offset);
|
||||
|
||||
case Lisp_Fwd_Kboard_Obj:
|
||||
return *(Lisp_Object *) (XKBOARD_OBJFWD (valcontents)->offset
|
||||
return *(Lisp_Object *) (XKBOARD_OFFSET (valcontents)
|
||||
+ (char *) kboard_for_bindings ());
|
||||
default: emacs_abort ();
|
||||
}
|
||||
|
|
@ -1496,7 +1496,7 @@ store_symval_forwarding (lispfwd valcontents, Lisp_Object newval,
|
|||
case Lisp_Fwd_Kboard_Obj:
|
||||
{
|
||||
char *base = (char *) kboard_for_bindings ();
|
||||
char *p = base + XKBOARD_OBJFWD (valcontents)->offset;
|
||||
char *p = base + XKBOARD_OFFSET (valcontents);
|
||||
*(Lisp_Object *) p = newval;
|
||||
}
|
||||
break;
|
||||
|
|
@ -2081,7 +2081,7 @@ set_default_internal (Lisp_Object symbol, Lisp_Object value,
|
|||
{
|
||||
char *base = (char *) (where ? where
|
||||
: kboard_for_bindings ());
|
||||
char *p = base + XKBOARD_OBJFWD (valcontents)->offset;
|
||||
char *p = base + XKBOARD_OFFSET (valcontents);
|
||||
*(Lisp_Object *) p = value;
|
||||
}
|
||||
else
|
||||
|
|
|
|||
17
src/lisp.h
17
src/lisp.h
|
|
@ -3105,13 +3105,6 @@ struct Lisp_Buffer_Local_Value
|
|||
Lisp_Object valcell;
|
||||
};
|
||||
|
||||
/* Like Lisp_Objfwd except that value lives in a slot in the
|
||||
current kboard. */
|
||||
struct Lisp_Kboard_Objfwd
|
||||
{
|
||||
int offset;
|
||||
};
|
||||
|
||||
struct Lisp_Fwd
|
||||
{
|
||||
enum Lisp_Fwd_Type type;
|
||||
|
|
@ -3121,7 +3114,7 @@ struct Lisp_Fwd
|
|||
bool *boolvar;
|
||||
Lisp_Object *objvar;
|
||||
struct Lisp_Buffer_Objfwd bufobjfwd;
|
||||
struct Lisp_Kboard_Objfwd kboardobjfwd;
|
||||
int kbdoffset;
|
||||
} u;
|
||||
};
|
||||
|
||||
|
|
@ -3510,14 +3503,12 @@ extern void defvar_kboard (struct Lisp_Fwd const *, char const *);
|
|||
defvar_int (&i_fwd, lname); \
|
||||
} while (false)
|
||||
#define DEFVAR_KBOARD(lname, vname, doc) \
|
||||
do \
|
||||
{ \
|
||||
do { \
|
||||
static struct Lisp_Fwd const ko_fwd \
|
||||
= { Lisp_Fwd_Kboard_Obj, \
|
||||
.u.kboardobjfwd = {offsetof (KBOARD, vname##_)}}; \
|
||||
.u.kbdoffset = offsetof (KBOARD, vname##_)}; \
|
||||
defvar_kboard (&ko_fwd, lname); \
|
||||
} \
|
||||
while (false)
|
||||
} while (false)
|
||||
|
||||
|
||||
/* Elisp uses multiple stacks:
|
||||
|
|
|
|||
Loading…
Reference in a new issue