When you use __bridge_retained
or CFBridgingRetain()
, you get a pointer with a +1 retain count. You are responsible for releasing this reference.
You can release the reference by transferring ownership back to ARC (using __bridge_transfer
or CFBridgingRelease()
), or you can simply call CFRelease()
.
In your case, just use CFRelease()
:
void ptr_release(const void *ptr) {
CFRelease((CFTypeRef)ptr);
}