[squeak-dev] What are MethodDictionary faults?

Mariano Martinez Peck marianopeck at gmail.com
Wed Dec 23 13:09:53 UTC 2009


Hi folks:  I am trying to understand ImageSegment methods like
activeClasses, swapOutInactiveClasses, discoverActiveClasses among others.
One of the comments of those methods says:

"NOTE:  discoverActiveClasses uses Squeak's ability to detect and recover
from faults due to a nil method dictionary.  It staches the method dict in
with the organization during the time when discovery is in progress (Gag me
with a spoon).  This is why the faults need to be cleared promptly before
resuming normal work with the system.  It is also important that classes *do
not* refer directly to their method dictionary, but only via the accessor
message."

So, it seems to HACK (it forces a fault) this MD fault recover to discover
inactive classes and other things. Ok, forget that hack for a moment.

What questions is, what are these faults?  Why a method dictionary can be in
nil ? How is this produced ? And how is it fixed?

I saw for example this:

Behaviour>>methodDict
    methodDict == nil ifTrue: [self recoverFromMDFaultWithTrace].
    ^ methodDict


But again...how can that be nil ???

Thank you very much.

Marian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20091223/90f602e4/attachment.htm


More information about the Squeak-dev mailing list