Commit a48be3e2 authored by Xianwen Chen's avatar Xianwen Chen Committed by GitHub

Merge pull request #326 from RoomieRemote/master

Fix CFStringEncoding/NSStringEncoding confusion
parents 85e0f3fb 896aacb3
......@@ -119,14 +119,14 @@ struct String {
};
template<int wcharTypeSize>
static CFStringEncoding getWCharEncoding()
static NSStringEncoding getWCharEncoding()
{
static_assert(wcharTypeSize == 2 || wcharTypeSize == 4, "wchar_t must be represented by UTF-16 or UTF-32 encoding");
return {}; // unreachable
}
template<>
inline CFStringEncoding getWCharEncoding<2>() {
inline NSStringEncoding getWCharEncoding<2>() {
// case when wchar_t is represented by utf-16 encoding
#if defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
return NSUTF16BigEndianStringEncoding;
......@@ -136,7 +136,7 @@ inline CFStringEncoding getWCharEncoding<2>() {
}
template<>
inline CFStringEncoding getWCharEncoding<4>() {
inline NSStringEncoding getWCharEncoding<4>() {
// case when wchar_t is represented by utf-32 encoding
#if defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
return NSUTF32BigEndianStringEncoding;
......@@ -153,7 +153,7 @@ struct WString {
static CppType toCpp(ObjcType string) {
assert(string);
NSStringEncoding encoding = CFStringConvertEncodingToNSStringEncoding(getWCharEncoding<sizeof(wchar_t)>());
NSStringEncoding encoding = getWCharEncoding<sizeof(wchar_t)>();
NSData* data = [string dataUsingEncoding:encoding];
return std::wstring((wchar_t*)[data bytes], [data length] / sizeof (wchar_t));
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment