[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Question on NSPointerArray +pointerArrayWithWeakObjects
From: |
Richard Frith-Macdonald |
Subject: |
Re: Question on NSPointerArray +pointerArrayWithWeakObjects |
Date: |
Fri, 4 Feb 2011 21:44:32 +0000 |
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.