Skip to content

Commit a2c0308

Browse files
committed
Modified code changes to address the review comments.
1 parent 3edc9c5 commit a2c0308

File tree

3 files changed

+20
-12
lines changed

3 files changed

+20
-12
lines changed

CoreFoundation/Base.subproj/CFFileUtilities.c

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1224,11 +1224,11 @@ CFArrayRef _CFXDGCreateDataDirectoriesPaths(void) {
12241224
if ((dataDirectoriesPaths == NULL) || (dataDirectoriesPaths[0] == '\0')) {
12251225
// Environmental variable not set. Return default value.
12261226
CFStringRef defaultPath[2];
1227-
defaultPath[0] = CFStringCreateWithCString(kCFAllocatorSystemDefault, "/usr/local/share/", _kCFXDGStringEncoding);
1228-
defaultPath[1] = CFStringCreateWithCString(kCFAllocatorSystemDefault, "/usr/share/", _kCFXDGStringEncoding);
1227+
defaultPath[0] = CFSTR("/usr/local/share/");
1228+
defaultPath[1] = CFSTR("/usr/share/");
12291229
return CFArrayCreate(kCFAllocatorSystemDefault, (const void **)defaultPath, 2, &kCFTypeArrayCallBacks);
12301230
}
1231-
return _CFTokenizeStringToCFArrayOfCFStrings(dataDirectoriesPaths, ':');
1231+
return _CFCreateCFArrayByTokenizingString(dataDirectoriesPaths, ':');
12321232
}
12331233

12341234

@@ -1241,10 +1241,10 @@ CFArrayRef _CFXDGCreateConfigDirectoriesPaths(void) {
12411241
if ((configDirectoriesPaths == NULL) || (configDirectoriesPaths[0] == '\0')) {
12421242
//Environmental variable not set. Return default value.
12431243
CFStringRef defaultPath[1];
1244-
defaultPath[0] = CFStringCreateWithCString(kCFAllocatorSystemDefault, "/etc/xdg", _kCFXDGStringEncoding);
1244+
defaultPath[0] = CFSTR("/etc/xdg");
12451245
return CFArrayCreate(kCFAllocatorSystemDefault, (const void **)defaultPath, 1, &kCFTypeArrayCallBacks);
12461246
}
1247-
return _CFTokenizeStringToCFArrayOfCFStrings(configDirectoriesPaths, ':');
1247+
return _CFCreateCFArrayByTokenizingString(configDirectoriesPaths, ':');
12481248
}
12491249

12501250
/// a single base directory relative to which user-specific non-essential (cached) data should be written. This directory is defined by the environment variable $XDG_CACHE_HOME.
@@ -1276,7 +1276,7 @@ CFStringRef _CFXDGCreateRuntimeDirectoryPath(void) {
12761276
}
12771277

12781278

1279-
CF_PRIVATE CFArrayRef _CFTokenizeStringToCFArrayOfCFStrings(const char *values, char delimiter) {
1279+
CF_PRIVATE CFArrayRef _CFCreateCFArrayByTokenizingString(const char *values, char delimiter) {
12801280
size_t pathCount = 0;
12811281
char* tmpDirectoriesPaths = (char*)values;
12821282
char* last_colon = 0;
@@ -1304,16 +1304,23 @@ CF_PRIVATE CFArrayRef _CFTokenizeStringToCFArrayOfCFStrings(const char *values,
13041304
while (path)
13051305
{
13061306
assert(validPathCount < pathCount);
1307-
CFStringRef dirPath = CFStringCreateWithCString(kCFAllocatorSystemDefault, strdup(path), _kCFXDGStringEncoding);
1307+
char* pathString = strdup(path);
1308+
CFStringRef dirPath = CFStringCreateWithCString(kCFAllocatorSystemDefault, pathString, _kCFXDGStringEncoding);
13081309
CFStringRef slash = CFSTR("/");
13091310
CFStringRef tilde = CFSTR("~");
13101311
// Check for absolutePath, if not ignore.
13111312
if (CFStringHasPrefix(dirPath, slash) || CFStringHasPrefix(dirPath, tilde) ) {
13121313
pathList[validPathCount++] = dirPath;
13131314
}
1314-
path = strtok(0, delimiterStr);
1315+
path = strtok(NULL, delimiterStr);
1316+
free(pathString);
13151317
}
1316-
return CFArrayCreate(kCFAllocatorSystemDefault, (const void **)pathList, validPathCount, &kCFTypeArrayCallBacks);
1318+
free(copyDirPath);
1319+
CFArrayRef pathArray = CFArrayCreate(kCFAllocatorSystemDefault, (const void **)pathList , validPathCount, &kCFTypeArrayCallBacks);
1320+
for(int i = 0; i < pathCount; i ++) {
1321+
CFRelease(pathList[i]);
1322+
}
1323+
return pathArray;
13171324
}
13181325
return CFArrayCreate(kCFAllocatorSystemDefault, NULL, 0, &kCFTypeArrayCallBacks);
13191326
}

CoreFoundation/Base.subproj/CFInternal.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -599,7 +599,7 @@ CF_PRIVATE CFIndex _CFLengthAfterDeletingPathExtension2(CFStringRef path);
599599
CF_EXPORT CFIndex _CFStartOfPathExtension(UniChar *unichars, CFIndex length);
600600
CF_PRIVATE CFIndex _CFStartOfPathExtension2(CFStringRef path);
601601
CF_EXPORT CFIndex _CFLengthAfterDeletingPathExtension(UniChar *unichars, CFIndex length);
602-
CF_PRIVATE CFArrayRef _CFTokenizeStringToCFArrayOfCFStrings(const char *values, char delimiter);
602+
CF_PRIVATE CFArrayRef _CFCreateCFArrayByTokenizingString(const char *values, char delimiter);
603603

604604
#if __BLOCKS__
605605
#if DEPLOYMENT_TARGET_WINDOWS

TestFoundation/XDGTestHelper.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@ let simpleCookie = HTTPCookie(properties: [
1111
let rawValue = getenv("XDG_CONFIG_HOME")
1212
let xdg_config_home = String(utf8String: rawValue!)
1313
storage.setCookie(simpleCookie)
14-
XCTAssertEqual(storage.cookies!.count, 1)
1514
let fm = FileManager.default
1615
let destPath = xdg_config_home! + "/.cookies.shared"
1716
var isDir = false
1817
let exists = fm.fileExists(atPath: destPath, isDirectory: &isDir)
19-
XCTAssertTrue(exists)
18+
if (!exists) {
19+
exit(-1)
20+
}

0 commit comments

Comments
 (0)