Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace calls to CFStringCreateWithCString with constant CFStrings #4694

Merged
merged 1 commit into from
Mar 16, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions CoreFoundation/Base.subproj/CFPlatform.c
Original file line number Diff line number Diff line change
Expand Up @@ -278,8 +278,11 @@ CF_PRIVATE CFStringRef _CFProcessNameString(void) {
static CFStringRef __CFProcessNameString = NULL;
if (!__CFProcessNameString) {
const char *processName = *_CFGetProgname();
if (!processName) processName = "";
CFStringRef newStr = CFStringCreateWithCString(kCFAllocatorSystemDefault, processName, kCFPlatformInterfaceStringEncoding);
CFStringRef newStr;
if (processName)
newStr = CFStringCreateWithCString(kCFAllocatorSystemDefault, processName, kCFPlatformInterfaceStringEncoding);
else
newStr = CFSTR("");
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated"
if (!OSAtomicCompareAndSwapPtrBarrier(NULL, (void *) newStr, (void * volatile *)& __CFProcessNameString)) {
Expand Down Expand Up @@ -392,7 +395,7 @@ CF_PRIVATE CFStringRef _CFStringCreateHostName(void) {
char myName[CFMaxHostNameSize];

// return @"" instead of nil a la CFUserName() and Ali Ozer
if (0 != gethostname(myName, CFMaxHostNameSize)) myName[0] = '\0';
if (0 != gethostname(myName, CFMaxHostNameSize)) return CFSTR("");
return CFStringCreateWithCString(kCFAllocatorSystemDefault, myName, kCFPlatformInterfaceStringEncoding);
}

Expand Down
3 changes: 1 addition & 2 deletions CoreFoundation/Locale.subproj/CFDateFormatter.c
Original file line number Diff line number Diff line change
Expand Up @@ -979,7 +979,7 @@ static CFMutableStringRef __createISO8601FormatString(CFISO8601DateFormatOptions
}

CFDateFormatterRef CFDateFormatterCreateISO8601Formatter(CFAllocatorRef allocator, CFISO8601DateFormatOptions formatOptions) {
CFStringRef localeStr = CFStringCreateWithCString(kCFAllocatorSystemDefault, "en_US_POSIX", kCFStringEncodingUTF8);
CFStringRef localeStr = CFSTR("en_US_POSIX");
CFLocaleRef locale = CFLocaleCreate(kCFAllocatorSystemDefault, localeStr);
CFDateFormatterRef ISO8601Formatter = __CreateCFDateFormatter(allocator, locale, kCFDateFormatterNoStyle, kCFDateFormatterNoStyle, kCFBooleanTrue); // dateStyle and timeStyle are not relevant for ISO8601

Expand All @@ -991,7 +991,6 @@ CFDateFormatterRef CFDateFormatterCreateISO8601Formatter(CFAllocatorRef allocato
}
}

CFRelease(localeStr);
CFRelease(locale);

return ISO8601Formatter;
Expand Down
38 changes: 19 additions & 19 deletions CoreFoundation/Parsing.subproj/CFXMLInterface.c
Original file line number Diff line number Diff line change
Expand Up @@ -350,7 +350,7 @@ void _CFXMLInterfaceSAX2UnparsedEntityDecl(_CFXMLInterfaceParserContext ctx, con
}

CFErrorRef _CFErrorCreateFromXMLInterface(_CFXMLInterfaceError err) {
return __CFSwiftXMLParserBridgeCF.CFErrorCreate(*(__CFSwiftXMLParserBridgeCF.kCFAllocatorSystemDefault), __CFSwiftXMLParserBridgeCF.CFStringCreateWithCString(NULL, "NSXMLParserErrorDomain", kCFStringEncodingUTF8), err->code, NULL);
return __CFSwiftXMLParserBridgeCF.CFErrorCreate(*(__CFSwiftXMLParserBridgeCF.kCFAllocatorSystemDefault), CFSTR("NSXMLParserErrorDomain"), err->code, NULL);
}

_CFXMLNodePtr _CFXMLNewNode(_CFXMLNamespacePtr namespace, const char* name) {
Expand Down Expand Up @@ -594,14 +594,14 @@ void _CFXMLNodeSetContent(_CFXMLNodePtr node, const unsigned char* _Nullable co
// rather than writing custom code to parse the new content into the correct
// xmlElementContent structures, let's leverage what we've already got.
CFMutableStringRef xmlString = __CFSwiftXMLParserBridgeCF.CFStringCreateMutable(NULL, 0);
__CFSwiftXMLParserBridgeCF.CFStringAppend(xmlString, __CFSwiftXMLParserBridgeCF.CFStringCreateWithCString(NULL, "<!ELEMENT ", kCFStringEncodingUTF8));
__CFSwiftXMLParserBridgeCF.CFStringAppend(xmlString, CFSTR("<!ELEMENT "));
__CFSwiftXMLParserBridgeCF.CFStringAppendCString(xmlString, (const char*)element->name, kCFStringEncodingUTF8);
__CFSwiftXMLParserBridgeCF.CFStringAppend(xmlString, __CFSwiftXMLParserBridgeCF.CFStringCreateWithCString(NULL, " ", kCFStringEncodingUTF8));
__CFSwiftXMLParserBridgeCF.CFStringAppend(xmlString, CFSTR(" "));
__CFSwiftXMLParserBridgeCF.CFStringAppendCString(xmlString, (const char*)content, kCFStringEncodingUTF8);
__CFSwiftXMLParserBridgeCF.CFStringAppend(xmlString, __CFSwiftXMLParserBridgeCF.CFStringCreateWithCString(NULL, ">", kCFStringEncodingUTF8));
__CFSwiftXMLParserBridgeCF.CFStringAppend(xmlString, CFSTR(">"));

size_t bufferSize = __CFSwiftXMLParserBridgeCF.CFStringGetMaximumSizeForEncoding(__CFSwiftXMLParserBridgeCF.CFStringGetLength(xmlString), kCFStringEncodingUTF8) + 1;
char* buffer = calloc(bufferSize, 1);
char* buffer = calloc(1, bufferSize);
__CFSwiftXMLParserBridgeCF.CFStringGetCString(xmlString, buffer, bufferSize, kCFStringEncodingUTF8);
xmlElementPtr resultNode = _CFXMLParseDTDNode((const xmlChar*)buffer);

Expand Down Expand Up @@ -864,35 +864,35 @@ CFStringRef _CFXMLCopyStringWithOptions(_CFXMLNodePtr node, uint32_t options) {
// predefined entities need special handling, libxml2 just tosses an error and returns a NULL string
// if we try to use xmlSaveTree on a predefined entity
CFMutableStringRef result = __CFSwiftXMLParserBridgeCF.CFStringCreateMutable(NULL, 0);
__CFSwiftXMLParserBridgeCF.CFStringAppend(result, __CFSwiftXMLParserBridgeCF.CFStringCreateWithCString(NULL, "<!ENTITY ", kCFStringEncodingUTF8));
__CFSwiftXMLParserBridgeCF.CFStringAppend(result, CFSTR("<!ENTITY "));
__CFSwiftXMLParserBridgeCF.CFStringAppendCString(result, (const char*)((xmlEntityPtr)node)->name, kCFStringEncodingUTF8);
__CFSwiftXMLParserBridgeCF.CFStringAppend(result, __CFSwiftXMLParserBridgeCF.CFStringCreateWithCString(NULL, " \"", kCFStringEncodingUTF8));
__CFSwiftXMLParserBridgeCF.CFStringAppend(result, CFSTR(" \""));
__CFSwiftXMLParserBridgeCF.CFStringAppendCString(result, (const char*)((xmlEntityPtr)node)->content, kCFStringEncodingUTF8);
__CFSwiftXMLParserBridgeCF.CFStringAppend(result, __CFSwiftXMLParserBridgeCF.CFStringCreateWithCString(NULL, "\">", kCFStringEncodingUTF8));
__CFSwiftXMLParserBridgeCF.CFStringAppend(result, CFSTR("\">"));

return result;
} else if (((xmlNodePtr)node)->type == XML_NOTATION_NODE) {
// This is not actually a thing that occurs naturally in libxml2
xmlNotationPtr notation = ((_cfxmlNotation*)node)->notation;
CFMutableStringRef result = __CFSwiftXMLParserBridgeCF.CFStringCreateMutable(NULL, 0);
__CFSwiftXMLParserBridgeCF.CFStringAppend(result, __CFSwiftXMLParserBridgeCF.CFStringCreateWithCString(NULL, "<!NOTATION ", kCFStringEncodingUTF8));
__CFSwiftXMLParserBridgeCF.CFStringAppend(result, CFSTR("<!NOTATION "));
__CFSwiftXMLParserBridgeCF.CFStringAppendCString(result, (const char*)notation->name, kCFStringEncodingUTF8);
__CFSwiftXMLParserBridgeCF.CFStringAppend(result, __CFSwiftXMLParserBridgeCF.CFStringCreateWithCString(NULL, " ", kCFStringEncodingUTF8));
__CFSwiftXMLParserBridgeCF.CFStringAppend(result, CFSTR(" "));
if (notation->PublicID == NULL && notation->SystemID != NULL) {
__CFSwiftXMLParserBridgeCF.CFStringAppend(result, __CFSwiftXMLParserBridgeCF.CFStringCreateWithCString(NULL, "SYSTEM ", kCFStringEncodingUTF8));
__CFSwiftXMLParserBridgeCF.CFStringAppend(result, CFSTR("SYSTEM "));
} else if (notation->PublicID != NULL) {
__CFSwiftXMLParserBridgeCF.CFStringAppend(result, __CFSwiftXMLParserBridgeCF.CFStringCreateWithCString(NULL, "PUBLIC \"", kCFStringEncodingUTF8));
__CFSwiftXMLParserBridgeCF.CFStringAppend(result, CFSTR("PUBLIC \""));
__CFSwiftXMLParserBridgeCF.CFStringAppendCString(result, (const char*)notation->PublicID, kCFStringEncodingUTF8);
__CFSwiftXMLParserBridgeCF.CFStringAppend(result, __CFSwiftXMLParserBridgeCF.CFStringCreateWithCString(NULL, "\"", kCFStringEncodingUTF8));
__CFSwiftXMLParserBridgeCF.CFStringAppend(result, CFSTR("\""));
}

if (notation->SystemID != NULL) {
__CFSwiftXMLParserBridgeCF.CFStringAppend(result, __CFSwiftXMLParserBridgeCF.CFStringCreateWithCString(NULL, "\"", kCFStringEncodingUTF8));
__CFSwiftXMLParserBridgeCF.CFStringAppend(result, CFSTR("\""));
__CFSwiftXMLParserBridgeCF.CFStringAppendCString(result, (const char*)notation->SystemID, kCFStringEncodingUTF8);
__CFSwiftXMLParserBridgeCF.CFStringAppend(result, __CFSwiftXMLParserBridgeCF.CFStringCreateWithCString(NULL, "\"", kCFStringEncodingUTF8));
__CFSwiftXMLParserBridgeCF.CFStringAppend(result, CFSTR("\""));
}

__CFSwiftXMLParserBridgeCF.CFStringAppend(result, __CFSwiftXMLParserBridgeCF.CFStringCreateWithCString(NULL, " >", kCFStringEncodingUTF8));
__CFSwiftXMLParserBridgeCF.CFStringAppend(result, CFSTR(" >"));

return result;
}
Expand All @@ -918,7 +918,7 @@ CFStringRef _CFXMLCopyStringWithOptions(_CFXMLNodePtr node, uint32_t options) {
int error = xmlSaveClose(ctx);

if (error == -1) {
return __CFSwiftXMLParserBridgeCF.CFStringCreateWithCString(NULL, "", kCFStringEncodingUTF8);
return CFSTR("");
}

const xmlChar* bufferContents = xmlBufferContent(buffer);
Expand Down Expand Up @@ -1111,7 +1111,7 @@ bool _CFXMLDocValidate(_CFXMLDocPtr doc, CFErrorRef _Nullable * error) {
CFMutableDictionaryRef userInfo = __CFSwiftXMLParserBridgeCF.CFDictionaryCreateMutable(NULL, 1, __CFSwiftXMLParserBridgeCF.kCFCopyStringDictionaryKeyCallBacks, __CFSwiftXMLParserBridgeCF.kCFTypeDictionaryValueCallBacks);
__CFSwiftXMLParserBridgeCF.CFDictionarySetValue(userInfo, *(__CFSwiftXMLParserBridgeCF.kCFErrorLocalizedDescriptionKey), errorMessage);

*error = __CFSwiftXMLParserBridgeCF.CFErrorCreate(NULL, __CFSwiftXMLParserBridgeCF.CFStringCreateWithCString(NULL, "NSXMLParserErrorDomain", kCFStringEncodingUTF8), 0, userInfo);
*error = __CFSwiftXMLParserBridgeCF.CFErrorCreate(NULL, CFSTR("NSXMLParserErrorDomain"), 0, userInfo);

__CFSwiftXMLParserBridgeCF.CFRelease(userInfo);
}
Expand Down Expand Up @@ -1177,7 +1177,7 @@ _CFXMLDTDPtr _Nullable _CFXMLParseDTDFromData(CFDataRef data, CFErrorRef _Nullab
CFMutableDictionaryRef userInfo = __CFSwiftXMLParserBridgeCF.CFDictionaryCreateMutable(NULL, 1, __CFSwiftXMLParserBridgeCF.kCFCopyStringDictionaryKeyCallBacks, __CFSwiftXMLParserBridgeCF.kCFTypeDictionaryValueCallBacks);
__CFSwiftXMLParserBridgeCF.CFDictionarySetValue(userInfo, *(__CFSwiftXMLParserBridgeCF.kCFErrorLocalizedDescriptionKey), errorMessage);

*error = __CFSwiftXMLParserBridgeCF.CFErrorCreate(NULL, __CFSwiftXMLParserBridgeCF.CFStringCreateWithCString(NULL, "NSXMLParserErrorDomain", kCFStringEncodingUTF8), 0, userInfo);
*error = __CFSwiftXMLParserBridgeCF.CFErrorCreate(NULL, CFSTR("NSXMLParserErrorDomain"), 0, userInfo);

__CFSwiftXMLParserBridgeCF.CFRelease(userInfo);
}
Expand Down
2 changes: 1 addition & 1 deletion CoreFoundation/Preferences.subproj/CFPreferences.c
Original file line number Diff line number Diff line change
Expand Up @@ -558,7 +558,7 @@ CF_PRIVATE CFArrayRef _CFPreferencesCreateDomainList(CFStringRef userName, CFSt
return NULL;
}
if (hostName == kCFPreferencesAnyHost) {
suffix = CFStringCreateWithCString(prefAlloc, ".plist", kCFStringEncodingASCII);
suffix = CFSTR(".plist");
} else if (hostName == kCFPreferencesCurrentHost) {
CFStringRef hostID = _CFPreferencesGetByHostIdentifierString();
suffix = CFStringCreateWithFormat(prefAlloc, NULL, CFSTR(".%@.plist"), hostID);
Expand Down
4 changes: 2 additions & 2 deletions CoreFoundation/URL.subproj/CFURL.c
Original file line number Diff line number Diff line change
Expand Up @@ -4058,9 +4058,9 @@ static CFStringRef WindowsPathToURLPath(CFStringRef path, CFAllocatorRef alloc,
CFArrayRef urlComponents;
CFStringRef str;

if (CFStringGetLength(path) == 0) return CFStringCreateWithCString(alloc, "", kCFStringEncodingASCII);
if (CFStringGetLength(path) == 0) return CFSTR("");
urlComponents = WindowsPathToURLComponents(path, alloc, isDir, isAbsolute);
if (!urlComponents) return CFStringCreateWithCString(alloc, "", kCFStringEncodingASCII);
if (!urlComponents) return CFSTR("");

// WindowsPathToURLComponents already added percent escapes for us; no need to add them again here.
str = CFStringCreateByCombiningStrings(alloc, urlComponents, CFSTR("/"));
Expand Down