aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorHelmut Eller2024-06-23 16:36:13 +0200
committerHelmut Eller2026-02-12 18:51:51 +0100
commit163dd21e7305bbd91aecb87cb4968970d1e1e873 (patch)
tree34124c0b59622a701ca0bdcb6163571e58ef061a /src
parentd109bcf86e870d003b45930c82f8140e8ba415ac (diff)
downloademacs-163dd21e7305bbd91aecb87cb4968970d1e1e873.tar.gz
emacs-163dd21e7305bbd91aecb87cb4968970d1e1e873.zip
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 .
Diffstat (limited to 'src')
-rw-r--r--src/data.c12
-rw-r--r--src/lisp.h17
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)
59 eassert (BOOLFWDP (a)); 59 eassert (BOOLFWDP (a));
60 return a->u.boolvar; 60 return a->u.boolvar;
61} 61}
62static struct Lisp_Kboard_Objfwd const * 62static int
63XKBOARD_OBJFWD (lispfwd a) 63XKBOARD_OFFSET (lispfwd a)
64{ 64{
65 eassert (KBOARD_OBJFWDP (a)); 65 eassert (KBOARD_OBJFWDP (a));
66 return &a->u.kboardobjfwd; 66 return a->u.kbdoffset;
67} 67}
68static intmax_t * 68static intmax_t *
69XINTVAR (lispfwd a) 69XINTVAR (lispfwd a)
@@ -1345,7 +1345,7 @@ do_symval_forwarding (lispfwd valcontents)
1345 XBUFFER_OBJFWD (valcontents)->offset); 1345 XBUFFER_OBJFWD (valcontents)->offset);
1346 1346
1347 case Lisp_Fwd_Kboard_Obj: 1347 case Lisp_Fwd_Kboard_Obj:
1348 return *(Lisp_Object *) (XKBOARD_OBJFWD (valcontents)->offset 1348 return *(Lisp_Object *) (XKBOARD_OFFSET (valcontents)
1349 + (char *) kboard_for_bindings ()); 1349 + (char *) kboard_for_bindings ());
1350 default: emacs_abort (); 1350 default: emacs_abort ();
1351 } 1351 }
@@ -1496,7 +1496,7 @@ store_symval_forwarding (lispfwd valcontents, Lisp_Object newval,
1496 case Lisp_Fwd_Kboard_Obj: 1496 case Lisp_Fwd_Kboard_Obj:
1497 { 1497 {
1498 char *base = (char *) kboard_for_bindings (); 1498 char *base = (char *) kboard_for_bindings ();
1499 char *p = base + XKBOARD_OBJFWD (valcontents)->offset; 1499 char *p = base + XKBOARD_OFFSET (valcontents);
1500 *(Lisp_Object *) p = newval; 1500 *(Lisp_Object *) p = newval;
1501 } 1501 }
1502 break; 1502 break;
@@ -2081,7 +2081,7 @@ set_default_internal (Lisp_Object symbol, Lisp_Object value,
2081 { 2081 {
2082 char *base = (char *) (where ? where 2082 char *base = (char *) (where ? where
2083 : kboard_for_bindings ()); 2083 : kboard_for_bindings ());
2084 char *p = base + XKBOARD_OBJFWD (valcontents)->offset; 2084 char *p = base + XKBOARD_OFFSET (valcontents);
2085 *(Lisp_Object *) p = value; 2085 *(Lisp_Object *) p = value;
2086 } 2086 }
2087 else 2087 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
3105 Lisp_Object valcell; 3105 Lisp_Object valcell;
3106 }; 3106 };
3107 3107
3108/* Like Lisp_Objfwd except that value lives in a slot in the
3109 current kboard. */
3110struct Lisp_Kboard_Objfwd
3111 {
3112 int offset;
3113 };
3114
3115struct Lisp_Fwd 3108struct Lisp_Fwd
3116{ 3109{
3117 enum Lisp_Fwd_Type type; 3110 enum Lisp_Fwd_Type type;
@@ -3121,7 +3114,7 @@ struct Lisp_Fwd
3121 bool *boolvar; 3114 bool *boolvar;
3122 Lisp_Object *objvar; 3115 Lisp_Object *objvar;
3123 struct Lisp_Buffer_Objfwd bufobjfwd; 3116 struct Lisp_Buffer_Objfwd bufobjfwd;
3124 struct Lisp_Kboard_Objfwd kboardobjfwd; 3117 int kbdoffset;
3125 } u; 3118 } u;
3126}; 3119};
3127 3120
@@ -3510,14 +3503,12 @@ extern void defvar_kboard (struct Lisp_Fwd const *, char const *);
3510 defvar_int (&i_fwd, lname); \ 3503 defvar_int (&i_fwd, lname); \
3511 } while (false) 3504 } while (false)
3512#define DEFVAR_KBOARD(lname, vname, doc) \ 3505#define DEFVAR_KBOARD(lname, vname, doc) \
3513do \ 3506 do { \
3514 { \
3515 static struct Lisp_Fwd const ko_fwd \ 3507 static struct Lisp_Fwd const ko_fwd \
3516 = { Lisp_Fwd_Kboard_Obj, \ 3508 = { Lisp_Fwd_Kboard_Obj, \
3517 .u.kboardobjfwd = {offsetof (KBOARD, vname##_)}}; \ 3509 .u.kbdoffset = offsetof (KBOARD, vname##_)}; \
3518 defvar_kboard (&ko_fwd, lname); \ 3510 defvar_kboard (&ko_fwd, lname); \
3519 } \ 3511 } while (false)
3520while (false)
3521 3512
3522 3513
3523/* Elisp uses multiple stacks: 3514/* Elisp uses multiple stacks: