emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r109691: Inline getter and setter fun


From: Dmitry Antipov
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r109691: Inline getter and setter functions for per-buffer values.
Date: Mon, 20 Aug 2012 11:42:06 +0400
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 109691
committer: Dmitry Antipov <address@hidden>
branch nick: trunk
timestamp: Mon 2012-08-20 11:42:06 +0400
message:
  Inline getter and setter functions for per-buffer values.
  * buffer.h (per_buffer_default, set_per_buffer_default)
  (per_buffer_value, set_per_buffer_value): New functions.
  (PER_BUFFER_VALUE, PER_BUFFER_DEFAULT): Remove.
  * buffer.c, data.c: Adjust users.
modified:
  src/ChangeLog
  src/buffer.c
  src/buffer.h
  src/data.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2012-08-20 04:04:58 +0000
+++ b/src/ChangeLog     2012-08-20 07:42:06 +0000
@@ -1,3 +1,11 @@
+2012-08-20  Dmitry Antipov  <address@hidden>
+
+       Inline getter and setter functions for per-buffer values.
+       * buffer.h (per_buffer_default, set_per_buffer_default)
+       (per_buffer_value, set_per_buffer_value): New functions.
+       (PER_BUFFER_VALUE, PER_BUFFER_DEFAULT): Remove.
+       * buffer.c, data.c: Adjust users.
+
 2012-08-20  Juanma Barranquero  <address@hidden>
 
        * makefile.w32-in ($(BLD)/vm-limit.$(O)): Update dependencies.

=== modified file 'src/buffer.c'
--- a/src/buffer.c      2012-08-18 06:06:39 +0000
+++ b/src/buffer.c      2012-08-20 07:42:06 +0000
@@ -695,7 +695,7 @@
       if (offset == PER_BUFFER_VAR_OFFSET (name))
        continue;
 
-      obj = PER_BUFFER_VALUE (from, offset);
+      obj = per_buffer_value (from, offset);
       if (MARKERP (obj) && XMARKER (obj)->buffer == from)
        {
          struct Lisp_Marker *m = XMARKER (obj);
@@ -704,7 +704,7 @@
          XMARKER (obj)->insertion_type = m->insertion_type;
        }
 
-      PER_BUFFER_VALUE (to, offset) = obj;
+      set_per_buffer_value (to, offset, obj);
     }
 
   memcpy (to->local_flags, from->local_flags, sizeof to->local_flags);
@@ -1063,7 +1063,7 @@
       if ((idx > 0
           && (permanent_too
               || buffer_permanent_local_flags[idx] == 0)))
-       PER_BUFFER_VALUE (b, offset) = PER_BUFFER_DEFAULT (offset);
+       set_per_buffer_value (b, offset, per_buffer_default (offset));
     }
 }
 
@@ -1239,7 +1239,7 @@
       {
        union Lisp_Fwd *fwd = SYMBOL_FWD (sym);
        if (BUFFER_OBJFWDP (fwd))
-         result = PER_BUFFER_VALUE (buf, XBUFFER_OBJFWD (fwd)->offset);
+         result = per_buffer_value (buf, XBUFFER_OBJFWD (fwd)->offset);
        else
          result = Fdefault_value (variable);
        break;
@@ -1319,7 +1319,7 @@
            && SYMBOLP (PER_BUFFER_SYMBOL (offset)))
          {
            Lisp_Object sym = PER_BUFFER_SYMBOL (offset);
-           Lisp_Object val = PER_BUFFER_VALUE (buf, offset);
+           Lisp_Object val = per_buffer_value (buf, offset);
            result = Fcons (EQ (val, Qunbound) ? sym : Fcons (sym, val),
                            result);
          }

=== modified file 'src/buffer.h'
--- a/src/buffer.h      2012-08-18 06:06:39 +0000
+++ b/src/buffer.h      2012-08-20 07:42:06 +0000
@@ -1203,18 +1203,36 @@
 #define PER_BUFFER_IDX(OFFSET) \
       XINT (*(Lisp_Object *)((OFFSET) + (char *) &buffer_local_flags))
 
