Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CFGetRetainCount question




On Jul 4, 2008, at 8:43 PM, Dmitry Markman wrote:

well I found some information in the NSObject's retainCount method documentation:

"You rarely send a retainCount message; however, you might implement this method in a class to implement your own reference-counting scheme. For objects that never get released (that is, theirrelease method does nothing), this method should return UINT_MAX, as defined in <limits.h>"

but UINT_MAX is 4294967295 (0xFFFFFFFF)
so what does 0x7FFFFFFF mean?

thanks

Dmitry,

I don't think this is explicitly spelled out anywhere, but for CF "constants", such as CFSTR("blah"), kCFBooleanFalse, and other constant 'things' like this, there is no real meaning to releasing them, but depending on your program's abstraction classes or whatever, you may retain/release these CF constants. I believe CF special-cases this specific retaincount as a do-nothing operation.

And 0x7FFFFFFF would be INT_MAX or SINT_MAX (which is the maximum for a signed long (which is what a CFIndex is, which is the return type for CFGetRetainCount()) [at least for 32-bit architecture, probably for 64-bit architecture].

Technically, you could retain any given CF object enough to hit this value, but you're program probably would have other problems before you hit this limit.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/darwin-dev/email@hidden


This email sent to email@hidden
References: 
 >CFGetRetainCount question (From: Dmitry Markman <email@hidden>)
 >Re: CFGetRetainCount question (From: Dmitry Markman <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.