[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
|