Add handling of NIL values in translate-to-foreign for boxed-opaque
authorDmitry Kalyanov <Kalyanov.Dmitry@gmail.com>
Mon, 18 Jan 2010 23:27:07 +0000 (02:27 +0300)
committerDmitry Kalyanov <Kalyanov.Dmitry@gmail.com>
Mon, 18 Jan 2010 23:27:07 +0000 (02:27 +0300)
glib/gobject.boxed.lisp

index 983d0ff..4720155 100644 (file)
   (make-instance 'boxed-opaque-foreign-type :info info :return-p return-p))
 
 (defmethod translate-to-foreign (proxy (type boxed-opaque-foreign-type))
-  (prog1 (g-boxed-opaque-pointer proxy)
-    (when (g-boxed-foreign-return-p type)
-      (tg:cancel-finalization proxy)
-      (setf (g-boxed-opaque-pointer proxy) nil))))
+  (if (null proxy)
+      (null-pointer)
+      (prog1 (g-boxed-opaque-pointer proxy)
+        (when (g-boxed-foreign-return-p type)
+          (tg:cancel-finalization proxy)
+          (setf (g-boxed-opaque-pointer proxy) nil)))))
 
 (defmethod free-translated-object (native (type boxed-opaque-foreign-type) param)
   (declare (ignore native type param)))