diff options
| author | Mattias EngdegÄrd | 2024-03-04 14:14:05 +0100 |
|---|---|---|
| committer | Mattias EngdegÄrd | 2024-03-04 14:14:05 +0100 |
| commit | 11ffb4656d768b09e1f7dfacc091d85eef4a403a (patch) | |
| tree | 4469592094317fb49925cf4408516e9349bfeb87 /src | |
| parent | b9e8474a4470f71c30a4b89651fd3c5f2ef92ba2 (diff) | |
| download | emacs-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.
Diffstat (limited to 'src')
| -rw-r--r-- | src/alloc.c | 12 | ||||
| -rw-r--r-- | src/buffer.c | 4 | ||||
| -rw-r--r-- | src/data.c | 33 | ||||
| -rw-r--r-- | src/eval.c | 2 | ||||
| -rw-r--r-- | src/lisp.h | 1 |
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. |