From cf0280b417a33615176253bd2c4ef1db56069e0c Mon Sep 17 00:00:00 2001 From: Dmitry Kalyanov Date: Tue, 2 Jun 2009 00:08:56 +0400 Subject: [PATCH] Added slot-boundp-using-class for gobjects --- glib/gobject.meta.lisp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/glib/gobject.meta.lisp b/glib/gobject.meta.lisp index ab05e3f..9d6d348 100644 --- a/glib/gobject.meta.lisp +++ b/glib/gobject.meta.lisp @@ -179,14 +179,15 @@ (let ((pointer (create-gobject-from-class-and-initargs class initargs))) (call-next-method class :pointer pointer)))) +(defmethod slot-boundp-using-class ((class gobject-class) object (slot gobject-property-effective-slot-definition)) + (handler-case + (progn (g-object-property-type object (gobject-property-effective-slot-definition-g-property-name slot) :assert-readable t) t) + (property-unreadable-error () nil))) + (defmethod slot-value-using-class ((class gobject-class) object (slot gobject-property-effective-slot-definition)) - (handler-bind - ((property-unreadable-error (lambda (condition) - (declare (ignore condition)) - (invoke-restart 'return-nil)))) - (g-object-call-get-property object - (gobject-property-effective-slot-definition-g-property-name slot) - (gobject-effective-slot-definition-g-property-type slot)))) + (g-object-call-get-property object + (gobject-property-effective-slot-definition-g-property-name slot) + (gobject-effective-slot-definition-g-property-type slot))) (defmethod (setf slot-value-using-class) (new-value (class gobject-class) object (slot gobject-property-effective-slot-definition)) (g-object-call-set-property object -- 1.7.10.4