| Index: base/strings/sys_string_conversions_mac.mm
|
| diff --git a/base/strings/sys_string_conversions_mac.mm b/base/strings/sys_string_conversions_mac.mm
|
| index 32fe89cc3672672a07dc5ad0c02e7d0ef73deb05..2267cee4193a45a93375b5a6b02882e9ec195bfd 100644
|
| --- a/base/strings/sys_string_conversions_mac.mm
|
| +++ b/base/strings/sys_string_conversions_mac.mm
|
| @@ -93,13 +93,14 @@ static OutStringType STLStringToSTLStringWithEncodingsT(
|
| out_encoding);
|
| }
|
|
|
| -// Given an STL string |in| with an encoding specified by |in_encoding|,
|
| -// return it as a CFStringRef. Returns NULL on failure.
|
| -template<typename StringType>
|
| +// Given an STL string |in| and length of string |in_length| with an
|
| +// encoding specified by |in_encoding|, return it as a CFStringRef.
|
| +// Returns NULL on failure.
|
| +template <typename StringType>
|
| static CFStringRef STLStringToCFStringWithEncodingsT(
|
| const StringType& in,
|
| + typename StringType::size_type in_length,
|
| CFStringEncoding in_encoding) {
|
| - typename StringType::size_type in_length = in.length();
|
| if (in_length == 0)
|
| return CFSTR("");
|
|
|
| @@ -111,6 +112,15 @@ static CFStringRef STLStringToCFStringWithEncodingsT(
|
| false);
|
| }
|
|
|
| +// Given an STL string |in| with an encoding specified by |in_encoding|,
|
| +// return it as a CFStringRef. Returns NULL on failure.
|
| +template <typename StringType>
|
| +static CFStringRef STLStringToCFStringWithEncodingsT(
|
| + const StringType& in,
|
| + CFStringEncoding in_encoding) {
|
| + return STLStringToCFStringWithEncodingsT(in, in.length(), in_encoding);
|
| +}
|
| +
|
| // Specify the byte ordering explicitly, otherwise CFString will be confused
|
| // when strings don't carry BOMs, as they typically won't.
|
| static const CFStringEncoding kNarrowStringEncoding = kCFStringEncodingUTF8;
|
| @@ -152,6 +162,11 @@ CFStringRef SysUTF16ToCFStringRef(const string16& utf16) {
|
| return STLStringToCFStringWithEncodingsT(utf16, kMediumStringEncoding);
|
| }
|
|
|
| +CFStringRef SysUTF16ToCFStringRef(const string16& utf16, int string_length) {
|
| + return STLStringToCFStringWithEncodingsT(utf16, string_length,
|
| + kMediumStringEncoding);
|
| +}
|
| +
|
| NSString* SysUTF8ToNSString(const std::string& utf8) {
|
| return (NSString*)base::mac::CFTypeRefToNSObjectAutorelease(
|
| SysUTF8ToCFStringRef(utf8));
|
| @@ -162,6 +177,11 @@ NSString* SysUTF16ToNSString(const string16& utf16) {
|
| SysUTF16ToCFStringRef(utf16));
|
| }
|
|
|
| +NSString* SysUTF16ToNSString(const string16& utf16, int string_length) {
|
| + return (NSString*)base::mac::CFTypeRefToNSObjectAutorelease(
|
| + SysUTF16ToCFStringRef(utf16, string_length));
|
| +}
|
| +
|
| std::string SysCFStringRefToUTF8(CFStringRef ref) {
|
| return CFStringToSTLStringWithEncodingT<std::string>(ref,
|
| kNarrowStringEncoding);
|
|
|