Smalltalk.st
changeset 12911 0822e257daeb
parent 12883 133a10b7bd12
child 12919 a7ea070197c9
--- a/Smalltalk.st	Fri Apr 30 18:49:05 2010 +0200
+++ b/Smalltalk.st	Fri Apr 30 18:51:56 2010 +0200
@@ -4794,9 +4794,7 @@
         ].
     ].
 
-    ((dir / 'loadAll') exists
-    or:[(dir / 'abbrev.stc') exists
-    ]) ifTrue:[
+    ((dir / 'loadAll') exists or:[(dir / 'abbrev.stc') exists]) ifTrue:[
         KnownPackages isNil ifTrue:[
             KnownPackages := Set new.
         ].
@@ -4822,47 +4820,46 @@
     ].
 
     [
-        directoryContents := dir directoryContents.
+        directoryContents := dir directoryContents asSet.   "asSet to speed up remove"
     ] on:FileStream openErrorSignal do:[:ex|
         "non-accessable directory: we are done"
         ^ self
     ].
 
-    directoryContents do:[:aFilename |
+    directoryContents removeAllFoundIn:#(
+                            'objbc'
+                            'objvc'
+                            'doc'
+                            'CVS'
+                            'bitmaps'
+                            'resources'
+                            'source'
+                            'not_delivered'
+                            'not_ported'
+                        ).
+    dir baseName = 'stx' ifTrue:[
+        directoryContents removeAllFoundIn:#(
+                            'configurations'
+                            'include'
+                            'rules'
+                            'stc'
+                            'support'
+                        ).
+    ].
+
+    directoryContents do:[:eachFilenameString |
         |f|
 
-        (#(
-            'objbc'
-            'doc'
-            'CVS'
-            'bitmaps'
-            'resources'
-            'source'
-            'not_delivered'
-            'not_ported'
-        ) includes:aFilename) ifFalse:[
-            ((dir baseName ~= 'stx')
-            or:[
-                (#(
-                    'configurations'
-                    'include'
-                    'rules'
-                    'stc'
-                    'support'
-                ) includes:aFilename) not])
-            ifTrue:[
-                f := dir / aFilename.
-                f isDirectory ifTrue:[
-                     self
-                        recursiveInstallAutoloadedClassesFrom:f
-                        rememberIn:dirsConsulted
-                        maxLevels:maxLevels-1
-                        noAutoload:noAutoloadHere
-                        packageTop:packageTopPath
-                        showSplashInLevels:showSplashInLevels - 1.
-                ]
-            ]
-        ].
+        f := dir / eachFilenameString.
+        f isDirectory ifTrue:[
+             self
+                recursiveInstallAutoloadedClassesFrom:f
+                rememberIn:dirsConsulted
+                maxLevels:maxLevels-1
+                noAutoload:noAutoloadHere
+                packageTop:packageTopPath
+                showSplashInLevels:showSplashInLevels - 1.
+        ]
     ].
 
     showSplashInLevels >= 0 ifTrue:[
@@ -7399,9 +7396,9 @@
 !Smalltalk class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Smalltalk.st,v 1.934 2010-04-19 15:51:45 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Smalltalk.st,v 1.935 2010-04-30 16:51:56 stefan Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/Smalltalk.st,v 1.934 2010-04-19 15:51:45 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Smalltalk.st,v 1.935 2010-04-30 16:51:56 stefan Exp $'
 ! !