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 <
marianopeck@gmail.com>:
>> btw...how can I change OrderedCollection>>grow
>> without shooting my foots?
>>
>> On Wed, Aug 3, 2011 at 12:51 PM, Mariano Martinez Peck
>> <
marianopeck@gmail.com> wrote:
>>>
>>>
>>> On Wed, Aug 3, 2011 at 12:42 PM, Nicolas Cellier
>>> <
nicolas.cellier.aka.nice@gmail.com> 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 <
marianopeck@gmail.com>:
>>>>> 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
>>
>>
>