Annoyingly, under non-ARC, `CFBridgingRelease()` actually requires `data` to be non-`NULL`. This is not documented and is likely to be accidental. This occurs because it passes `data` to `CFMakeCollectable()`, which is explicitly documented as crashing if the parameter is `NULL` (I cannot verify if it crashes just under GC, which is what the function is for, or under MRR as well). Basically, under MRR, `CFBridgingRelease()` has the same restriction as `CFRelease()`. Under ARC, it doesn't.

I'm not saying make any changes here, I just thought I'd point that out since you may not be aware.