X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/clg/blobdiff_plain/e624bc26ef4d71c868839b403d110152cf22d714..56ccd5b731e30f2d195cefc4cbf0b8640fac2c92:/glib/gobject.lisp diff --git a/glib/gobject.lisp b/glib/gobject.lisp index 3c67fe0..aa951f8 100644 --- a/glib/gobject.lisp +++ b/glib/gobject.lisp @@ -20,7 +20,7 @@ ;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -;; $Id: gobject.lisp,v 1.46 2006-02-09 22:29:01 espen Exp $ +;; $Id: gobject.lisp,v 1.48 2006-02-19 19:31:14 espen Exp $ (in-package "GLIB") @@ -64,7 +64,8 @@ (defbinding %object-unref () nil #+glib2.8 (progn - (defcallback toggle-ref-callback (nil (data pointer) (location pointer) (last-ref-p boolean)) + (define-callback toggle-ref-callback nil + ((data pointer) (location pointer) (last-ref-p boolean)) #+debug-ref-counting (if last-ref-p (format t "Object at 0x~8,'0X has no foreign references~%" (sap-int location)) @@ -75,12 +76,12 @@ (defcallback toggle-ref-callback (nil (data pointer) (location pointer) (last- (defbinding %object-add-toggle-ref () pointer (location pointer) - ((callback toggle-ref-callback) pointer) + (toggle-ref-callback callback) (nil null)) (defbinding %object-remove-toggle-ref () pointer (location pointer) - ((callback toggle-ref-callback) pointer) + (toggle-ref-callback callback) (nil null))) (defmethod reference-foreign ((class gobject-class) location) @@ -93,12 +94,12 @@ (defmethod unreference-foreign ((class gobject-class) location) #+debug-ref-counting (progn - (defcallback weak-ref-callback (nil (data pointer) (location pointer)) + (define-callback weak-ref-callback nil ((data pointer) (location pointer)) (format t "Object at 0x~8,'0X being finalized~%" (sap-int location))) (defbinding %object-weak-ref () pointer (location pointer) - ((callback weak-ref-callback) pointer) + (weak-ref-callback callback) (nil null))) @@ -128,7 +129,7 @@ (defmethod effective-slot-definition-class ((class gobject-class) &rest initargs (t (call-next-method)))) (defmethod compute-effective-slot-definition-initargs ((class gobject-class) direct-slotds) - (if (typep (first direct-slotds) 'direct-property-slot-definition) + (if (eq (slot-definition-allocation (first direct-slotds)) :property) (nconc (list :pname (signal-name-to-string (most-specific-slot-value direct-slotds 'pname @@ -381,16 +382,14 @@ (defbinding %object-set-qdata-full () nil (object gobject) (id quark) (data unsigned-long) - (destroy-marshal pointer)) + (destroy-marshal callback)) -(defcallback user-data-destroy-func (nil (id unsigned-int)) +(define-callback user-data-destroy-callback nil ((id unsigned-int)) (destroy-user-data id)) -(export 'user-data-destroy-func) - (defun (setf user-data) (data object key) (%object-set-qdata-full object (quark-intern key) - (register-user-data data) (callback user-data-destroy-func)) + (register-user-data data) user-data-destroy-callback) data) ;; deprecated