Mac Apps That Use Garbage Collection Must Move to ARC

Tobias Pankrath via Digitalmars-d digitalmars-d at puremagic.com
Mon Feb 23 00:33:57 PST 2015


On Monday, 23 February 2015 at 08:27:52 UTC, Ola Fosheim Grøstad 
wrote:
> On Monday, 23 February 2015 at 01:41:17 UTC, Adam D. Ruppe 
> wrote:
>> On Monday, 23 February 2015 at 01:38:35 UTC, Manu wrote:
>>> All my ref counting types fiddle with the ref in every 
>>> assignment, or every function call and return.
>>
>> Hmm, the optimizer could potentially tell "inc X; dec X;" is 
>> useless and remove it without knowing what it is for.
>
> INPUT:
>
> try{
> nonsharedobj._rc++;
>> }
> finally {
> nonsharedobj._rc--;
> if(nonsharedobj._rc==0) destroy…
> }
>
> OPTIMIZED:
>
> try{
>> }
> finally {
> if(nonsharedobj._rc==0) destroy…
> }
>
> ----
> Thanks to the messed up modular arithmetics that D has chosen 
> you cannot assume the a non-shared live object does not have a 
> rc==0 due to wrapping integers, in the general case.

You mean when there are more than 2^64 references to the object?


More information about the Digitalmars-d mailing list