On Wed, Aug 3, 2011 at 10:27 PM, Stéphane Ducasse <[email protected]
> wrote:

> How can we test and make sure that in the future we know automatically if
> the weak is broken?
>
>
If you check the issue traker, I've uploaded to tests for this case.


> Stef
>
> On Aug 3, 2011, at 1:01 PM, Nicolas Cellier wrote:
>
> > You replace Array with self arrayType, that's all.
> > But there is better, Pharo already has growAtFirst and growAtLast
> > which are correct.
> > Use them instead of grow.
> > See SLICE in inbox.
> >
> > Nicolas
> >
> > 2011/8/3 Mariano Martinez Peck <[email protected]>:
> >> btw...how can I change OrderedCollection>>grow
> >> without shooting my foots?
> >>
> >> On Wed, Aug 3, 2011 at 12:51 PM, Mariano Martinez Peck
> >> <[email protected]> wrote:
> >>>
> >>>
> >>> 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 #weakSubclass: ... message:
> >>>
> >>> OrderedCollection weakSubclass: #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
> >>>
> >>
> >>
> >>
> >> --
> >> Mariano
> >> http://marianopeck.wordpress.com
> >>
> >>
> >
>
>
>


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

Reply via email to