• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Accessing buffers in NSData/NSMutableData under garbage collection
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Accessing buffers in NSData/NSMutableData under garbage collection


  • Subject: Re: Accessing buffers in NSData/NSMutableData under garbage collection
  • From: Alastair Houghton <email@hidden>
  • Date: Tue, 19 Feb 2008 19:28:33 +0000

On 19 Feb 2008, at 19:03, Michael Ash wrote:

On Feb 19, 2008 1:36 PM, Quincey Morris <email@hidden> wrote:
Furthermore, your example made me wonder if there's another
optimization hole, that has nothing to do with interior pointers, but
which also reflects a variable lifetime indeterminacy:

  __weak NSString* string1 = [@"string1" copy];
  NSString* string2 = @"string2";
  [[NSGarbageCollector defaultCollector] collectExhaustively];

Couldn't this result in the garbage collector zeroing 'string2' under
unlucky (but common) optimization conditions?

All local variables (variables stored on the stack and in registers) are strong. Even the ones marked __weak. __weak (and __strong) only apply for variables stored on the heap.

...and globals...

Anyway, the point is not to read too much into __strong or __weak. They do what the documentation says, no more, no less. It isn't a good idea to invent all sorts of theories on the basis of "__strong types" etcetera, because that isn't (presently) how things work.

There's nothing wrong with pointer arithmetic on pointers returned by NSAllocateCollectable(), it's just that you have to be careful not to dispose of the pointer to the start of the block before you're done with it. Sadly, right now, that requires an awareness of what the optimiser might do to your code.

Kind regards,

Alastair.

--
http://alastairs-place.net




_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


References: 
 >Accessing buffers in NSData/NSMutableData under garbage collection (From: Rick Hoge <email@hidden>)
 >Re: Accessing buffers in NSData/NSMutableData under garbage collection (From: Adam P Jenkins <email@hidden>)
 >Re: Accessing buffers in NSData/NSMutableData under garbage collection (From: mmalc crawford <email@hidden>)
 >Re: Accessing buffers in NSData/NSMutableData under garbage collection (From: Adam P Jenkins <email@hidden>)
 >Re: Accessing buffers in NSData/NSMutableData under garbage collection (From: Adam P Jenkins <email@hidden>)
 >Re: Accessing buffers in NSData/NSMutableData under garbage collection (From: Chris Suter <email@hidden>)
 >Re: Accessing buffers in NSData/NSMutableData under garbage collection (From: Alastair Houghton <email@hidden>)
 >Re: Accessing buffers in NSData/NSMutableData under garbage collection (From: Quincey Morris <email@hidden>)
 >Re: Accessing buffers in NSData/NSMutableData under garbage collection (From: "Michael Ash" <email@hidden>)

  • Prev by Date: Re: -saveDocument: and package problems
  • Next by Date: Re: *** -[NSCFDictionary setObject:forKey:]: mutating method sent to immutable object
  • Previous by thread: Re: Accessing buffers in NSData/NSMutableData under garbage collection
  • Next by thread: Re: Accessing buffers in NSData/NSMutableData under garbage collection
  • Index(es):
    • Date
    • Thread