diff --git a/init/body-expand.lisp b/init/body-expand.lisp index 8d617279850a41387050462b81e83d70e3071599..99a62ea5b7949927247c208af60577eb2559e47d 100644 --- a/init/body-expand.lisp +++ b/init/body-expand.lisp @@ -1,6 +1,6 @@ ;; Expand the body of a defmfun ;; Liam Healy 2009-04-13 22:07:13EDT body-expand.lisp -;; Time-stamp: <2010-11-27 13:54:41EST body-expand.lisp> +;; Time-stamp: <2010-11-27 22:08:19EST body-expand.lisp> ;; ;; Copyright 2009, 2010 Liam M. Healy ;; Distributed under the terms of the GNU General Public License @@ -86,21 +86,17 @@ "Generate a form that calls the appropriate converter from C/GSL to CL." (or #+fsbv - (if (member (grid:st-actual-type decl) fsbv::*libffi-struct-defs*) + (if (fsbv:converter-defined-p (grid:st-actual-type decl)) `((fsbv:object ,(grid:st-symbol decl) ',(grid:st-actual-type decl)))) #-fsbv nil (case (grid:st-actual-type decl) (sf-result - `((val ,(grid:st-symbol decl)) - (err ,(grid:st-symbol decl)))) + `((val ,(grid:st-symbol decl)) + (err ,(grid:st-symbol decl)))) (sf-result-e10 - `((val ,(grid:st-symbol decl) 'sf-result-e10) - (e10 ,(grid:st-symbol decl)) - (err ,(grid:st-symbol decl) 'sf-result-e10))) - (grid:complex-double-c - `((grid:complex-to-cl ,(grid:st-symbol decl) 'grid:complex-double-c))) - (grid:complex-float-c - `((grid:complex-to-cl ,(grid:st-symbol decl) 'grid:complex-float-c))) + `((val ,(grid:st-symbol decl) 'sf-result-e10) + (e10 ,(grid:st-symbol decl)) + (err ,(grid:st-symbol decl) 'sf-result-e10))) (t `((cffi:mem-aref ,(grid:st-symbol decl) ',(grid:st-actual-type decl))))))) (defun body-expand (name arglist gsl-name c-arguments key-args) @@ -214,4 +210,3 @@ (not return-supplied-p)) (and (null return) return-supplied-p)) clret)))) -