misc changes
authorRobin Templeton <robin@terpri.org>
Thu, 7 Aug 2014 21:16:22 +0000 (17:16 -0400)
committerRobin Templeton <robin@terpri.org>
Mon, 20 Apr 2015 04:29:02 +0000 (00:29 -0400)
src/emacs.c
src/lisp.h

index ca22885..319f5ef 100644 (file)
@@ -710,6 +710,9 @@ string_from_scheme (Lisp_Object scheme_string)
                                  nbytes);
 }
 
+Lisp_Object xsymbol_fn;
+Lisp_Object symbol_function_fn;
+
 static int main2 (void *, int, char **);
 
 int
@@ -1198,6 +1201,9 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem
                            "lisp-string?",
                            scm_c_make_gsubr ("stringp", 1, 0, 0, Fstringp));
 
+      xsymbol_fn = scm_c_public_ref ("language elisp runtime", "symbol-desc");
+      symbol_function_fn = scm_c_public_ref ("language elisp runtime", "symbol-function");
+
       init_guile ();
       init_fns_once ();
       init_obarray ();
index edfc2af..5d8956e 100644 (file)
@@ -1353,10 +1353,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 +4009,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