X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=glib%2Fgobject.foreign-gobject-subclassing.lisp;h=cb9fc9468487a3eb5110603e22392dce8be90ab8;hb=84fb40788d8b8c0c0dc5ad66ee02da0519c4676f;hp=b64f4518fdc1b0ae3d86bb16d6e9dc0853c56b05;hpb=8b6767cf4830672f2d929b66031f561857b9f1cd;p=cl-gtk2.git diff --git a/glib/gobject.foreign-gobject-subclassing.lisp b/glib/gobject.foreign-gobject-subclassing.lisp index b64f451..cb9fc94 100644 --- a/glib/gobject.foreign-gobject-subclassing.lisp +++ b/glib/gobject.foreign-gobject-subclassing.lisp @@ -198,11 +198,13 @@ (setf parent (g-type-name (ensure-g-type parent)))) `(progn (setf (gethash ,name *registered-types*) (make-object-type :name ,name :class ',class :parent ,parent :interfaces ',interfaces :properties ',properties)) - (with-foreign-object (query 'g-type-query) - (g-type-query (g-type-from-name ,parent) query) - (with-foreign-slots ((class-size instance-size) query g-type-query) - (g-type-register-static-simple (g-type-from-name ,parent) ,name class-size (callback c-class-init) instance-size (callback c-instance-init) nil))) - (add-interfaces ,name) + (at-init + (format t "Registering GObject type implementation ~A for type ~A~%" ',class ,name) + (with-foreign-object (query 'g-type-query) + (g-type-query (g-type-from-name ,parent) query) + (with-foreign-slots ((class-size instance-size) query g-type-query) + (g-type-register-static-simple (g-type-from-name ,parent) ,name class-size (callback c-class-init) instance-size (callback c-instance-init) nil))) + (add-interfaces ,name)) (defmethod initialize-instance :before ((object ,class) &key pointer) (unless (or pointer (and (slot-boundp object 'gobject::pointer) (gobject::pointer object)))