0.9.5.64:
[sbcl.git] / src / code / target-alieneval.lisp
index c670384..f64a212 100644 (file)
@@ -792,6 +792,7 @@ ENTER-ALIEN-CALLBACK pulls the corresponsing trampoline out and calls it.")
          (argument-names arguments)
          (argument-specs (cddr specifier)))
     `(lambda (args-pointer result-pointer function)
+       ;; FIXME: the saps are not gc safe
        (let ((args-sap (int-sap
                         (sb!kernel:get-lisp-obj-address args-pointer)))
              (res-sap (int-sap
@@ -837,7 +838,8 @@ ENTER-ALIEN-CALLBACK pulls the corresponsing trampoline out and calls it.")
   (destructuring-bind (function result-type &rest argument-types)
       specifier
     (aver (eq 'function function))
-    (values (parse-alien-type result-type env)
+    (values (let ((*values-type-okay* t))
+              (parse-alien-type result-type env))
             (mapcar (lambda (spec)
                       (parse-alien-type spec env))
                     argument-types))))