Re: [Pharo-project] UndefinedObject(Object)>>doesNotUnderstand: #findNextHandlerContextStarting
On Apr 29, 2011, at 11:23 PM, Mariano Martinez Peck wrote:
So I added the DebuggerMethodMap intialize (reset the cache) to Smalltalk cleanUp.
Thanks Marcus. I don't see this commit. Did you commit it? or we lost it with the squeaksource down ?
This was part of the cleanUp improvements... some time ago.
see DebuggerMethodMap>>#cleanUp
ok...after looking for a while, it is never called when you do Smalltalk cleanUp: true except: #() confirming: false.
I think it is because such method does:
"Find all classes implementing #cleanUp or cleanUp:" classes := Smalltalk allClasses select: [:aClass| (aClass class includesSelector: #cleanUp) or: [aClass class includesSelector: #cleanUp:]].
it checks for both messages, #cleanUp: or #cleanUp
But then, it does:
"Run the cleanup code" classes do:[:aClass| aClass cleanUp: aggressive] displayingProgress: [:aClass| 'Cleaning up in ', aClass name].
In your case, DebuggerMethodMap only implements #cleanUp, hence it is never called.
But there is in Behavior: cleanUp: aggressive "Clean out any caches and other state that should be flushed when trying to get an image into a pristine state. The argument should be used to indicate how aggressive the cleanup should be. Some subclasses may act differently depending on its value - for example, ChangeSet will only delete all unused and reinitialize the current change set if we're asking it to be aggressive." ^self cleanUp So it calls cleanUp even when you do Smalltlak cleanUp: true. Now I wonder if we should remove the displayingProgress and do the call to #cleanUp (the non-agressive one) on image save.... -- Marcus Denker -- http://www.marcusdenker.de INRIA Lille -- Nord Europe. Team RMoD.
But there is in Behavior:
cleanUp: aggressive "Clean out any caches and other state that should be flushed when trying to get an image into a pristine state. The argument should be used to indicate how aggressive the cleanup should be. Some subclasses may act differently depending on its value - for example, ChangeSet will only delete all unused and reinitialize the current change set if we're asking it to be aggressive."
^self cleanUp
So it calls cleanUp even when you do Smalltlak cleanUp: true.
Now I wonder if we should remove the displayingProgress and do the call to #cleanUp (the non-agressive one) on image save....
yes this could be a good idea. Stef
participants (2)
-
Marcus Denker -
Stéphane Ducasse