X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=glib%2Fgobject.meta.lisp;h=deac5b9ac54716819ce4d6cfb05f44eeb0d50f66;hb=26eb2a10747e18be835de21a06ea57fe57f03d3a;hp=2b67e7e3a381364bd2cce1553f5a456c1b071f84;hpb=fd0b6351a8e276fe4c11cec728ff105b9cab9520;p=cl-gtk2.git diff --git a/glib/gobject.meta.lisp b/glib/gobject.meta.lisp index 2b67e7e..deac5b9 100644 --- a/glib/gobject.meta.lisp +++ b/glib/gobject.meta.lisp @@ -205,15 +205,17 @@ (apply #'call-next-method instance filtered-initargs))) (defmethod make-instance ((class gobject-class) &rest initargs &key pointer) - (if pointer - (progn - (assert (= (length initargs) 2) nil "POINTER can not be combined with other initargs (~A)" initargs) - (call-next-method)) - (let* ((default-initargs (iter (for (arg value) in (class-default-initargs class)) - (nconcing (list arg value)))) - (effective-initargs (append initargs default-initargs)) - (pointer (create-gobject-from-class-and-initargs class effective-initargs))) - (apply #'call-next-method class :pointer pointer effective-initargs)))) + (log-for :subclass "(make-instance ~A ~{~A~^ ~})~%" class initargs) + (let ((*currently-making-object-p* t)) + (if pointer + (progn + (assert (= (length initargs) 2) nil "POINTER can not be combined with other initargs (~A)" initargs) + (call-next-method)) + (let* ((default-initargs (iter (for (arg value) in (class-default-initargs class)) + (nconcing (list arg value)))) + (effective-initargs (append initargs default-initargs)) + (pointer (create-gobject-from-class-and-initargs class effective-initargs))) + (apply #'call-next-method class :pointer pointer effective-initargs))))) (defmethod slot-boundp-using-class ((class gobject-class) object (slot gobject-property-effective-slot-definition)) (handler-case