[squeak-dev] The Trunk: Tools-cmm.348.mcz

Frank Shearar frank.shearar at angband.za.org
Tue May 3 06:23:53 UTC 2011


On 2011/05/03 01:24, commits at source.squeak.org wrote:
> Chris Muller uploaded a new version of Tools to project The Trunk:
> http://source.squeak.org/trunk/Tools-cmm.348.mcz
>
> ==================== Summary ====================
>
> Name: Tools-cmm.348
> Author: cmm
> Time: 2 May 2011, 8:24:10.46 pm
> UUID: b02d968c-e94f-452b-aef7-d78fa343ff09
> Ancestors: Tools-cmm.347
>
> Fixed performance bug when opening hierarchy browser on Object.
>
> =============== Diff against Tools-cmm.347 ===============
>
> Item was changed:
>    ----- Method: HierarchyBrowser>>initHierarchyForClass: (in category 'initialization') -----
> + initHierarchyForClass: aClassOrMetaClass
> + 	| nonMetaClass superclasses |
> - initHierarchyForClass: aClassOrMetaClass
> - 	| nonMetaClass |
>    	centralClass := aClassOrMetaClass.
>    	nonMetaClass := aClassOrMetaClass theNonMetaClass.
>    	self systemOrganizer: SystemOrganization.
>    	metaClassIndicated := aClassOrMetaClass isMeta.
>    	classDisplayList := OrderedCollection new.
> + 	(superclasses := nonMetaClass allSuperclasses reversed) withIndexDo:
> + 		[ : each : indent | classDisplayList add:
> + 			(String streamContents:
> + 				[ : stream | indent - 1 timesRepeat: [ stream nextPutAll: '  ' ].
> + 				stream nextPutAll: each name ]) ].
> + 	nonMetaClass
> + 		allSubclassesWithLevelDo:
> + 			[ : eachClass : lvl | classDisplayList add:
> + 				(String streamContents:
> + 					[ : stream | lvl+1 timesRepeat: [ stream nextPutAll: '  ' ].
> + 					stream nextPutAll: eachClass name ]) ]
> + 		startingLevel: superclasses size.
> + 	self selectClass: nonMetaClass!
> - 	self
> - 		flattenHierarchyTree: (self createHierarchyTreeOf: (nonMetaClass allSuperclasses, { nonMetaClass }, nonMetaClass allSubclasses))
> - 		on: classDisplayList
> - 		indent: ''
> - 		by: '  '.
> -
> - 	self selectClass: nonMetaClass.!

That also looks rather more understandable that trying to wrap one's 
head around how createHierarchyTreeOf: works. And this avoids the 
ObjectTracer hierarchy issue too, doesn't it?

frank



More information about the Squeak-dev mailing list