X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/clg/blobdiff_plain/19d91f522ef2b65b125c7c48f9edd5122891d0ff..a9392506c44f3a9d722feef27c1248362f79211e:/glib/ffi.lisp diff --git a/glib/ffi.lisp b/glib/ffi.lisp index d38424f..17d68ca 100644 --- a/glib/ffi.lisp +++ b/glib/ffi.lisp @@ -20,7 +20,7 @@ ;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -;; $Id: ffi.lisp,v 1.20 2005/04/23 16:48:50 espen Exp $ +;; $Id: ffi.lisp,v 1.21 2005/09/26 21:27:31 espen Exp $ (in-package "GLIB") @@ -189,7 +189,10 @@ (defun mkbinding (name return-type &rest arg-types) (%heap-alien (make-heap-alien-info :type (parse-alien-type ftype #+sbcl nil) - :sap-form (foreign-symbol-address name)))) + :sap-form (let ((address (foreign-symbol-address name))) + (etypecase address + (integer (int-sap address)) + (system-area-pointer address)))))) (translate-arguments (mapcar #'to-alien-function arg-types)) (translate-return-value (from-alien-function return-type)) (cleanup-arguments (mapcar #'cleanup-function arg-types)))