Hi guys. I am since yesterday trying to find something and I cannot. So at
this point I need external eyes :)
I have this little code:

    anObject := ClassWith2Var new.
    sharedObject := ClassWith1Var new.
    sharedObject var1: 'nose'.
    anObject var1: Date today.
    anObject var2: sharedObject.

    serializedObjects := FuelMareaSerializer new serializeAndWriteObject:
anObject to: 'aFileName'.
    anObject := nil.
    sharedObject := nil.

    3 timesRepeat: [Smalltalk garbageCollect].
    serializedObjects inspect.



What is important here is that FuelMareaSerializer new
serializeAndWriteObject: anObject to: 'aFileName' answers a
WeakOrderedCollection with each object of the serialized graph (taking
anObject as the root)
Now, if I print the tempVar serializedObjects I see:

a WeakOrderedCollection(ClassWith1Var ClassWith2Var Date DateAndTime
Duration a ClassWith1Var a ClassWith2Var 3 August 2011
2011-08-03T00:00:00+02:00 0:02:00:00 1:00:00:00 86400 2455777 'nose' 0 7200)

WHYYYY??  why are all there if I put a nil to both, anObject and
sharedObejct. This WeakOrderedCollection should be with all nils (except
classes). Why are not being garbage collected?

If I explore, for example the tempVar sharedObejct, which is at
serializedObjects at: 6   and then I put explore pointers I ONLY see the
array of the WeakOrderedCollection pointing to it. I don't understand.

Any help is really appreaciated.

-- 
Mariano
http://marianopeck.wordpress.com

Reply via email to