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