System information

String Services is an API that provides a suite of efficient string-manipulation and string-conversion routines.
A problem where CFStringGetBytes would ignore its range parameter when asked to retrieve a range of bytes from
a Unicode (kCFStringEncodingUnicode ) string has been corrected. (r. 2812392).
CFStringCreateWithCString now does better error checking and will return NULL if passed an improperly encoded
UTF-8 C string. For example, if you provide a C style string and indicate that the format of the string is
kCFStringEncodingUTF8 but the string contains non-UTF-8 characters, then CFStringCreateWithCString will
return NULL. (r. 2980386).
Back to top
CFXMLParser
Core Foundation's XML parser for reading XML documents.
CFXMLParser now handles UTF-8 documents with a byte order mark (BOM). (r. 2826988).
CFXMLTreeCreateXMLData would sometimes put extra spaces in the data when using CFXMLTreeCreateFromData
and/or CFXMLTreeCreateXMLData. This problem was fixed. (r. 2453608).
The XML parser didn't properly handle real numbers +Inf, -Inf and NaN in plists. We now correctly handle such
numbers. (r. 2740510).
Back to top
Core Foundation (general)
Core Foundation is a set of APIs used as a common data and service abstraction layer for other high level software facilities
in Mac OS X.
Files.h is no longer included in CoreFoundation.h or CFURL.h. Now, if you were including CoreFoundation.h and you
used any of the declarations in Files.h, you will need to explicitly #include <Files.h>. (r. 2868727).
There are several changes to CFNumbers handling of NaN and infinities: (a) CFEqual() would return false on two
different NaN CFNumbers as the parameters, but return true with the same NaN CFNumber as both parameters.:
NaNs might be logically equal, but not mathematically equal. To eliminate this inconsistency, we make CFNumbers
with NaNs equal to each other. This change will only affect applications linked on Jaguar or later. (b)Added detail to
the debug description of CFNumbers. We now include more precision; distinguish zero from negative zero; always
include sign on values; and more). This change will affect all applications. (c) Changed the formatting description
produced by CFNumber to: include more precision on doubles and floats; report special values as "nan",
"+infinity", and "-infinity"; remove trailing zeros on the value; and report small values (under 1.0x10^-3) in
scientific notation. This change will only affect applications linked on Jaguar or later. (d) The value of
CFNumberCreate() with float and double values is checked against NaN and the infinities, and the global value is
returned if the value matches. This change will affect all applications. (e) CFNumberCompare() has been corrected
to match the documentation in the header comment regarding NaN, infinities and zeros. This change will only affect
applications linked on Jaguar or later. (r. 2867452).
Using CFPropertyListCreateXML to generate XML from a CFDictionaryRef would cause a crash if any dictionary key
was something other than a CFString. We no longer crash in this situation. (r. 2830305).
Using CFStringFindWithOptions() to check for "Ends With" would sometimes return false positives. We now
return correct data in all cases. (r. 2813801).
In some Carbon applications, a slash ("/") in a path name would crash when loading a nib file. This on longer
occurs. (r. 2787552).
In rare cases where an XML file size was exactly a multiple of a page size, calling
CFPropertyListCreateFromXMLData with that XML file would cause an application to crash. We no longer crash in
this situation. (r. 2765819).
The error messages returned by CFPropertyListCreateFromXMLData have been improved. (r. 2722422).
Removing a CFTree created using CFTreeInsertSibling would inadvertently release more memory than was
necessary, possibly leading to an application crash. We now correctly release memory in this
situation.(r.2747173). (r. 2387606).
CFLog messages are now time stamped. (r. 2956225).
The new Core Foundation data type CFNull has been added for symmetry with the Cocoa NSNull data type. Now NULL
(nonexistant) values can be represented in CFDictionaries. (r. 2828586).
The CFPropertyList parser has been updated to properly treat "&quot;" as a double quote. (r. 2738226).
CFMutableDataRef data pointers are now 16 byte aligned. (r. 2701601).