summaryrefslogtreecommitdiff
path: root/Lisp/libobjcl.lisp
diff options
context:
space:
mode:
authorMatthias Benkard <code@mail.matthias.benkard.de>2008-02-10 17:36:08 +0100
committerMatthias Benkard <code@mail.matthias.benkard.de>2008-02-10 17:36:08 +0100
commit38747051bbe8bf893363c99374118e237e252cb7 (patch)
treede9bd9c4e7d27dc218a5d509c11a55f48087957b /Lisp/libobjcl.lisp
parentede0c056cba36f65464c9ac4f15d00b44eeacd4f (diff)
System definition: Copy the system prior to compilation instead of after it.
darcs-hash:73cfed6be2a95e02cf75bcd8cc6b26abf3778a9e
Diffstat (limited to 'Lisp/libobjcl.lisp')
-rw-r--r--Lisp/libobjcl.lisp12
1 files changed, 7 insertions, 5 deletions
diff --git a/Lisp/libobjcl.lisp b/Lisp/libobjcl.lisp
index 5616f71..6b14115 100644
--- a/Lisp/libobjcl.lisp
+++ b/Lisp/libobjcl.lisp
@@ -354,11 +354,13 @@ conventional case for namespace identifiers in Objective-C."
'objective-c-meta-class)
superclass
(class-of superclass))
- (c2mop:ensure-class
- (objc-fake-meta-class-name->symbol class-name-string)
- :metaclass 'objective-c-meta-class
- :pointer class-ptr
- :direct-superclasses (list superclass)))))
+ (let ((fake-metaclass-name
+ (objc-fake-meta-class-name->symbol class-name-string)))
+ (or (find-class fake-metaclass-name nil)
+ (c2mop:ensure-class fake-metaclass-name
+ :metaclass 'objective-c-meta-class
+ :pointer class-ptr
+ :direct-superclasses (list superclass)))))))
(or (find-class class-name nil)
(c2mop:ensure-class class-name
:metaclass metaclass