Stef

On May 9, 2010, at 3:47 AM, Igor Stasenko wrote:

> And the last thing...
> since new trailers using #becomeForward:
> no wonder that this loop turns into an infinite:
> 
> CompiledMethod allInstancesDo: [:e | e isInstalled ifFalse: [e
> destroySourcePointer]].
> 
> because #allInstancesDo: walks a heap, and assuming that there is no
> new instances of it created
> during walking. But destroySourcePointer creating a new instance, so
> it can never finish! :)
> 
> i just replaced it with following:
> 
> (CompiledMethod allInstances reject: #isInstalled) do: [:e | e
> isInstalled ifFalse: [e destroySourcePointer]].

Yes clearly a conceptual bug. 
But with the solution alain proposed ie not destroying while iterating on 
methods does not work 
(yes it condenses well but accessing some methods is broken).
Lukas did a cool test that checks whether the we can parse the method.


> 
> and made it to the end.. took about 5 minutes to wait. (12k methods +
> become on every method is a little time consuming ;)
> 
> --
> Best regards,
> Igor Stasenko AKA sig.
> 
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


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

Reply via email to