diff options
author | Nobuyoshi Nakada <[email protected]> | 2024-09-26 18:17:13 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <[email protected]> | 2024-09-26 18:17:13 +0900 |
commit | 2a65f4c90713c3738993aba34b03eeed02ac7a87 () | |
tree | d278e34e0cb5ffacb14457bc9cfbab8a377744c0 /file.c | |
parent | 71b253cdf377acf04fb8bd98221f48d7087946de (diff) |
Extract `mutable_CFString_new`
From duplicate code in `rb_CFString_class_initialize_before_fork` and `rb_str_append_normalized_ospath`.
Notes: Merged: https://.com/ruby/ruby/pull/11695
-rw-r--r-- | file.c | 34 |
1 files changed, 18 insertions, 16 deletions
@@ -271,6 +271,18 @@ rb_str_encode_ospath(VALUE path) # define NORMALIZE_UTF8PATH 1 # ifdef HAVE_WORKING_FORK static void rb_CFString_class_initialize_before_fork(void) { @@ -297,15 +309,9 @@ rb_CFString_class_initialize_before_fork(void) /* Enough small but non-empty ASCII string to fit in NSTaggedPointerString. */ const char small_str[] = "/"; long len = sizeof(small_str) - 1; - - const CFAllocatorRef alloc = kCFAllocatorDefault; - CFStringRef s = CFStringCreateWithBytesNoCopy(alloc, - (const UInt8 *)small_str, - len, kCFStringEncodingUTF8, - FALSE, kCFAllocatorNull); - CFMutableStringRef m = CFStringCreateMutableCopy(alloc, len, s); - CFRelease(m); - CFRelease(s); } # endif /* HAVE_WORKING_FORK */ @@ -314,11 +320,8 @@ rb_str_append_normalized_ospath(VALUE str, const char *ptr, long len) { CFIndex buflen = 0; CFRange all; - CFStringRef s = CFStringCreateWithBytesNoCopy(kCFAllocatorDefault, - (const UInt8 *)ptr, len, - kCFStringEncodingUTF8, FALSE, - kCFAllocatorNull); - CFMutableStringRef m = CFStringCreateMutableCopy(kCFAllocatorDefault, len, s); long oldlen = RSTRING_LEN(str); CFStringNormalize(m, kCFStringNormalizationFormC); @@ -328,8 +331,7 @@ rb_str_append_normalized_ospath(VALUE str, const char *ptr, long len) CFStringGetBytes(m, all, kCFStringEncodingUTF8, '?', FALSE, (UInt8 *)(RSTRING_PTR(str) + oldlen), buflen, &buflen); rb_str_set_len(str, oldlen + buflen); - CFRelease(m); - CFRelease(s); return str; } |