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
_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project