On 3 August 2011 22:27, 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?
>

object := Object new.

coll := WeakOrderedCollection new add: anObject.
anObject := nil.
Smalltalk garbageCollect.
self assert: coll removeLast isNil

:)

> 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
>>>
>>>
>>
>
>
>



-- 
Best regards,
Igor Stasenko AKA sig.

Reply via email to