chiark / gitweb /
Fixed previous broken change to DEFBINDING
authorespen <espen>
Tue, 15 Feb 2005 15:28:15 +0000 (15:28 +0000)
committerespen <espen>
Tue, 15 Feb 2005 15:28:15 +0000 (15:28 +0000)
glib/ffi.lisp

index 6797b39ed1275c63a23e7d924c04aad32b7ffd39..29dddd0cf59accb1ab8603b798252be63010c862 100644 (file)
@@ -15,7 +15,7 @@
 ;; License along with this library; if not, write to the Free Software
 ;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-;; $Id: ffi.lisp,v 1.14 2005-02-14 17:49:17 espen Exp $
+;; $Id: ffi.lisp,v 1.15 2005-02-15 15:28:15 espen Exp $
 
 (in-package "GLIB")
 
@@ -128,9 +128,10 @@ (defun %defbinding (foreign-name lisp-name lambda-list return-type docs args)
             (alien-parameters `(addr ,var))
             (alien-bindings
              `(,var ,declaration
-               ,(if (eq style :in-out)
-                    (to-alien-form expr type)
-                  (make-pointer 0))))
+               ,@(cond 
+                  ((eq style :in-out) (list (to-alien-form expr type)))
+                  ((eq declaration 'system-area-pointer) 
+                   (list '(make-pointer 0))))))
             (return-values (from-alien-form var type)))
            ((eq style :return)
             (alien-types declaration)