aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattias EngdegÄrd2024-03-04 14:14:05 +0100
committerMattias EngdegÄrd2024-03-04 14:14:05 +0100
commit11ffb4656d768b09e1f7dfacc091d85eef4a403a (patch)
tree4469592094317fb49925cf4408516e9349bfeb87
parentb9e8474a4470f71c30a4b89651fd3c5f2ef92ba2 (diff)
downloademacs-11ffb4656d768b09e1f7dfacc091d85eef4a403a.tar.gz
emacs-11ffb4656d768b09e1f7dfacc091d85eef4a403a.zip
Revert "Replace XSETSYMBOL with make_lisp_symbol"
This reverts commit de6b1e1efb1a36c69e7a6e09297e1de5b1477121. While it did simplify code, there aren't much in the way of technical benefits the change at this time, and there were protest against the unwarranted style change.
-rw-r--r--src/alloc.c12
-rw-r--r--src/buffer.c4
-rw-r--r--src/data.c33
-rw-r--r--src/eval.c2
-rw-r--r--src/lisp.h1
5 files changed, 31 insertions, 21 deletions
diff --git a/src/alloc.c b/src/alloc.c
index 16257469aa6..2ffd2415447 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -3960,7 +3960,7 @@ Its value is void, and its function definition and property list are nil. */)
3960 if (symbol_free_list) 3960 if (symbol_free_list)
3961 { 3961 {
3962 ASAN_UNPOISON_SYMBOL (symbol_free_list); 3962 ASAN_UNPOISON_SYMBOL (symbol_free_list);
3963 val = make_lisp_symbol (symbol_free_list); 3963 XSETSYMBOL (val, symbol_free_list);
3964 symbol_free_list = symbol_free_list->u.s.next; 3964 symbol_free_list = symbol_free_list->u.s.next;
3965 } 3965 }
3966 else 3966 else
@@ -3976,7 +3976,7 @@ Its value is void, and its function definition and property list are nil. */)
3976 } 3976 }
3977 3977
3978 ASAN_UNPOISON_SYMBOL (&symbol_block->symbols[symbol_block_index]); 3978 ASAN_UNPOISON_SYMBOL (&symbol_block->symbols[symbol_block_index]);
3979 val = make_lisp_symbol (&symbol_block->symbols[symbol_block_index]); 3979 XSETSYMBOL (val, &symbol_block->symbols[symbol_block_index]);
3980 symbol_block_index++; 3980 symbol_block_index++;
3981 } 3981 }
3982 3982
@@ -7398,8 +7398,12 @@ process_mark_stack (ptrdiff_t base_sp)
7398 mark_stack_push_value (SYMBOL_VAL (ptr)); 7398 mark_stack_push_value (SYMBOL_VAL (ptr));
7399 break; 7399 break;
7400 case SYMBOL_VARALIAS: 7400 case SYMBOL_VARALIAS:
7401 mark_stack_push_value (make_lisp_symbol (SYMBOL_ALIAS (ptr))); 7401 {
7402 break; 7402 Lisp_Object tem;
7403 XSETSYMBOL (tem, SYMBOL_ALIAS (ptr));
7404 mark_stack_push_value (tem);
7405 break;
7406 }
7403 case SYMBOL_LOCALIZED: 7407 case SYMBOL_LOCALIZED:
7404 { 7408 {
7405 struct Lisp_Buffer_Local_Value *blv = SYMBOL_BLV (ptr); 7409 struct Lisp_Buffer_Local_Value *blv = SYMBOL_BLV (ptr);
diff --git a/src/buffer.c b/src/buffer.c
index 9f55a8813fa..43a9249528c 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1340,7 +1340,7 @@ buffer_local_value (Lisp_Object variable, Lisp_Object buffer)
1340 case SYMBOL_LOCALIZED: 1340 case SYMBOL_LOCALIZED:
1341 { /* Look in local_var_alist. */ 1341 { /* Look in local_var_alist. */
1342 struct Lisp_Buffer_Local_Value *blv = SYMBOL_BLV (sym); 1342 struct Lisp_Buffer_Local_Value *blv = SYMBOL_BLV (sym);
1343 variable = make_lisp_symbol (sym); /* Update In case of aliasing. */ 1343 XSETSYMBOL (variable, sym); /* Update In case of aliasing. */
1344 result = assq_no_quit (variable, BVAR (buf, local_var_alist)); 1344 result = assq_no_quit (variable, BVAR (buf, local_var_alist));
1345 if (!NILP (result)) 1345 if (!NILP (result))
1346 { 1346 {
@@ -4985,7 +4985,7 @@ defvar_per_buffer (struct Lisp_Buffer_Objfwd *bo_fwd, const char *namestring,
4985 sym->u.s.declared_special = true; 4985 sym->u.s.declared_special = true;
4986 sym->u.s.redirect = SYMBOL_FORWARDED; 4986 sym->u.s.redirect = SYMBOL_FORWARDED;
4987 SET_SYMBOL_FWD (sym, bo_fwd); 4987 SET_SYMBOL_FWD (sym, bo_fwd);
4988 PER_BUFFER_SYMBOL (offset) = make_lisp_symbol (sym); 4988 XSETSYMBOL (PER_BUFFER_SYMBOL (offset), sym);
4989 4989
4990 if (PER_BUFFER_IDX (offset) == 0) 4990 if (PER_BUFFER_IDX (offset) == 0)
4991 /* Did a DEFVAR_PER_BUFFER without initializing the corresponding 4991 /* Did a DEFVAR_PER_BUFFER without initializing the corresponding
diff --git a/src/data.c b/src/data.c
index c87b5317618..df08eaf8102 100644
--- a/src/data.c
+++ b/src/data.c
@@ -1256,7 +1256,7 @@ If OBJECT is not a symbol, just return it. */)
1256 struct Lisp_Symbol *sym = XSYMBOL (object); 1256 struct Lisp_Symbol *sym = XSYMBOL (object);
1257 while (sym->u.s.redirect == SYMBOL_VARALIAS) 1257 while (sym->u.s.redirect == SYMBOL_VARALIAS)
1258 sym = SYMBOL_ALIAS (sym); 1258 sym = SYMBOL_ALIAS (sym);
1259 object = make_lisp_symbol (sym); 1259 XSETSYMBOL (object, sym);
1260 } 1260 }
1261 return object; 1261 return object;
1262} 1262}
@@ -1506,9 +1506,12 @@ swap_in_symval_forwarding (struct Lisp_Symbol *symbol, struct Lisp_Buffer_Local_
1506 if (blv->fwd.fwdptr) 1506 if (blv->fwd.fwdptr)
1507 set_blv_value (blv, do_symval_forwarding (blv->fwd)); 1507 set_blv_value (blv, do_symval_forwarding (blv->fwd));
1508 /* Choose the new binding. */ 1508 /* Choose the new binding. */
1509 tem1 = assq_no_quit (make_lisp_symbol (symbol), 1509 {
1510 BVAR (current_buffer, local_var_alist)); 1510 Lisp_Object var;
1511 set_blv_where (blv, Fcurrent_buffer ()); 1511 XSETSYMBOL (var, symbol);
1512 tem1 = assq_no_quit (var, BVAR (current_buffer, local_var_alist));
1513 set_blv_where (blv, Fcurrent_buffer ());
1514 }
1512 if (!(blv->found = !NILP (tem1))) 1515 if (!(blv->found = !NILP (tem1)))
1513 tem1 = blv->defcell; 1516 tem1 = blv->defcell;
1514 1517
@@ -1652,8 +1655,7 @@ set_internal (Lisp_Object symbol, Lisp_Object newval, Lisp_Object where,
1652 set_blv_value (blv, do_symval_forwarding (blv->fwd)); 1655 set_blv_value (blv, do_symval_forwarding (blv->fwd));
1653 1656
1654 /* Find the new binding. */ 1657 /* Find the new binding. */
1655 /* May have changed via aliasing. */ 1658 XSETSYMBOL (symbol, sym); /* May have changed via aliasing. */
1656 symbol = make_lisp_symbol (sym);
1657 Lisp_Object tem1 1659 Lisp_Object tem1
1658 = assq_no_quit (symbol, 1660 = assq_no_quit (symbol,
1659 BVAR (XBUFFER (where), local_var_alist)); 1661 BVAR (XBUFFER (where), local_var_alist));
@@ -2057,10 +2059,13 @@ make_blv (struct Lisp_Symbol *sym, bool forwarded,
2057 union Lisp_Val_Fwd valcontents) 2059 union Lisp_Val_Fwd valcontents)
2058{ 2060{
2059 struct Lisp_Buffer_Local_Value *blv = xmalloc (sizeof *blv); 2061 struct Lisp_Buffer_Local_Value *blv = xmalloc (sizeof *blv);
2060 Lisp_Object tem = Fcons (make_lisp_symbol (sym), 2062 Lisp_Object symbol;
2061 forwarded 2063 Lisp_Object tem;
2062 ? do_symval_forwarding (valcontents.fwd) 2064
2063 : valcontents.value); 2065 XSETSYMBOL (symbol, sym);
2066 tem = Fcons (symbol, (forwarded
2067 ? do_symval_forwarding (valcontents.fwd)
2068 : valcontents.value));
2064 2069
2065 /* Buffer_Local_Values cannot have as realval a buffer-local 2070 /* Buffer_Local_Values cannot have as realval a buffer-local
2066 or keyboard-local forwarding. */ 2071 or keyboard-local forwarding. */
@@ -2216,7 +2221,7 @@ Instead, use `add-hook' and specify t for the LOCAL argument. */)
2216 } 2221 }
2217 2222
2218 /* Make sure this buffer has its own value of symbol. */ 2223 /* Make sure this buffer has its own value of symbol. */
2219 variable = make_lisp_symbol (sym); /* Update in case of aliasing. */ 2224 XSETSYMBOL (variable, sym); /* Update in case of aliasing. */
2220 tem = assq_no_quit (variable, BVAR (current_buffer, local_var_alist)); 2225 tem = assq_no_quit (variable, BVAR (current_buffer, local_var_alist));
2221 if (NILP (tem)) 2226 if (NILP (tem))
2222 { 2227 {
@@ -2296,7 +2301,7 @@ From now on the default value will apply in this buffer. Return VARIABLE. */)
2296 notify_variable_watchers (variable, Qnil, Qmakunbound, Fcurrent_buffer ()); 2301 notify_variable_watchers (variable, Qnil, Qmakunbound, Fcurrent_buffer ());
2297 2302
2298 /* Get rid of this buffer's alist element, if any. */ 2303 /* Get rid of this buffer's alist element, if any. */
2299 variable = make_lisp_symbol (sym); /* Propagate variable indirection. */ 2304 XSETSYMBOL (variable, sym); /* Propagate variable indirection. */
2300 tem = assq_no_quit (variable, BVAR (current_buffer, local_var_alist)); 2305 tem = assq_no_quit (variable, BVAR (current_buffer, local_var_alist));
2301 if (!NILP (tem)) 2306 if (!NILP (tem))
2302 bset_local_var_alist 2307 bset_local_var_alist
@@ -2341,7 +2346,7 @@ Also see `buffer-local-boundp'.*/)
2341 Lisp_Object tmp; 2346 Lisp_Object tmp;
2342 struct Lisp_Buffer_Local_Value *blv = SYMBOL_BLV (sym); 2347 struct Lisp_Buffer_Local_Value *blv = SYMBOL_BLV (sym);
2343 XSETBUFFER (tmp, buf); 2348 XSETBUFFER (tmp, buf);
2344 variable = make_lisp_symbol (sym); /* Update in case of aliasing. */ 2349 XSETSYMBOL (variable, sym); /* Update in case of aliasing. */
2345 2350
2346 if (EQ (blv->where, tmp)) /* The binding is already loaded. */ 2351 if (EQ (blv->where, tmp)) /* The binding is already loaded. */
2347 return blv_found (blv) ? Qt : Qnil; 2352 return blv_found (blv) ? Qt : Qnil;
@@ -2391,7 +2396,7 @@ value in BUFFER, or if VARIABLE is automatically buffer-local (see
2391 struct Lisp_Buffer_Local_Value *blv = SYMBOL_BLV (sym); 2396 struct Lisp_Buffer_Local_Value *blv = SYMBOL_BLV (sym);
2392 if (blv->local_if_set) 2397 if (blv->local_if_set)
2393 return Qt; 2398 return Qt;
2394 variable = make_lisp_symbol (sym); /* Update in case of aliasing. */ 2399 XSETSYMBOL (variable, sym); /* Update in case of aliasing. */
2395 return Flocal_variable_p (variable, buffer); 2400 return Flocal_variable_p (variable, buffer);
2396 } 2401 }
2397 case SYMBOL_FORWARDED: 2402 case SYMBOL_FORWARDED:
diff --git a/src/eval.c b/src/eval.c
index 9d3b98eb359..95eb21909d2 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -3475,7 +3475,7 @@ specbind (Lisp_Object symbol, Lisp_Object value)
3475 switch (sym->u.s.redirect) 3475 switch (sym->u.s.redirect)
3476 { 3476 {
3477 case SYMBOL_VARALIAS: 3477 case SYMBOL_VARALIAS:
3478 sym = SYMBOL_ALIAS (sym); symbol = make_lisp_symbol (sym); goto start; 3478 sym = SYMBOL_ALIAS (sym); XSETSYMBOL (symbol, sym); goto start;
3479 case SYMBOL_PLAINVAL: 3479 case SYMBOL_PLAINVAL:
3480 /* The most common case is that of a non-constant symbol with a 3480 /* The most common case is that of a non-constant symbol with a
3481 trivial value. Make that as fast as we can. */ 3481 trivial value. Make that as fast as we can. */
diff --git a/src/lisp.h b/src/lisp.h
index 4fc44745211..f353e4956eb 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -1380,6 +1380,7 @@ make_lisp_ptr (void *ptr, enum Lisp_Type type)
1380#define XSETCONS(a, b) ((a) = make_lisp_ptr (b, Lisp_Cons)) 1380#define XSETCONS(a, b) ((a) = make_lisp_ptr (b, Lisp_Cons))
1381#define XSETVECTOR(a, b) ((a) = make_lisp_ptr (b, Lisp_Vectorlike)) 1381#define XSETVECTOR(a, b) ((a) = make_lisp_ptr (b, Lisp_Vectorlike))
1382#define XSETSTRING(a, b) ((a) = make_lisp_ptr (b, Lisp_String)) 1382#define XSETSTRING(a, b) ((a) = make_lisp_ptr (b, Lisp_String))
1383#define XSETSYMBOL(a, b) ((a) = make_lisp_symbol (b))
1383#define XSETFLOAT(a, b) ((a) = make_lisp_ptr (b, Lisp_Float)) 1384#define XSETFLOAT(a, b) ((a) = make_lisp_ptr (b, Lisp_Float))
1384 1385
1385/* Return a Lisp_Object value that does not correspond to any object. 1386/* Return a Lisp_Object value that does not correspond to any object.