ClassBuilder.st
changeset 7617 a557bbe96ef1
parent 7592 aaa6a17f80a4
child 8073 42c37438e0dc
--- a/ClassBuilder.st	Fri Sep 19 10:44:02 2003 +0200
+++ b/ClassBuilder.st	Mon Sep 22 11:11:53 2003 +0200
@@ -13,9 +13,9 @@
 "{ Package: 'stx:libbasic' }"
 
 Object subclass:#ClassBuilder
-	instanceVariableNames:'className environment superClass instanceVariableNames variable
-		words pointers classVariableNames poolDictionaries category
-		comment changed classInstanceVariableNames oldMetaClass
+	instanceVariableNames:'metaclass className environment superClass instanceVariableNames
+		variable words pointers classVariableNames poolDictionaries
+		category comment changed classInstanceVariableNames oldMetaClass
 		realNewName buildPrivateClass'
 	classVariableNames:''
 	poolDictionaries:''
@@ -272,6 +272,10 @@
 
 !ClassBuilder methodsFor:'accessing'!
 
+metaclass:metaclassOrASubclassOfIt
+    metaclass := metaclassOrASubclassOfIt.
+!
+
 name:newName inEnvironment:aSystemDictionaryOrClass subclassOf:aClass instanceVariableNames:stringOfInstVarNames variable:variableBoolean words:wordsBoolean pointers:pointersBoolean classVariableNames:stringOfClassVarNames poolDictionaries:stringOfPoolNames category:categoryString comment:commentString changed:changedBoolean classInstanceVariableNames:stringOfClassInstVarNamesOrNil 
     className := newName.
     environment := aSystemDictionaryOrClass.
@@ -1336,9 +1340,9 @@
     |newMetaclass classesSuperclass|
 
     buildPrivateClass ifTrue:[
-        newMetaclass := PrivateMetaclass new
+        newMetaclass := metaclass asPrivate new
     ] ifFalse:[
-        newMetaclass := Metaclass new.
+        newMetaclass := metaclass new.
     ].
     superClass isNil ifTrue:[
         classesSuperclass := Class.
@@ -1953,5 +1957,5 @@
 !ClassBuilder class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/ClassBuilder.st,v 1.30 2003-08-29 19:31:58 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ClassBuilder.st,v 1.31 2003-09-22 09:11:53 cg Exp $'
 ! !