use vectors for symbol slots
[bpt/emacs.git] / src / alloc.c
index 3fe4601..a300396 100644 (file)
@@ -1168,17 +1168,17 @@ usage: (make-byte-code ARGLIST BYTE-CODE CONSTANTS DEPTH &optional DOCSTRING INT
 void
 initialize_symbol (Lisp_Object val, Lisp_Object name)
 {
-  struct Lisp_Symbol *p = xmalloc (sizeof *p);
+  sym_t p;
 
-  scm_module_define (symbol_module, val, scm_from_pointer (p, NULL));
+  scm_module_define (symbol_module, val, scm_c_make_vector (5, SCM_BOOL_F));
   p = XSYMBOL (val);
-  p->self = val;
+  SET_SYMBOL_SELF (p, val);
   scm_module_define (plist_module, val, Qnil);
-  p->redirect = SYMBOL_PLAINVAL;
+  SET_SYMBOL_REDIRECT (p, SYMBOL_PLAINVAL);
   SET_SYMBOL_VAL (p, Qunbound);
   scm_module_define (function_module, val, Qnil);
-  p->constant = 0;
-  p->declared_special = false;
+  SET_SYMBOL_CONSTANT (p, 0);
+  SET_SYMBOL_DECLARED_SPECIAL (p, false);
 }
 
 DEFUN ("make-symbol", Fmake_symbol, Smake_symbol, 1, 1, 0,