ProjectDefinition.st
changeset 10007 93f73465ef11
parent 10005 407485f2a6e0
child 10010 69b2dbff964b
--- 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!