[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:

==================== 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