faster #privateClasses
authorClaus Gittinger <cg@exept.de>
Sat, 22 Mar 1997 19:04:03 +0100
changeset 2489 20b454c692df
parent 2488 7d0beb26dbd2
child 2490 c0c52cc5e107
faster #privateClasses
Class.st
--- a/Class.st	Sat Mar 22 17:55:40 1997 +0100
+++ b/Class.st	Sat Mar 22 19:04:03 1997 +0100
@@ -927,16 +927,20 @@
     "return a collection of my private classes (if any); nil otherwise.
      The classes are in any order."
 
-    |classes myName|
+    |classes myName myNamePrefix|
 
     classes := IdentitySet new.
     myName := self name.
-    Smalltalk keysAndValuesDo:[:aName :aValue|
-        (aName startsWith:myName) ifTrue:[
-            (aName startsWith:(myName , '::')) ifTrue:[
-                "/ care for private-privateClasses
-                (aName indexOf:$: startingAt:myName size + 3) == 0 ifTrue:[
-                    classes add:aValue.
+    myNamePrefix := myName , '::'.
+
+    Smalltalk keysAndValuesDo:[:aName :aClass|
+        aClass isBehavior ifTrue:[
+            aClass owningClass notNil ifTrue:[
+                (aName startsWith:myNamePrefix) ifTrue:[
+                    "/ care for private-privateClasses
+                    (aName indexOf:$: startingAt:myName size + 3) == 0 ifTrue:[
+                        classes add:aClass.
+                    ]
                 ]
             ]
         ]
@@ -948,7 +952,7 @@
      ObjectMemory privateClasses
     "
 
-    "Modified: 22.3.1997 / 16:18:09 / cg"
+    "Modified: 22.3.1997 / 19:03:19 / cg"
 !
 
 privateClassesAt:aClassNameSymbol
@@ -4855,6 +4859,6 @@
 !Class class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Class.st,v 1.266 1997-03-22 16:15:03 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Class.st,v 1.267 1997-03-22 18:04:03 cg Exp $'
 ! !
 Class initialize!