diff options
author | BT Templeton <[email protected]> | 2013-09-21 03:24:01 -0400 |
---|---|---|
committer | Robin Templeton <[email protected]> | 2015-04-19 03:43:03 -0400 |
commit | 844e0de1bc2bf56118b749f50a4880db7c918fd5 (patch) | |
tree | ef27c03d3fcd084a5f6ccd27783c6f01029799ee /src/bytecode.c | |
parent | 026b174672c427b035009911de305992a94098d6 (diff) |
use vectors for symbol slots
* src/alloc.c (initialize_symbol): Use Guile vectors to store symbol
slots.
* src/lisp.h (lisp_h_SET_SYMBOL_VAL, lisp_h_SYMBOL_CONSTANT_P)
(lisp_h_SYMBOL_VAL): Use Guile vectors to store symbol slots.
(sym_t): New typedef.
(SYMBOL_SELF, SET_SYMBOL_SELF, SYMBOL_REDIRECT, SET_SYMBOL_REDIRECT)
(SYMBOL_CONSTANT, SET_SYMBOL_CONSTANT, SYMBOL_DECLARED_SPECIAL)
(SET_SYMBOL_DECLARED_SPECIAL): New macros.
(struct Lisp_Symbol): Change all field names. All references changed
to use `sym_t' and the above macros instead.
Diffstat (limited to 'src/bytecode.c')
-rw-r--r-- | src/bytecode.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/bytecode.c b/src/bytecode.c index 6e91da11a1..7e7063e131 100644 --- a/src/bytecode.c +++ b/src/bytecode.c @@ -647,7 +647,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, v1 = vectorp[op]; if (SYMBOLP (v1)) { - if (XSYMBOL (v1)->redirect != SYMBOL_PLAINVAL + if (SYMBOL_REDIRECT (XSYMBOL (v1)) != SYMBOL_PLAINVAL || (v2 = SYMBOL_VAL (XSYMBOL (v1)), EQ (v2, Qunbound))) { @@ -756,7 +756,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, /* Inline the most common case. */ if (SYMBOLP (sym) && !EQ (val, Qunbound) - && !XSYMBOL (sym)->redirect + && !SYMBOL_REDIRECT (XSYMBOL (sym)) && !SYMBOL_CONSTANT_P (sym)) SET_SYMBOL_VAL (XSYMBOL (sym), val); else |