diff options
Diffstat (limited to 'alien.lisp')
-rw-r--r-- | alien.lisp | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -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)))) |