[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#48264: [PATCH v4 05/14] Add and use KILL_PER_BUFFER_VALUE
From: |
Spencer Baugh |
Subject: |
bug#48264: [PATCH v4 05/14] Add and use KILL_PER_BUFFER_VALUE |
Date: |
Fri, 7 May 2021 22:08:56 -0400 |
This makes the code more clear and allows us to more easily change how
this function is implemented.
* src/buffer.h (KILL_PER_BUFFER_VALUE): New function.
* src/buffer.c (reset_buffer_local_variables):
* src/data.c (Fkill_local_variable): Use KILL_PER_BUFFER_VALUE.
---
src/buffer.c | 5 +----
src/buffer.h | 10 ++++++++++
src/data.c | 8 +-------
3 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/src/buffer.c b/src/buffer.c
index 4336e10a27..2ecbaa91cc 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1107,10 +1107,7 @@ reset_buffer_local_variables (struct buffer *b, bool
permanent_too)
if ((BVAR_HAS_DEFAULT_VALUE_P (offset)
&& (permanent_too
|| buffer_permanent_local_flags[idx] == 0)))
- {
- SET_PER_BUFFER_VALUE_P (b, idx, 0);
- set_per_buffer_value (b, offset, per_buffer_default (offset));
- }
+ KILL_PER_BUFFER_VALUE (b, offset);
}
}
diff --git a/src/buffer.h b/src/buffer.h
index 13fda0c702..31ab4fb3dd 100644
--- a/src/buffer.h
+++ b/src/buffer.h
@@ -1502,6 +1502,16 @@ PER_BUFFER_VALUE_P (struct buffer *b, int offset)
return idx == -1 || b->local_flags[idx];
}
+/* Kill the per-buffer binding for this value, if there is one. */
+
+INLINE void
+KILL_PER_BUFFER_VALUE (struct buffer *b, int offset)
+{
+ int idx = PER_BUFFER_IDX (offset);
+ SET_PER_BUFFER_VALUE_P (b, idx, 0);
+ set_per_buffer_value (b, offset, per_buffer_default (offset));
+}
+
/* Downcase a character C, or make no change if that cannot be done. */
INLINE int
downcase (int c)
diff --git a/src/data.c b/src/data.c
index 891a81b7f3..ec9fc57048 100644
--- a/src/data.c
+++ b/src/data.c
@@ -2154,14 +2154,8 @@ From now on the default value will apply in this buffer.
Return VARIABLE. */)
if (BUFFER_OBJFWDP (valcontents))
{
int offset = XBUFFER_OBJFWD (valcontents)->offset;
- int idx = PER_BUFFER_IDX (offset);
-
if (BVAR_HAS_DEFAULT_VALUE_P (offset))
- {
- SET_PER_BUFFER_VALUE_P (current_buffer, idx, 0);
- set_per_buffer_value (current_buffer, offset,
- per_buffer_default (offset));
- }
+ KILL_PER_BUFFER_VALUE (current_buffer, offset);
}
return variable;
}
--
2.31.1
- bug#48264: 28.0.50; Changing the default for DEFVAR_PER_BUFFER variables takes O(#buffers) time, Spencer Baugh, 2021/05/06
- bug#48264: [PATCH v3 01/15] Stop checking the constant default for enable_multibyte_characters, Spencer Baugh, 2021/05/06
- bug#48264: [PATCH v3 00/15] Speeding up setting the default for DEFVAR_PER_BUFFER vars, Spencer Baugh, 2021/05/06
- bug#48264: [PATCH v3 00/15] Speeding up setting the default for DEFVAR_PER_BUFFER vars, Eli Zaretskii, 2021/05/07
- bug#48264: [PATCH v4 00/15] Speeding up setting the default for DEFVAR_PER_BUFFER vars, Spencer Baugh, 2021/05/07
- bug#48264: [PATCH v4 00/15] Speeding up setting the default for DEFVAR_PER_BUFFER vars, Spencer Baugh, 2021/05/07
- bug#48264: [PATCH v4 06/14] Rearrange set_internal for buffer forwarded symbols, Spencer Baugh, 2021/05/07
- bug#48264: [PATCH v4 11/14] Set buffer_defaults fields without a default to Qunbound, Spencer Baugh, 2021/05/07
- bug#48264: [PATCH v4 13/14] Remove PER_BUFFER_IDX and buffer_local_flags, Spencer Baugh, 2021/05/07
- bug#48264: [PATCH v4 14/14] Add and use BVAR_FIELD macros, Spencer Baugh, 2021/05/07
- bug#48264: [PATCH v4 05/14] Add and use KILL_PER_BUFFER_VALUE,
Spencer Baugh <=
- bug#48264: [PATCH v4 03/14] Add and use BVAR_HAS_DEFAULT_VALUE_P, Spencer Baugh, 2021/05/07
- bug#48264: [PATCH v4 01/14] Stop checking the constant default for enable_multibyte_characters, Spencer Baugh, 2021/05/07
- bug#48264: [PATCH v4 02/14] Take offset not idx in PER_BUFFER_VALUE_P, Spencer Baugh, 2021/05/07
- bug#48264: [PATCH v4 04/14] Combine unnecessarily separate loops in buffer.c, Spencer Baugh, 2021/05/07
- bug#48264: [PATCH v4 07/14] Use BVAR_OR_DEFAULT for per-buffer vars with defaults, Spencer Baugh, 2021/05/07
- bug#48264: [PATCH v4 10/14] Delete SET_PER_BUFFER_VALUE_P and buffer local_flags field, Spencer Baugh, 2021/05/07
- bug#48264: [PATCH v4 08/14] Remove unnecessary Qunbound check, Spencer Baugh, 2021/05/07
- bug#48264: [PATCH v4 09/14] Get rid of buffer_permanent_local_flags array, Spencer Baugh, 2021/05/07
- bug#48264: [PATCH v4 12/14] Assert that PER_BUFFER_IDX for Lisp variables is not 0, Spencer Baugh, 2021/05/07
- bug#48264: [PATCH v4 00/15] Speeding up setting the default for DEFVAR_PER_BUFFER vars, Stefan Monnier, 2021/05/08