cffi-abcl: pointerp and null-pointer-p should work on non-pointers.
authorStas Boukarev <stassats@gmail.com>
Wed, 19 Dec 2012 10:27:43 +0000 (14:27 +0400)
committerLuís Oliveira <loliveira@common-lisp.net>
Mon, 7 Jan 2013 21:20:38 +0000 (21:20 +0000)
src/cffi-abcl.lisp

index 046f9d7..7f61710 100644 (file)
 
 (defun pointerp (ptr)
   "Return true if PTR is a foreign pointer."
-  (jclass-superclass-p (jclass "com.sun.jna.Pointer") (jclass-of ptr)))
+  (let ((jclass (jclass-of ptr)))
+    (when jclass
+      (jclass-superclass-p (jclass "com.sun.jna.Pointer") jclass))))
 
 (defun make-pointer (address)
   "Return a pointer pointing to ADDRESS."
 
 (defun null-pointer-p (ptr)
   "Return true if PTR is a null pointer."
-  (zerop (pointer-address ptr)))
+  (and (pointerp ptr)
+       (zerop (pointer-address ptr))))
 
 (defun inc-pointer (ptr offset)
   "Return a fresh pointer pointing OFFSET bytes past PTR."