* lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling.
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 23 Jun 2011 05:35:51 +0000 (22:35 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 23 Jun 2011 05:35:51 +0000 (22:35 -0700)
src/ChangeLog
src/lisp.h

index 8ec648e..6cf45e5 100644 (file)
@@ -1,5 +1,7 @@
 2011-06-23  Paul Eggert  <eggert@cs.ucla.edu>
 
+       * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling.
+
        * lread.c: Integer overflow fixes.
        (read_integer): Radix is now EMACS_INT, not int,
        to improve quality of diagnostics for out-of-range radices.
index 4c9543b..289ed2c 100644 (file)
@@ -1980,10 +1980,7 @@ extern void defvar_kboard (struct Lisp_Kboard_Objfwd *, const char *, int);
 #define DEFVAR_KBOARD(lname, vname, doc)                       \
   do {                                                         \
     static struct Lisp_Kboard_Objfwd ko_fwd;                   \
-    defvar_kboard (&ko_fwd,                                    \
-                  lname,                                       \
-                  (int)((char *)(&current_kboard->vname ## _)  \
-                        - (char *)current_kboard));            \
+    defvar_kboard (&ko_fwd, lname, offsetof (KBOARD, vname ## _)); \
   } while (0)