diff options
author | Matthias Benkard <code@mail.matthias.benkard.de> | 2008-02-15 10:44:10 +0100 |
---|---|---|
committer | Matthias Benkard <code@mail.matthias.benkard.de> | 2008-02-15 10:44:10 +0100 |
commit | 2e244d781b1b1096cddfd0df558ec7cee19b33a1 (patch) | |
tree | 577cbb7f02eebf2a6ebc5e21a051df55068547d9 /Lisp/libobjcl.lisp | |
parent | 63af3522ffbd5c3e1003a908d804c4e079d8f5e8 (diff) |
System refactoring.
darcs-hash:961c2ecf3be60a2a4abcfd15f3e51b5ccfb163c0
Diffstat (limited to 'Lisp/libobjcl.lisp')
-rw-r--r-- | Lisp/libobjcl.lisp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/Lisp/libobjcl.lisp b/Lisp/libobjcl.lisp index 0858cb9..89930b8 100644 --- a/Lisp/libobjcl.lisp +++ b/Lisp/libobjcl.lisp @@ -375,6 +375,22 @@ conventional case for namespace identifiers in Objective-C." (cffi:pointer-eq pointer (objcl-get-nil)))) +(defun objc-null (value) + (or (null value) + (and (typep value 'c-pointer-wrapper) + (objc-pointer-null (pointer-to value))))) + + +(defmacro objc-or (&rest forms) + (let ((sym (gensym))) + `(let ((,sym ,(first forms))) + (if (objc-null ,sym) + ,(if (rest forms) + `(objc-or ,@(rest forms)) + 'nil) + ,sym)))) + + (declaim (ftype (function (string) (or null selector)) find-selector-by-name)) (defun find-selector-by-name (selector-name) |