diff options
author | Matthias Benkard <code@mail.matthias.benkard.de> | 2007-08-14 16:03:51 +0200 |
---|---|---|
committer | Matthias Benkard <code@mail.matthias.benkard.de> | 2007-08-14 16:03:51 +0200 |
commit | f9408631aa030926fad625ecf4d18f08b478fc1d (patch) | |
tree | 3b7662585b47e60873c6b165c82fd20dfd560dd5 /Lisp/type-conversion.lisp | |
parent | 6895fb365446fb98b76e2f94d27afa0a7fa18133 (diff) |
Add some type declarations to improve type safety.
darcs-hash:80f199b54225eed3b79fb36bbd49a0745e9033af
Diffstat (limited to 'Lisp/type-conversion.lisp')
-rw-r--r-- | Lisp/type-conversion.lisp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/Lisp/type-conversion.lisp b/Lisp/type-conversion.lisp index 9e8e94f..858538b 100644 --- a/Lisp/type-conversion.lisp +++ b/Lisp/type-conversion.lisp @@ -2,6 +2,9 @@ ;;; (@* "Low-level Data Conversion") +(declaim (ftype (function (*) + (values foreign-pointer &rest nil)) + obj-data->lisp)) (defun lisp->obj-data (value) (let ((obj-data (foreign-alloc 'obj-data)) (type-name (lisp-value->type-name value))) @@ -20,6 +23,11 @@ obj-data)) +(declaim (ftype (function (foreign-pointer) + (values (or number string symbol selector id + objc-class boolean foreign-pointer) + &rest nil)) + obj-data->lisp)) (defun obj-data->lisp (obj-data) (with-foreign-slots ((type data) obj-data obj-data) (let* ((type-name (type-id->type-name (foreign-string-to-lisp type))) @@ -59,6 +67,8 @@ bindings)))) +(declaim (ftype (function (foreign-pointer) (values string &rest nil)) + foreign-string-to-lisp/dealloc)) (defun foreign-string-to-lisp/dealloc (foreign-string) "Convert a (possibly freshly allocated) C string into a Lisp string and free the C string afterwards." |