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
