summaryrefslogtreecommitdiff
path: root/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
parentede0c056cba36f65464c9ac4f15d00b44eeacd4f (diff)
System definition: Copy the system prior to compilation instead of after it.
darcs-hash:73cfed6be2a95e02cf75bcd8cc6b26abf3778a9e
Diffstat (limited to 'Lisp')
-rw-r--r--Lisp/defpackage.lisp2
-rw-r--r--Lisp/libobjcl.lisp12
2 files changed, 8 insertions, 6 deletions
diff --git a/Lisp/defpackage.lisp b/Lisp/defpackage.lisp
index 6b5f8eb..1854cfd 100644
--- a/Lisp/defpackage.lisp
+++ b/Lisp/defpackage.lisp
@@ -17,7 +17,7 @@
(defpackage #:mulk.objective-cl
(:nicknames #:objcl #:objective-cl #:mulk.objcl)
- (:use #:cl #:cffi #:split-sequence)
+ (:use #:closer-common-lisp #:cffi #:split-sequence)
(:shadow #:foreign-pointer)
;; Functions
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