aboutsummaryrefslogtreecommitdiffstats
path: root/src/bytecode.c
diff options
context:
space:
mode:
authorBT Templeton <[email protected]>2013-09-21 03:24:01 -0400
committerRobin Templeton <[email protected]>2015-04-19 03:43:03 -0400
commit844e0de1bc2bf56118b749f50a4880db7c918fd5 (patch)
treeef27c03d3fcd084a5f6ccd27783c6f01029799ee /src/bytecode.c
parent026b174672c427b035009911de305992a94098d6 (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.c4
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