On Wed, Apr 27, 2011 at 11:31 AM, Marcus Denker
<[email protected] <mailto:[email protected]>> wrote:
On Apr 24, 2011, at 5:12 PM, Mariano Martinez Peck wrote:
> grrrr I don't know what is happening. I am building a PharoDev
1.3 and at the end, I do: Undeclared removeUnreferencedKeys
> but this throws an error that I attach. It is a big loop of such
error.
> The progress bar is showing "Clean up in DebuggerMethodMap"
>
So I added the DebuggerMethodMap intialize (reset the cache) to
Smalltalk cleanUp.
But why is that called when calling "Undeclared
removeUnreferencedKeys"?
Because the DebuggerMethodMap holds onto older versions of methods
and these can be sources of undeclared references.
If DebuggerMethodMap's collection of methods is properly weak then
this isn't an issue but in practice this belt-and-braces approach is
more robust.
Is there a good reason why the debugger method map stores this data? It
seems horribly complex for not that much gain ... When I started working
on the Glamour Debugger I reimplemented the debugger method map as the
GTDebugMethodModel which is a hyper-simplification of the
DebuggerMethodMap for a big part since I don't have to handle caching.
... and honestly, I never noticed any slowdown in the debugger.
Of course it could just be that my machine is too fast... or that it's
used somewhere else; or that my code just wasn't complete or so.
cheers,
Toon