-/* Return the default value of the per-buffer variable at offset
-   OFFSET in the buffer structure.  */
-
-#define PER_BUFFER_DEFAULT(OFFSET) \
-      (*(Lisp_Object *)((OFFSET) + (char *) &buffer_defaults))
-
-/* Return the buffer-local value of the per-buffer variable at offset
-   OFFSET in the buffer structure.  */
-
-#define PER_BUFFER_VALUE(BUFFER, OFFSET) \
-      (*(Lisp_Object *)((OFFSET) + (char *) (BUFFER)))
-
+/* Functions to get and set default value of the per-buffer
+   variable at offset OFFSET in the buffer structure.  */
+
+BUFFER_INLINE Lisp_Object
+per_buffer_default (int offset)
+{
+  return *(Lisp_Object *)(offset + (char *) &buffer_defaults);
+}
+
+BUFFER_INLINE void
+set_per_buffer_default (int offset, Lisp_Object value)
+{
+  *(Lisp_Object *)(offset + (char *) &buffer_defaults) = value;
+}
+
+/* Functions to get and set buffer-local value of the per-buffer
+   variable at offset OFFSET in the buffer structure.  */
+
+BUFFER_INLINE Lisp_Object
+per_buffer_value (struct buffer *b, int offset)
+{
+  return *(Lisp_Object *)(offset + (char *) b);
+}
+
+BUFFER_INLINE void
+set_per_buffer_value (struct buffer *b, int offset, Lisp_Object value)
+{
+  *(Lisp_Object *)(offset + (char *) b) = value;
+}
+
 /* Downcase a character C, or make no change if that cannot be done.  */
 BUFFER_INLINE int
 downcase (int c)

=== modified file 'src/data.c'
--- a/src/data.c        2012-08-19 08:40:12 +0000
+++ b/src/data.c        2012-08-20 07:42:06 +0000
@@ -847,7 +847,7 @@
       return *XOBJFWD (valcontents)->objvar;
 
     case Lisp_Fwd_Buffer_Obj:
-      return PER_BUFFER_VALUE (current_buffer,
+      return per_buffer_value (current_buffer,
                               XBUFFER_OBJFWD (valcontents)->offset);
 
     case Lisp_Fwd_Kboard_Obj:
@@ -919,7 +919,7 @@
              b = XBUFFER (lbuf);
 
              if (! PER_BUFFER_VALUE_P (b, idx))
-               PER_BUFFER_VALUE (b, offset) = newval;
+               set_per_buffer_value (b, offset, newval);
            }
        }
       break;
@@ -937,7 +937,7 @@
 
        if (buf == NULL)
          buf = current_buffer;
-       PER_BUFFER_VALUE (buf, offset) = newval;
+       set_per_buffer_value (buf, offset, newval);
       }
       break;
 
@@ -1309,7 +1309,7 @@
          {
            int offset = XBUFFER_OBJFWD (valcontents)->offset;
            if (PER_BUFFER_IDX (offset) != 0)
-             return PER_BUFFER_DEFAULT (offset);
+             return per_buffer_default (offset);
          }
 
        /* For other variables, get the current value.  */
@@ -1396,7 +1396,7 @@
            int offset = XBUFFER_OBJFWD (valcontents)->offset;
            int idx = PER_BUFFER_IDX (offset);
 
-           PER_BUFFER_DEFAULT (offset) = value;
+           set_per_buffer_default (offset, value);
 
            /* If this variable is not always local in all buffers,
               set it in the buffers that don't nominally have a local value.  
*/
@@ -1406,7 +1406,7 @@
 
                FOR_EACH_BUFFER (b)
                  if (!PER_BUFFER_VALUE_P (b, idx))
-                   PER_BUFFER_VALUE (b, offset) = value;
+                   set_per_buffer_value (b, offset, value);
              }
            return value;
          }
@@ -1705,8 +1705,8 @@
            if (idx > 0)
              {
                SET_PER_BUFFER_VALUE_P (current_buffer, idx, 0);
-               PER_BUFFER_VALUE (current_buffer, offset)
-                 = PER_BUFFER_DEFAULT (offset);
+               set_per_buffer_value (current_buffer, offset,
+                                     per_buffer_default (offset));
              }
          }
        return variable;


reply via email to

[Prev in Thread] Current Thread [Next in Thread]