[squeak-dev] The Trunk: System-eem.450.mcz
commits at source.squeak.org
commits at source.squeak.org
Mon Jul 25 17:55:55 UTC 2011
Eliot Miranda uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-eem.450.mcz
==================== Summary ====================
Name: System-eem.450
Author: eem
Time: 25 July 2011, 10:54:32.489 am
UUID: aef72684-3068-4139-92cd-874af8591b31
Ancestors: System-ul.449
Fix allBehaviorsDo: to avoid duplicates, and to be a lot simpler.
=============== Diff against System-ul.449 ===============
Item was changed:
----- Method: SystemNavigation>>allBehaviorsDo: (in category 'query') -----
allBehaviorsDo: aBlock
"Evaluate the argument, aBlock, for each kind of Behavior in the system
(that is, Object and its subclasses and Traits).
ar 7/15/1999: The code below will not enumerate any obsolete or anonymous
behaviors for which the following should be executed:
Smalltalk allObjectsDo:[:obj| obj isBehavior ifTrue:[aBlock value: obj]].
but what follows is way faster than enumerating all objects."
+ Class rootsOfTheWorld do:
+ [:root|
+ root withAllSubclassesDo:
+ [:class|
+ class isMeta ifFalse: "The metaclasses are rooted at Class; don't include them twice."
+ [aBlock value: class; value: class class]]].
+ ClassDescription allTraitsDo:
+ [:trait | aBlock value: trait]!
- aBlock value: ProtoObject.
- ProtoObject allSubclassesDoGently: aBlock. "don't bring in ImageSegments"
-
- "Classes outside the ProtoObject hierarchy"
- Class subclassesDo: [:aClass |
- (aClass == ProtoObject class
- or: [aClass isInMemory not
- or: [aClass isMeta not]]) ifFalse:
- ["Enumerate the non-meta class and its subclasses"
- aBlock value: aClass soleInstance.
- aClass soleInstance allSubclassesDoGently: aBlock]].
-
- ClassDescription allTraitsDo:[:trait | aBlock value: trait].!
More information about the Squeak-dev
mailing list
|