}
mSeenFinal = isFinal;
-
- if (realValue)
- {
- CFRetain(realValue);
- }
+
+ CFRetainSafe(realValue);
if (mDispatchQueue == NULL)
{
block(value, error, isFinal);
if (value)
{
- CFRelease(value);
+ CFReleaseNull(value);
}
if (isFinal && mGroup) {
LastValueSent();
Transform *rootGroup = this->GetRootGroup();
CFTypeRef rootGroupRef = rootGroup->GetCFObject();
dispatch_async(rootGroup->mDispatchQueue, ^{
- CFRelease(rootGroupRef);
+ CFReleaseSafe(rootGroupRef);
});
}