summaryrefslogtreecommitdiff
path: root/alien.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'alien.lisp')
-rw-r--r--alien.lisp8
1 files changed, 4 insertions, 4 deletions
diff --git a/alien.lisp b/alien.lisp
index 3451dc9..5e870ec 100644
--- a/alien.lisp
+++ b/alien.lisp
@@ -3,10 +3,10 @@
(defmacro call (fname rtype &rest types-n-values)
(let ((tlist (queue:new))
(vlist (queue:new)))
- (dolist (item types-n-values)
- (queue:add tlist (first item))
- (queue:add vlist (second item)))
+ (do () ((null types-n-values) nil)
+ (queue:add tlist (pop types-n-values))
+ (queue:add vlist (pop types-n-values)))
`(alien-funcall (extern-alien ,fname
- (function ,rtype
+ (sb-alien:function ,rtype
,@(queue:to-list tlist)))
,@(queue:to-list vlist))))