[BUG] BFAV + PackageInfo + Registry classvar

Frank Shearar frank.shearar at rnid.org.uk
Wed Apr 14 10:54:23 UTC 2004


OK, I got a walkback again just like I'd previously described. This time I
made the effort to investigate more thoroughly. These steps will reproduce
the error:

1. Open a virgin 5878 image
2. Open a PackageLoader and update PackageInfo (from 1.30->16) (and hit "No"
on the popup menu)
3. During the PackageLoader install you get a menu asking "Registry is still
used in code of class PackageInfo class. Is it okay to move it to
Undeclared?" Select "yes".
4. Install BFAV.

PatchArchive class's Registry var is a Set, so PatchArchive class>>registry
returns a Set not a (lazily instantiated) Dictionary, and we get a MNU on
opening BFAV.

In step #3 above, if you say "No, don't move Registry to Undeclared" then
things work great. This is where I confess my ignorance as to how Undeclared
works. When BFAV gets loaded Class>>addClassVarName: will try to reuse the
name Registry?

Not knowing how Undeclared really works I'm at a loss as to how to fix this.
Perhaps PatchArchive class>>initialize should "Registry := nil"? That seems
somewhat lame, seeing as the problem lies (to my untrained/ignorant eye)
with PackageInfo's references to Registry. Maybe PackageInfo needs to have
these Registry references removed?

The messages in PackageInfo that still reference Registry are:

  PackageInfo class>>unregisterPackageName:
  PackageInfo class>>allPackageNames

frank





More information about the Squeak-dev mailing list