]> git.saurik.com Git - apple/security.git/blobdiff - OSX/libsecurity_transform/lib/Monitor.cpp
Security-58286.1.32.tar.gz
[apple/security.git] / OSX / libsecurity_transform / lib / Monitor.cpp
index 2b9958d31f45513a31018606d7468bdc93cd49cc..1cbc19a155f8ccac1e42c8295f6d5bcf863ee335 100644 (file)
@@ -45,11 +45,8 @@ void BlockMonitor::AttributeChanged(CFStringRef name, CFTypeRef value)
        }
        
        mSeenFinal = isFinal;
-       
-       if (realValue)
-       {
-               CFRetain(realValue);
-       }       
+
+    CFRetainSafe(realValue);
        
        if (mDispatchQueue == NULL)
        {
@@ -74,7 +71,7 @@ BlockMonitor::BlockMonitor(dispatch_queue_t queue, SecMessageBlock block) : Moni
                block(value, error, isFinal);
                if (value)
                {
-                       CFRelease(value);
+                       CFReleaseNull(value);
                }
                if (isFinal && mGroup) {
             LastValueSent();
@@ -98,7 +95,7 @@ void BlockMonitor::LastValueSent()
     Transform *rootGroup = this->GetRootGroup();
     CFTypeRef rootGroupRef = rootGroup->GetCFObject();
     dispatch_async(rootGroup->mDispatchQueue, ^{
-        CFRelease(rootGroupRef);
+        CFReleaseSafe(rootGroupRef);
     });
 }