#include <security_utilities/cfutilities.h>
#include <security_utilities/errors.h>
#include <security_utilities/debugging.h>
+#include <utilities/SecCFRelease.h>
#include <cstdarg>
#include <vector>
return ret;
}
-string cfStringRelease(CFStringRef inStr)
+string cfStringRelease(CFStringRef CF_CONSUMED inStr)
{
CFRef<CFStringRef> str(inStr);
return cfString(str);
CFError::throwMe();
}
-string cfStringRelease(CFURLRef inUrl)
+string cfStringRelease(CFURLRef CF_CONSUMED inUrl)
{
CFRef<CFURLRef> bundle(inUrl);
return cfString(bundle);
return cfStringRelease(CFBundleCopyBundleURL(inBundle));
}
-string cfStringRelease(CFBundleRef inBundle)
+string cfStringRelease(CFBundleRef CF_CONSUMED inBundle)
{
CFRef<CFBundleRef> bundle(inBundle);
return cfString(bundle);
return cfString(CFURLRef(it));
else if (id == CFBundleGetTypeID())
return cfString(CFBundleRef(it));
- else
- return cfString(CFCopyDescription(it), true);
+ else {
+ return cfStringRelease(CFCopyDescription(it));
+ }
}