[Glass] orphaned classes do not disappear
    Johan Brichau via Glass 
    glass at lists.gemtalksystems.com
       
    Wed Mar  8 04:01:16 PST 2017
    
    
  
Hi there,
I am working on preparing a GS 2.4.4.1 extent for upgrade to GS 3.2
For that, I am cleaning the repo such that no orphaned class instances still exist.
I hit an issue because I find orphaned classes that are not GC’ed for which no instances still exist.
When I ask the reference path to the class object, it tells me it is being referenced by its metaclass.
However, when I ask for the reference path to the metaclass object, I get a ‘false’ response.
Is there anything I can do to make sure these instances (of MetaClass) are removed (or otherwise find out why they are not GC’ed) ?
thanks
Johan
For reference, this is the script to find orphaned classes:
 | classes orphans |
    classes := IdentitySet new.
    System myUserProfile symbolList do: [:symbolDictionary |
      symbolDictionary valuesDo: [:global |
              global isBehavior ifTrue: [ classes add: global ]]].
    System commitTransaction.
    orphans :=  (Metaclass allInstances collect: [:mClass | mClass theNonMetaClass ])
                              select: [:class | (classes includes: class) not ].
    
    
More information about the Glass
mailing list