Content-Length: 2442 | pFad | https://github.com/lingcherd/WebKit/raw/refs/heads/main/Source/JavaScriptCore/API/JSStringRefCF.cpp

th: 2430 /* * Copyright (C) 2006, 2007 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "config.h" #include "JSStringRefCF.h" #include "APICast.h" #include "InitializeThreading.h" #include "JSCJSValue.h" #include "JSStringRef.h" #include "OpaqueJSString.h" #include #include WTF_ALLOW_UNSAFE_BUFFER_USAGE_BEGIN JSStringRef JSStringCreateWithCFString(CFStringRef string) { JSC::initialize(); RefPtr result = OpaqueJSString::tryCreate(String { string }); if (!result) result = OpaqueJSString::create(""_span8); return result.leakRef(); } CFStringRef JSStringCopyCFString(CFAllocatorRef allocator, JSStringRef string) { if (!string || !string->length()) return CFSTR(""); if (string->is8Bit()) { auto characters = string->span8(); return CFStringCreateWithBytes(allocator, byteCast(characters.data()), characters.size(), kCFStringEncodingISOLatin1, false); } auto characters = string->span16(); return CFStringCreateWithCharacters(allocator, reinterpret_cast(characters.data()), characters.size()); } WTF_ALLOW_UNSAFE_BUFFER_USAGE_END








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: https://github.com/lingcherd/WebKit/raw/refs/heads/main/Source/JavaScriptCore/API/JSStringRefCF.cpp

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy