On 4 Feb 2011, at 21:44, Richard Frith-Macdonald wrote:

> 
> On 4 Feb 2011, at 21:23, Philippe Roussel wrote:
> 
>> I've been browsing the Apple documentation for a long time but can't
>> find the answer so here's the question : is a NSPointerArray created
>> with pointerArrayWithWeakObjects supposed to retain the objects you add
>> to it ? 
> 
> No ...'weak', as I understand it, means that the garbage collector is free to 
> collect the objects.
> 
>> In GNUstep +pointerArrayWithWeakObjects calls the init function with
>> NSPointerFunctionsZeroingWeakMemory which translate to retain but no
>> release.
> 
> A test on OSX would be nice ... but in GNUstep currently, if you specify weak 
> memory in a non-gc environment, the object is *not* retained.
> 
>> Shouldn't it be NSPointerFunctionsZeroingWeakMemory |
>> NSPointerFunctionsOpaquePersonality ?
> 
> No, because NSPointerFunctionsOpaquePersonality means that we shouldn't treat 
> the pointers as objects, and the +pointerArrayWithWeakObjects: method is 
> supposed to create an array for storing objects.
> 
> But, everything I say is based on my reading of the documentation!  My 
> understanding of the documentation may not match what apple implemented.
> If you want definitive answers to these questions, please write more 
> testcases for the testsuite at 
> http://svn.gna.org/viewcvs/gnustep/tests/testsuite/trunk/base/NSPointerArray/
> We can run those on OSX, see how it behaves, and then alter GNUstep to match 
> if necessary.

Actually, I did that just now ... and I can confirm that adding an object to 
such an array does NOT change the object's retain count.


_______________________________________________
Discuss-gnustep mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/discuss-gnustep

Reply via email to