Need help: obsolete class with no superclass
Ross Boylan
RossBoylan at stanfordalumni.org
Tue Jun 25 00:03:56 UTC 2002
At 01:39 PM 6/24/02 -0700, you wrote:
>I am unable to get through the class hierarchy cleanup in update 4855 for
>3.2 gamma because I have a class with a nil superclass. The cleanup code
>can not deal with this.
>
>This is the remnant of a class I created; I'm not sure why it's still
>around at all.
>
>In particular in ClassBuilder>>cleanupClassHierarchy: informer
> "Makes the class hierarchy consistent and removes obsolete
> classes from the SystemDictionary."
> | classes |
> Transcript cr; show: 'Start fixing the class hierarchy and
> cleaning up...'.
> Smalltalk garbageCollect.
> classes := Metaclass allInstances.
> classes keysAndValuesDo: [:index :meta |
> informer value:'Fixing class hierarchy ', (index * 100
> // classes size) printString,'%'.
> "Check classes before metaclasses (because
> Metaclass>>isObsolete
> checks whether the related class is obsolete)"
> meta allInstances do: [:each | self
> cleanupClassHierarchyFor: each].
> self cleanupClassHierarchyFor: meta.
> ].
> Transcript show: 'DONE'.
>
>It's the single instance of meta (which I think means the regular class)
>called AnObsoleteTaskTable that is generating the failure within
>cleanupClassHierarchyFor:.
>
>Can anyone suggest a way to proceed?
>
>Thanks.
I've chased pointers (thanks to Ned Konz's suggestion) and uncovered the
following additional info:
The class is not in the Smalltalk dictionary.
PointerFinder on: comes up empty on the class.
The class is referenced by CompiledMethods in the change set of one of my
projects (in a MethodChangeRecord). The class itself was added and then
removed.
I have other added and removed classes, but this is the only one with a nil
superclass.
More information about the Squeak-dev
mailing list
|