Is there a reason why CFRelease does not check for NULL? Isn\'t it unacceptable when [nil release]; free(NULL); delete NULL; all work perfectly fine?
All of these functions are part of different APIs that follow different conventions with regards to handling NULL:
CFRelease is part of the CoreFoundation C SDK, which does not accept NULL reference as arguments by default.[nil release] uses Objective-C (which allows dereferences of nil)free(NULL) is part of C library (libc) which permits NULL argumentsdelete NULL is part of the C++ library (libc++) which permits NULL argumentsI guess the CoreFoundation SDK writers decided to be more consistent with the rest of SDK rather than with similar function in other SDKs.