[armedbear-cvs] r14009 - trunk/abcl/src/org/armedbear/lisp

rschlatte at common-lisp.net rschlatte at common-lisp.net
Mon Jul 16 13:30:39 UTC 2012


Author: rschlatte
Date: Mon Jul 16 06:30:26 2012
New Revision: 14009

Log:
Don't redefine metaclasses

Modified:
   trunk/abcl/src/org/armedbear/lisp/clos.lisp

Modified: trunk/abcl/src/org/armedbear/lisp/clos.lisp
==============================================================================
--- trunk/abcl/src/org/armedbear/lisp/clos.lisp	Sun Jul 15 03:38:05 2012	(r14008)
+++ trunk/abcl/src/org/armedbear/lisp/clos.lisp	Mon Jul 16 06:30:26 2012	(r14009)
@@ -888,11 +888,12 @@
 non-existent superclasses, default initargs, or other complicated stuff.
 Handle with care."
   (let ((class (gensym)))
-    `(let ((,class (make-instance-standard-class
-                    nil
-                    :name ',name
-                    :direct-superclasses ',(mapcar #'find-class superclasses)
-                    :direct-slots ,(canonicalize-direct-slots direct-slots))))
+    `(let ((,class (or (find-class ',name nil)
+                       (make-instance-standard-class
+                        nil
+                        :name ',name
+                        :direct-superclasses ',(mapcar #'find-class superclasses)
+                        :direct-slots ,(canonicalize-direct-slots direct-slots)))))
        (%set-find-class ',name ,class)
        ,class)))
 




More information about the armedbear-cvs mailing list