--- a/ProjectDefinition.st Fri Sep 22 18:13:29 2006 +0200
+++ b/ProjectDefinition.st Fri Sep 22 18:47:25 2006 +0200
@@ -2015,19 +2015,25 @@
classNamesToLoad := OrderedCollection new.
classNamesToAutoload := OrderedCollection new.
- self classNamesAndAttributesDo:[:eachClassname :eachAttributes | |isAutoload|
+ self classNamesAndAttributesDo:[:eachClassname :eachAttributes | |eachClassnameSym isAutoload cls|
+ eachClassnameSym := eachClassname asSymbol.
isAutoload := eachAttributes includes:#autoload.
- (eachAttributes isEmpty
- or:[(eachAttributes size == 1 and:[isAutoload])
- or:[eachAttributes includes:platformName]]) ifTrue:[
- hasClassesToLoad := true.
- isAutoload ifTrue:[
- classNamesToAutoload add:eachClassname.
- ] ifFalse:[
- classNamesToLoad add:eachClassname.
+ "no need to (re-)load an existing class, but install if should be loaded"
+ ((cls := Smalltalk loadedClassNamed:eachClassnameSym) isNil
+ or:[cls isLoaded not and:[isAutoload not]]
+ ) ifTrue:[
+ (eachAttributes isEmpty
+ or:[(eachAttributes size == 1 and:[isAutoload])
+ or:[eachAttributes includes:platformName]]) ifTrue:[
+ hasClassesToLoad := true.
+ isAutoload ifTrue:[
+ classNamesToAutoload add:eachClassnameSym.
+ ] ifFalse:[
+ classNamesToLoad add:eachClassnameSym.
+ ].
].
- ]
+ ].
].
hasClassesToLoad ifTrue:[
@@ -3196,7 +3202,7 @@
!ProjectDefinition class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.80 2006-09-22 15:45:29 stefan Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.81 2006-09-22 16:47:25 stefan Exp $'
! !
ProjectDefinition initialize!