From a39d6c3f86104ca474086c599a88806b419ee875 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CsaiHemak=E2=80=9D?= <“sakandur@in.ibm.com”> Date: Wed, 22 Feb 2017 16:56:33 +0530 Subject: [PATCH] Performance regression in NSMutableData[SR-3966] --- CoreFoundation/Collections.subproj/CFData.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CoreFoundation/Collections.subproj/CFData.c b/CoreFoundation/Collections.subproj/CFData.c index 3d966f2c83..22555af1bf 100644 --- a/CoreFoundation/Collections.subproj/CFData.c +++ b/CoreFoundation/Collections.subproj/CFData.c @@ -312,10 +312,13 @@ CFTypeID CFDataGetTypeID(void) { 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));