Merge pull request #884 from nethraravindran/nsurlsession-branch
diff --git a/CoreFoundation/Collections.subproj/CFData.c b/CoreFoundation/Collections.subproj/CFData.c
index 3d966f2..22555af 100644
--- a/CoreFoundation/Collections.subproj/CFData.c
+++ b/CoreFoundation/Collections.subproj/CFData.c
@@ -312,10 +312,13 @@
void _CFDataInit(CFMutableDataRef memory, CFOptionFlags flags, CFIndex capacity, const uint8_t *bytes, CFIndex length, Boolean noCopy) {
Boolean isMutable = ((flags & __kCFMutable) != 0);
Boolean isGrowable = ((flags & __kCFGrowable) != 0);
+ Boolean isDontDeallocate = ((flags & __kCFDontDeallocate) != 0);
__CFDataSetNumBytesUsed(memory, 0);
__CFDataSetLength(memory, 0);
- __CFDataSetInfoBits(memory, __kCFDontDeallocate);
+ if (isDontDeallocate) {
+ __CFDataSetInfoBits(memory, __kCFDontDeallocate);
+ }
if (isMutable && isGrowable) {
__CFDataSetCapacity(memory, __CFDataRoundUpCapacity(1));