[squeak-dev] The Trunk: System-ul.613.mcz

Levente Uzonyi leves at elte.hu
Sat Nov 2 13:33:36 UTC 2013


On Sat, 2 Nov 2013, Frank Shearar wrote:

> On 2 November 2013 12:54,  <commits at source.squeak.org> wrote:
>> Levente Uzonyi uploaded a new version of System to project The Trunk:
>> http://source.squeak.org/trunk/System-ul.613.mcz
>>
>> ==================== Summary ====================
>>
>> Name: System-ul.613
>> Author: ul
>> Time: 2 November 2013, 1:47:09.671 pm
>> UUID: de29e18c-22f5-4299-823a-e6b207c3f552
>> Ancestors: System-cmm.612
>>
>> - fix: SystemNavigation >> #allBehaviorsDo: shouldn't enumerate Trait more than once.
>>
>> =============== Diff against System-cmm.612 ===============
>>
>> 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."
>>
>>         self environment allClassesAndTraitsDo: [ :class |
>> +               aBlock value: class.
>> +               class isTrait ifFalse: [ "class of a Trait is Trait, there are no MetaTraits"
>> +                       aBlock value: class class ] ]!
>> -               aBlock
>> -                       value: class;
>> -                       value: class class ]!
>
> Thanks, Levente. I don't understand why that fixes the problem though.
> Er, unless it's that when you walk over the TFoos, you also walk (and
> walk and walk again) over Trait?

Yes. TFoo is a trait, if you send #class to it, it will return Trait. So 
Trait was enumerated 1 + the number of traits in your image.


Levente

>
> frank
>
>


More information about the Squeak-dev mailing list