[squeak-dev] ObjectAsMethodWrapper >> #uninstall breaks class organisation

Bert Freudenberg bert at freudenbergs.de
Thu Aug 23 11:49:16 UTC 2012


On 2012-08-23, at 11:24, Frank Shearar wrote:

> It looks like PackageInfo possibly isn't catching the AddEvent sent by
> ClassDescription >> #addSelector:withMethod:notifying: but I'm just
> guessing: I don't know enough about this part of the system.


No, PackageInfo is not event-based. It does not "store" classes or methods. Instead, when you ask it for classes and methods in the package, it looks at the system.

What must be happening is that the class's organizer gets out-of-sync with the method dictionary. The System Browser only looks at the organization to display methods. So if a selector is not in the organizer, the Browser does not show it at all.

This is different in Monticello - if you click "browse" in MC it makes a package snapshot by asking PackageInfo, which iterates through the method dictionary. After running the test this blows up, because it finds the "bar" method, but that is not in the organizer, so its category is nil and you get a walkback.

Events are only used to mark the Monticello working copy dirty. Not to actually keep track of method additions.

- Bert -




More information about the Squeak-dev mailing list