I played a bit with it. I came up with the following quick fix, but
probably Eliot has a better solution. I find that code quite fragile
anyway, if you instantiate an object in your enumeration block your
lost (that was already the case before) ...

allObjectsDo: aBlock
        "Evaluate the argument, aBlock, for each object in the system
        excluding SmallIntegers."
        | object |
        object := self someObject.
        [0 == object]
                whileFalse: [
                        (object class == MethodContext and: [ object closure == 
aBlock ])
                                ifFalse: [ aBlock value: object ].
                        object := object nextObject]

On Wed, May 27, 2009 at 10:53 PM, Adrian Lienhard <[email protected]> wrote:
> SystemNavigation default allObjectsDo: [ :e  ]
>
> ...never terminates. At least since this is broken since #10268cl.
> Version #10263 was still working.
>
> The suspect are new closures (I guess, creating new context instances
> while iterating over all objects)...
>
> http://code.google.com/p/pharo/issues/detail?id=851
>
> Adrian
>
>
>
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>



-- 
Lukas Renggli
http://www.lukas-renggli.ch

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to