make_lisp_proc bug
[bpt/emacs.git] / src / lisp.h
index edfc2af..7d9951b 100644 (file)
@@ -706,18 +706,13 @@ XBOOL_VECTOR (Lisp_Object a)
   return SMOB_PTR (a);
 }
 
-INLINE Lisp_Object
-make_lisp_proc (struct Lisp_Process *p)
-{
-  return scm_new_smob (lisp_vectorlike_tag, (scm_t_bits) p);
-}
-
 #define XSETINT(a, b) ((a) = make_number (b))
 #define XSETFASTINT(a, b) ((a) = make_natnum (b))
 #define XSETVECTOR(a, b) ((a) = (b)->header.self)
 #define XSETSTRING(a, b) ((a) = (b)->self)
 #define XSETSYMBOL(a, b) ((a) = scm_c_vector_ref (b, 0))
 #define XSETMISC(a, b) (a) = ((union Lisp_Misc *) (b))->u_any.self
+#define make_lisp_proc(p) ((p)->header.self)
 
 /* Pseudovector types.  */
 
@@ -1353,10 +1348,16 @@ SYMBOL_INTERNED_P (Lisp_Object sym)
   return scm_is_true (scm_symbol_interned_p (sym));
 }
 
+extern Lisp_Object Ffboundp (Lisp_Object);
+extern Lisp_Object Fmakunbound (Lisp_Object);
+extern Lisp_Object Ffmakunbound (Lisp_Object);
+extern Lisp_Object Ffset (Lisp_Object, Lisp_Object);
+extern Lisp_Object Fsymbol_function (Lisp_Object);
+
 INLINE Lisp_Object
 SYMBOL_FUNCTION (Lisp_Object sym)
 {
-  return scm_call_1 (scm_c_public_ref ("elisp-functions", "symbol-function"), sym);
+  return Fsymbol_function (sym);
 }
 
 /* Value is non-zero if symbol is considered a constant, i.e. its
@@ -4003,13 +4004,16 @@ functionp (Lisp_Object object)
       Lisp_Object car = XCAR (object);
       return EQ (car, Qlambda) || EQ (car, Qclosure);
     }
+  else
+    return false;
 }
 
+extern Lisp_Object xsymbol_fn;
+
 INLINE sym_t
 XSYMBOL (Lisp_Object a)
 {
-  return scm_call_1 (scm_c_public_ref ("language elisp runtime", "symbol-desc"),
-                     a);
+  return scm_call_1 (xsymbol_fn, a);
 }
 
 INLINE_HEADER_END