On Wed, Aug 3, 2011 at 12:42 PM, Nicolas Cellier <
[email protected]> wrote:
> I'm pretty sure the array inst var of your WeakOrderedColleciton is no
> more a WeakArray but a simple Array.
>
Yes, indeed, it is a normal Array and that cought my attention. But since I
have no idea about Weak stuff...I also noticed that WeakOrderedCollection is
declared as:
OrderedCollection subclass: #WeakOrderedCollection
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'Collections-Weak'
instead of using the #*weak*Subclass: ... message:
OrderedCollection *weak*Subclass: #WeakOrderedCollection
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'Collections-Weak'
> This is because Pharo's WeakOrderedCollection is broken...
>
>
Do you know a weak collection that is not broken in Pharo and let me do a
addLast: ?
> Every reference to Array from within OrderedCollection should be
> replaced with message send (self arrayType).
> See for example, OrderedCollection>>#grow
>
>
Thanks. I will check how many there are and try to fix them.
> Nicolas
>
> 2011/8/3 Mariano Martinez Peck <[email protected]>:
> > 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
> >
> >
>
>
--
Mariano
http://marianopeck.wordpress.com