From: espen Date: Sat, 12 Mar 2005 19:38:12 +0000 (+0000) Subject: Reverted a previous change which didn't work X-Git-Tag: clg-0-90~35 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/clg/commitdiff_plain/7554d66ce2d63597f774c885ad43bc2bab68c396?hp=609ba9053159e7ff96feed62e73f70dfb7a5cfd3 Reverted a previous change which didn't work --- diff --git a/glib/gtype.lisp b/glib/gtype.lisp index 2dd8e54..7e21cca 100644 --- a/glib/gtype.lisp +++ b/glib/gtype.lisp @@ -15,7 +15,7 @@ ;; License along with this library; if not, write to the Free Software ;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -;; $Id: gtype.lisp,v 1.29 2005/03/11 20:16:07 espen Exp $ +;; $Id: gtype.lisp,v 1.30 2005/03/12 19:38:12 espen Exp $ (in-package "GLIB") @@ -237,7 +237,7 @@ (defclass ginstance-class (proxy-class) ())) -(defmethod shared-initialize ((class ginstance-class) names &key name gtype) +(defmethod shared-initialize ((class ginstance-class) names &rest initargs &key name gtype) (declare (ignore names)) (let* ((class-name (or name (class-name class))) (type-number @@ -245,9 +245,10 @@ (defmethod shared-initialize ((class ginstance-class) names &key name gtype) (find-type-number class-name) (register-type class-name (or (first gtype) (default-type-init-name class-name)))))) - (call-next-method) - (when (slot-boundp class 'size) - (setf (slot-value class 'size) (type-instance-size type-number))))) + (if (getf initargs :size) + (call-next-method) + (let ((size (type-instance-size type-number))) + (apply #'call-next-method class names :size (list size) initargs))))) (defmethod validate-superclass ((class ginstance-class) (super standard-class))