From 163dd21e7305bbd91aecb87cb4968970d1e1e873 Mon Sep 17 00:00:00 2001 From: Helmut Eller Date: Sun, 23 Jun 2024 16:36:13 +0200 Subject: [PATCH] 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 . --- src/data.c | 12 ++++++------ src/lisp.h | 17 ++++------------- 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/src/data.c b/src/data.c index 337d640b2b5..6b46a771ba8 100644 --- a/src/data.c +++ b/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 diff --git a/src/lisp.h b/src/lisp.h index 40556527d3a..bf446256774 100644 --- a/src/lisp.h +++ b/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: