diff options
author | Jimi Huotari <chiitoo@gentoo.org> | 2018-03-16 16:28:03 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-05-23 13:31:33 +0200 |
commit | 4641ad76e87c5c50f6dd9f0890afddf6260fccc9 (patch) | |
tree | e9cf104a1333ffac1c2fd8ff2161af53dd956190 | |
parent | 876c25d3fe6ff2478a7212e4afff2463fcf638cc (diff) | |
download | qtwebengine-chromium-4641ad76e87c5c50f6dd9f0890afddf6260fccc9.tar.gz |
Fix compilation with system ICU 59
This is basically commit 363741cffb565dd6cfc2f95054c25a434b101dba
from 56-based, with the required modifications due to code changes.
Borrowing the original commit message:
ICU 59 changed the UChar type to be char16_t instead of uint16_t and
that causes a mismatch of types all over Chromium.
Unfortunately the upstream patches can not be used as Chromium only
got part way in https://codereview.chromium.org/2740673002, and
then gave up and simply patched their copy of ICU 59 to not change
that.
Task-number: QTBUG-65090
Change-Id: Icbe46fa33bf56fc3a5aedd5b6004fc029fa24930
Reviewed-by: Jimi Huotari <chiitoo@gentoo.org>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
24 files changed, 58 insertions, 44 deletions
diff --git a/chromium/base/i18n/bidi_line_iterator.cc b/chromium/base/i18n/bidi_line_iterator.cc index 3f7f8686614..7b171585aba 100644 --- a/chromium/base/i18n/bidi_line_iterator.cc +++ b/chromium/base/i18n/bidi_line_iterator.cc @@ -89,7 +89,7 @@ bool BiDiLineIterator::Open(const string16& text, return false; } - ubidi_setPara(bidi_, text.data(), static_cast<int>(text.length()), + ubidi_setPara(bidi_, reinterpret_cast<const UChar*>(text.data()), static_cast<int>(text.length()), GetParagraphLevelForDirection(direction), nullptr, &error); return (U_SUCCESS(error)); } diff --git a/chromium/base/i18n/break_iterator.cc b/chromium/base/i18n/break_iterator.cc index 251cd002e7b..82c48272dd2 100644 --- a/chromium/base/i18n/break_iterator.cc +++ b/chromium/base/i18n/break_iterator.cc @@ -57,9 +57,9 @@ bool BreakIterator::Init() { return false; } if (break_type_ == RULE_BASED) { - iter_ = ubrk_openRules(rules_.c_str(), + iter_ = ubrk_openRules(reinterpret_cast<const UChar*>(rules_.c_str()), static_cast<int32_t>(rules_.length()), - string_.data(), + reinterpret_cast<const UChar*>(string_.data()), static_cast<int32_t>(string_.size()), &parse_error, &status); @@ -68,7 +68,7 @@ bool BreakIterator::Init() { << parse_error.line << ", offset " << parse_error.offset; } } else { - iter_ = ubrk_open(break_type, nullptr, string_.data(), + iter_ = ubrk_open(break_type, nullptr, reinterpret_cast<const UChar*>(string_.data()), static_cast<int32_t>(string_.size()), &status); if (U_FAILURE(status)) { NOTREACHED() << "ubrk_open failed for type " << break_type @@ -123,7 +123,7 @@ bool BreakIterator::Advance() { bool BreakIterator::SetText(const base::char16* text, const size_t length) { UErrorCode status = U_ZERO_ERROR; ubrk_setText(static_cast<UBreakIterator*>(iter_), - text, length, &status); + reinterpret_cast<const UChar*>(text), length, &status); pos_ = 0; // implicit when ubrk_setText is done prev_ = npos; if (U_FAILURE(status)) { diff --git a/chromium/base/i18n/case_conversion.cc b/chromium/base/i18n/case_conversion.cc index a4a104cf97e..0ae4c3bea74 100644 --- a/chromium/base/i18n/case_conversion.cc +++ b/chromium/base/i18n/case_conversion.cc @@ -64,8 +64,8 @@ string16 CaseMap(StringPiece16 string, CaseMapperFunction case_mapper) { // terminator, but will otherwise. So we don't need to save room for that. // Don't use WriteInto, which assumes null terminators. int32_t new_length = case_mapper( - &dest[0], saturated_cast<int32_t>(dest.size()), - string.data(), saturated_cast<int32_t>(string.size()), + reinterpret_cast<UChar*>(&dest[0]), saturated_cast<int32_t>(dest.size()), + reinterpret_cast<const UChar*>(string.data()), saturated_cast<int32_t>(string.size()), &error); dest.resize(new_length); } while (error == U_BUFFER_OVERFLOW_ERROR); diff --git a/chromium/base/i18n/icu_string_conversions.cc b/chromium/base/i18n/icu_string_conversions.cc index 6ec99803a81..2fc27212083 100644 --- a/chromium/base/i18n/icu_string_conversions.cc +++ b/chromium/base/i18n/icu_string_conversions.cc @@ -151,7 +151,7 @@ bool UTF16ToCodepage(const string16& utf16, if (!U_SUCCESS(status)) return false; - return ConvertFromUTF16(converter, utf16.c_str(), + return ConvertFromUTF16(converter, reinterpret_cast<const UChar*>(utf16.c_str()), static_cast<int>(utf16.length()), on_error, encoded); } @@ -178,7 +178,7 @@ bool CodepageToUTF16(const std::string& encoded, SetUpErrorHandlerForToUChars(on_error, converter, &status); std::unique_ptr<char16[]> buffer(new char16[uchar_max_length]); - int actual_size = ucnv_toUChars(converter, buffer.get(), + int actual_size = ucnv_toUChars(converter, reinterpret_cast<UChar*>(buffer.get()), static_cast<int>(uchar_max_length), encoded.data(), static_cast<int>(encoded.length()), &status); ucnv_close(converter); diff --git a/chromium/base/i18n/rtl.cc b/chromium/base/i18n/rtl.cc index bba0d449cb6..b1db86f8ed3 100644 --- a/chromium/base/i18n/rtl.cc +++ b/chromium/base/i18n/rtl.cc @@ -217,7 +217,7 @@ TextDirection GetTextDirectionForLocale(const char* locale_name) { } TextDirection GetFirstStrongCharacterDirection(const string16& text) { - const UChar* string = text.c_str(); + const UChar* string = reinterpret_cast<const UChar*>(text.c_str()); size_t length = text.length(); size_t position = 0; while (position < length) { @@ -233,7 +233,7 @@ TextDirection GetFirstStrongCharacterDirection(const string16& text) { } TextDirection GetLastStrongCharacterDirection(const string16& text) { - const UChar* string = text.c_str(); + const UChar* string = reinterpret_cast<const UChar*>(text.c_str()); size_t position = text.length(); while (position > 0) { UChar32 character; @@ -248,7 +248,7 @@ TextDirection GetLastStrongCharacterDirection(const string16& text) { } TextDirection GetStringDirection(const string16& text) { - const UChar* string = text.c_str(); + const UChar* string = reinterpret_cast<const UChar*>(text.c_str()); size_t length = text.length(); size_t position = 0; @@ -398,7 +398,7 @@ void SanitizeUserSuppliedString(string16* text) { } bool StringContainsStrongRTLChars(const string16& text) { - const UChar* string = text.c_str(); + const UChar* string = reinterpret_cast<const UChar*>(text.c_str()); size_t length = text.length(); size_t position = 0; while (position < length) { diff --git a/chromium/base/i18n/string_search.cc b/chromium/base/i18n/string_search.cc index 2f6fee4fe61..df28d0f3ddb 100644 --- a/chromium/base/i18n/string_search.cc +++ b/chromium/base/i18n/string_search.cc @@ -20,8 +20,9 @@ FixedPatternStringSearchIgnoringCaseAndAccents(const string16& find_this) const string16& dummy = find_this_; UErrorCode status = U_ZERO_ERROR; - search_ = usearch_open(find_this_.data(), find_this_.size(), dummy.data(), - dummy.size(), uloc_getDefault(), + search_ = usearch_open(reinterpret_cast<const UChar*>(find_this_.data()), find_this_.size(), + reinterpret_cast<const UChar*>(dummy.data()), dummy.size(), + uloc_getDefault(), nullptr, // breakiter &status); if (U_SUCCESS(status)) { @@ -40,7 +41,7 @@ FixedPatternStringSearchIgnoringCaseAndAccents:: bool FixedPatternStringSearchIgnoringCaseAndAccents::Search( const string16& in_this, size_t* match_index, size_t* match_length) { UErrorCode status = U_ZERO_ERROR; - usearch_setText(search_, in_this.data(), in_this.size(), &status); + usearch_setText(search_, reinterpret_cast<const UChar *>(in_this.data()), in_this.size(), &status); // Default to basic substring search if usearch fails. According to // http://icu-project.org/apiref/icu4c/usearch_8h.html, usearch_open will fail diff --git a/chromium/base/i18n/unicodestring.h b/chromium/base/i18n/unicodestring.h index b62c5264deb..bb5233c4865 100644 --- a/chromium/base/i18n/unicodestring.h +++ b/chromium/base/i18n/unicodestring.h @@ -18,7 +18,7 @@ namespace i18n { inline string16 UnicodeStringToString16(const icu::UnicodeString& unistr) { #if U_ICU_VERSION_MAJOR_NUM >= 59 - return base::string16(icu::toUCharPtr(unistr.getBuffer()), + return base::string16(reinterpret_cast<const char16*>(unistr.getBuffer()), static_cast<size_t>(unistr.length())); #else return base::string16(unistr.getBuffer(), diff --git a/chromium/components/url_formatter/idn_spoof_checker.cc b/chromium/components/url_formatter/idn_spoof_checker.cc index 97b11719004..bee2d5b044b 100644 --- a/chromium/components/url_formatter/idn_spoof_checker.cc +++ b/chromium/components/url_formatter/idn_spoof_checker.cc @@ -199,14 +199,14 @@ bool IDNSpoofChecker::SafeToDisplayAsUnicode(base::StringPiece16 label, bool is_tld_ascii) { UErrorCode status = U_ZERO_ERROR; int32_t result = - uspoof_check(checker_, label.data(), + uspoof_check(checker_, (const UChar*)label.data(), base::checked_cast<int32_t>(label.size()), nullptr, &status); // If uspoof_check fails (due to library failure), or if any of the checks // fail, treat the IDN as unsafe. if (U_FAILURE(status) || (result & USPOOF_ALL_CHECKS)) return false; - icu::UnicodeString label_string(FALSE, label.data(), + icu::UnicodeString label_string(FALSE, (const UChar*)label.data(), base::checked_cast<int32_t>(label.size())); // A punycode label with 'xn--' prefix is not subject to the URL diff --git a/chromium/components/url_formatter/url_formatter.cc b/chromium/components/url_formatter/url_formatter.cc index 42f438eb067..016d2fe2414 100644 --- a/chromium/components/url_formatter/url_formatter.cc +++ b/chromium/components/url_formatter/url_formatter.cc @@ -374,7 +374,7 @@ bool IDNToUnicodeOneComponent(const base::char16* comp, // code units, |status| will be U_BUFFER_OVERFLOW_ERROR and we'll try // the conversion again, but with a sufficiently large buffer. output_length = uidna_labelToUnicode( - uidna, comp, static_cast<int32_t>(comp_len), &(*out)[original_length], + uidna, (const UChar*)comp, static_cast<int32_t>(comp_len), (UChar*)&(*out)[original_length], output_length, &info, &status); } while ((status == U_BUFFER_OVERFLOW_ERROR && info.errors == 0)); diff --git a/chromium/content/child/browser_font_resource_trusted.cc b/chromium/content/child/browser_font_resource_trusted.cc index fb4a65c7f5e..56985bd5433 100644 --- a/chromium/content/child/browser_font_resource_trusted.cc +++ b/chromium/content/child/browser_font_resource_trusted.cc @@ -76,8 +76,7 @@ class TextRunCollection { } else { bidi_ = ubidi_open(); UErrorCode uerror = U_ZERO_ERROR; - ubidi_setPara(bidi_, text_.data(), text_.size(), run.rtl, nullptr, - &uerror); + ubidi_setPara(bidi_, reinterpret_cast<const UChar*>(text_.data()), text_.size(), run.rtl, nullptr, &uerror); if (U_SUCCESS(uerror)) num_runs_ = ubidi_countRuns(bidi_, &uerror); } diff --git a/chromium/ppapi/proxy/pdf_resource.cc b/chromium/ppapi/proxy/pdf_resource.cc index 75e0f3fe75e..c195237c6ee 100644 --- a/chromium/ppapi/proxy/pdf_resource.cc +++ b/chromium/ppapi/proxy/pdf_resource.cc @@ -59,10 +59,10 @@ void PDFResource::SearchString(const unsigned short* input_string, uint32_t* count) { if (locale_.empty()) locale_ = GetLocale(); - const base::char16* string = - reinterpret_cast<const base::char16*>(input_string); - const base::char16* term = - reinterpret_cast<const base::char16*>(input_term); + const UChar* string = + reinterpret_cast<const UChar*>(input_string); + const UChar* term = + reinterpret_cast<const UChar*>(input_term); UErrorCode status = U_ZERO_ERROR; UStringSearch* searcher = usearch_open(term, -1, string, -1, locale_.c_str(), diff --git a/chromium/third_party/blink/renderer/platform/exported/file_path_conversion.cc b/chromium/third_party/blink/renderer/platform/exported/file_path_conversion.cc index ad589bdfad6..2d19fb14073 100644 --- a/chromium/third_party/blink/renderer/platform/exported/file_path_conversion.cc +++ b/chromium/third_party/blink/renderer/platform/exported/file_path_conversion.cc @@ -19,7 +19,7 @@ base::FilePath WebStringToFilePath(const WebString& web_string) { String str = web_string; if (!str.Is8Bit()) { return base::FilePath::FromUTF16Unsafe( - base::StringPiece16(str.Characters16(), str.length())); + base::StringPiece16((const base::char16*)str.Characters16(), str.length())); } #if defined(OS_POSIX) diff --git a/chromium/third_party/blink/renderer/platform/exported/url_conversion.cc b/chromium/third_party/blink/renderer/platform/exported/url_conversion.cc index 4b149343d90..4cba8904f1d 100644 --- a/chromium/third_party/blink/renderer/platform/exported/url_conversion.cc +++ b/chromium/third_party/blink/renderer/platform/exported/url_conversion.cc @@ -23,7 +23,7 @@ GURL WebStringToGURL(const WebString& web_string) { } // GURL can consume UTF-16 directly. - return GURL(base::StringPiece16(str.Characters16(), str.length())); + return GURL(base::StringPiece16((const base::char16*)str.Characters16(), str.length())); } } // namespace blink diff --git a/chromium/third_party/blink/renderer/platform/exported/web_string.cc b/chromium/third_party/blink/renderer/platform/exported/web_string.cc index cddf917e560..28346feca51 100644 --- a/chromium/third_party/blink/renderer/platform/exported/web_string.cc +++ b/chromium/third_party/blink/renderer/platform/exported/web_string.cc @@ -57,7 +57,7 @@ WebString& WebString::operator=(const WebString&) = default; WebString& WebString::operator=(WebString&&) = default; WebString::WebString(const WebUChar* data, size_t len) - : impl_(StringImpl::Create8BitIfPossible(data, len)) {} + : impl_(StringImpl::Create8BitIfPossible((const UChar*)data, len)) {} void WebString::Reset() { impl_ = nullptr; @@ -76,7 +76,7 @@ const WebLChar* WebString::Data8() const { } const WebUChar* WebString::Data16() const { - return impl_ && !Is8Bit() ? impl_->Characters16() : nullptr; + return impl_ && !Is8Bit() ? (const WebUChar*)impl_->Characters16() : nullptr; } std::string WebString::Utf8(UTF8ConversionMode mode) const { diff --git a/chromium/third_party/blink/renderer/platform/graphics/logging_canvas.cc b/chromium/third_party/blink/renderer/platform/graphics/logging_canvas.cc index 89b92fa9686..aa06984267c 100644 --- a/chromium/third_party/blink/renderer/platform/graphics/logging_canvas.cc +++ b/chromium/third_party/blink/renderer/platform/graphics/logging_canvas.cc @@ -531,7 +531,7 @@ String StringForUTF32LEText(const void* text, size_t byte_length) { utf16 = icu::UnicodeString::fromUTF32(reinterpret_cast<const UChar32*>(text), static_cast<int32_t>(byte_length)); #endif - return String(icu::toUCharPtr(utf16.getBuffer()), + return String(utf16.getBuffer(), static_cast<unsigned>(utf16.length())); } diff --git a/chromium/third_party/blink/renderer/platform/link_hash.cc b/chromium/third_party/blink/renderer/platform/link_hash.cc index 17328c195dc..af088e28235 100644 --- a/chromium/third_party/blink/renderer/platform/link_hash.cc +++ b/chromium/third_party/blink/renderer/platform/link_hash.cc @@ -51,7 +51,7 @@ static bool ResolveRelative(const KURL& base, relative_utf8.Data(), relative_utf8.length(), nullptr, buffer, &parsed); } return url::ResolveRelative(base_utf8.Data(), base_utf8.length(), - base.GetParsed(), relative.Characters16(), + base.GetParsed(), (const base::char16*)relative.Characters16(), relative.length(), nullptr, buffer, &parsed); } diff --git a/chromium/third_party/blink/renderer/platform/weborigin/kurl.cc b/chromium/third_party/blink/renderer/platform/weborigin/kurl.cc index 09d31ec610b..02c670e8f4f 100644 --- a/chromium/third_party/blink/renderer/platform/weborigin/kurl.cc +++ b/chromium/third_party/blink/renderer/platform/weborigin/kurl.cc @@ -105,7 +105,7 @@ class KURLCharsetConverter final : public url::CharsetConverter { int input_length, url::CanonOutput* output) override { CString encoded = encoding_->Encode( - String(input, input_length), WTF::kURLEncodedEntitiesForUnencodables); + String((const UChar*)input, input_length), WTF::kURLEncodedEntitiesForUnencodables); output->Append(encoded.data(), static_cast<int>(encoded.length())); } @@ -335,7 +335,7 @@ String KURL::LastPathComponent() const { if (string_.Is8Bit()) url::ExtractFileName(AsURLChar8Subtle(string_), path, &file); else - url::ExtractFileName(string_.Characters16(), path, &file); + url::ExtractFileName((const base::char16*)string_.Characters16(), path, &file); // Bug: https://bugs.webkit.org/show_bug.cgi?id=21015 this function returns // a null string when the path is empty, which we duplicate here. @@ -365,7 +365,7 @@ unsigned short KURL::Port() const { DCHECK(!string_.IsNull()); int port = string_.Is8Bit() ? url::ParsePort(AsURLChar8Subtle(string_), parsed_.port) - : url::ParsePort(string_.Characters16(), parsed_.port); + : url::ParsePort((const base::char16*)string_.Characters16(), parsed_.port); DCHECK_NE(port, url::PORT_UNSPECIFIED); // Checked port.len <= 0 before. if (port == url::PORT_INVALID || @@ -658,7 +658,7 @@ bool KURL::IsHierarchical() const { return false; return string_.Is8Bit() ? url::IsStandard(AsURLChar8Subtle(string_), parsed_.scheme) - : url::IsStandard(string_.Characters16(), parsed_.scheme); + : url::IsStandard((const base::char16*)string_.Characters16(), parsed_.scheme); } bool EqualIgnoringFragmentIdentifier(const KURL& a, const KURL& b) { @@ -711,7 +711,7 @@ unsigned KURL::PathAfterLastSlash() const { if (string_.Is8Bit()) url::ExtractFileName(AsURLChar8Subtle(string_), parsed_.path, &filename); else - url::ExtractFileName(string_.Characters16(), parsed_.path, &filename); + url::ExtractFileName((const base::char16*)string_.Characters16(), parsed_.path, &filename); return filename.begin; } @@ -725,7 +725,7 @@ bool ProtocolIs(const String& url, const char* protocol) { return url::FindAndCompareScheme(AsURLChar8Subtle(url), url.length(), protocol, nullptr); } - return url::FindAndCompareScheme(url.Characters16(), url.length(), protocol, + return url::FindAndCompareScheme((const base::char16*)url.Characters16(), url.length(), protocol, nullptr); } @@ -758,7 +758,7 @@ void KURL::Init(const KURL& base, charset_converter, &output, &parsed_); } else { is_valid_ = url::ResolveRelative(base_utf8.Data(), base_utf8.length(), - base.parsed_, relative.Characters16(), + base.parsed_, (const base::char16*)relative.Characters16(), clampTo<int>(relative.length()), charset_converter, &output, &parsed_); } diff --git a/chromium/third_party/blink/renderer/platform/weborigin/security_origin.cc b/chromium/third_party/blink/renderer/platform/weborigin/security_origin.cc index ec5c4b4b106..513c2f34f1c 100644 --- a/chromium/third_party/blink/renderer/platform/weborigin/security_origin.cc +++ b/chromium/third_party/blink/renderer/platform/weborigin/security_origin.cc @@ -522,7 +522,7 @@ String SecurityOrigin::CanonicalizeHost(const String& host, bool* success) { url::CanonicalizeHost(utf8.Data(), url::Component(0, utf8.length()), &canon_output, &out_host); } else { - *success = url::CanonicalizeHost(host.Characters16(), + *success = url::CanonicalizeHost(reinterpret_cast<const base::char16 *>(host.Characters16()), url::Component(0, host.length()), &canon_output, &out_host); } diff --git a/chromium/third_party/blink/renderer/platform/wtf/text/atomic_string.h b/chromium/third_party/blink/renderer/platform/wtf/text/atomic_string.h index 837d1a82a20..9b261a96c3e 100644 --- a/chromium/third_party/blink/renderer/platform/wtf/text/atomic_string.h +++ b/chromium/third_party/blink/renderer/platform/wtf/text/atomic_string.h @@ -66,8 +66,10 @@ class WTF_EXPORT AtomicString { AtomicString(const LChar* chars, unsigned length); AtomicString(const UChar* chars, unsigned length); AtomicString(const UChar* chars); +#if (U_ICU_VERSION_MAJOR_NUM < 59) || !defined(USING_SYSTEM_ICU) AtomicString(const char16_t* chars) : AtomicString(reinterpret_cast<const UChar*>(chars)) {} +#endif template <size_t inlineCapacity> explicit AtomicString(const Vector<UChar, inlineCapacity>& vector) diff --git a/chromium/third_party/blink/renderer/platform/wtf/text/string_view.h b/chromium/third_party/blink/renderer/platform/wtf/text/string_view.h index ea7e299075d..1b1696f0aa5 100644 --- a/chromium/third_party/blink/renderer/platform/wtf/text/string_view.h +++ b/chromium/third_party/blink/renderer/platform/wtf/text/string_view.h @@ -83,8 +83,10 @@ class WTF_EXPORT StringView { characters16_(chars), length_(length) {} StringView(const UChar* chars); +#if (U_ICU_VERSION_MAJOR_NUM < 59) || !defined(USING_SYSTEM_ICU) StringView(const char16_t* chars) : StringView(reinterpret_cast<const UChar*>(chars)) {} +#endif #if DCHECK_IS_ON() ~StringView(); diff --git a/chromium/third_party/blink/renderer/platform/wtf/text/wtf_string.h b/chromium/third_party/blink/renderer/platform/wtf/text/wtf_string.h index dc7153ed13c..683b3f3727c 100644 --- a/chromium/third_party/blink/renderer/platform/wtf/text/wtf_string.h +++ b/chromium/third_party/blink/renderer/platform/wtf/text/wtf_string.h @@ -35,6 +35,7 @@ #include "third_party/blink/renderer/platform/wtf/text/string_view.h" #include "third_party/blink/renderer/platform/wtf/wtf_export.h" +#include "third_party/icu/source/common/unicode/uvernum.h" #ifdef __OBJC__ #include <objc/objc.h> #endif @@ -68,6 +69,10 @@ class WTF_EXPORT String { // Construct a string with UTF-16 data. String(const UChar* characters, unsigned length); +#if (U_ICU_VERSION_MAJOR_NUM < 59) || !defined(USING_SYSTEM_ICU) + String(const char16_t* chars, unsigned length) + : String(reinterpret_cast<const UChar*>(chars), length) {} +#endif // Construct a string by copying the contents of a vector. // This method will never create a null string. Vectors with size() == 0 @@ -81,8 +86,13 @@ class WTF_EXPORT String { // Construct a string with UTF-16 data, from a null-terminated source. String(const UChar*); +#if (U_ICU_VERSION_MAJOR_NUM < 59) || !defined(USING_SYSTEM_ICU) String(const char16_t* chars) : String(reinterpret_cast<const UChar*>(chars)) {} +#else + String(const uint16_t* chars) + : String(reinterpret_cast<const UChar*>(chars)) {} +#endif // Construct a string with latin1 data. String(const LChar* characters, unsigned length); diff --git a/chromium/ui/base/l10n/l10n_util.cc b/chromium/ui/base/l10n/l10n_util.cc index 31b33c03f25..506c09a748a 100644 --- a/chromium/ui/base/l10n/l10n_util.cc +++ b/chromium/ui/base/l10n/l10n_util.cc @@ -583,7 +583,7 @@ base::string16 GetDisplayNameForLocale(const std::string& locale, int actual_size = uloc_getDisplayName( locale_code.c_str(), display_locale.c_str(), - base::WriteInto(&display_name, kBufferSize), kBufferSize - 1, &error); + (UChar*)base::WriteInto(&display_name, kBufferSize), kBufferSize - 1, &error); DCHECK(U_SUCCESS(error)); display_name.resize(actual_size); } diff --git a/chromium/ui/base/l10n/time_format.cc b/chromium/ui/base/l10n/time_format.cc index 58e4c9431bf..b91dc21c64c 100644 --- a/chromium/ui/base/l10n/time_format.cc +++ b/chromium/ui/base/l10n/time_format.cc @@ -140,7 +140,7 @@ base::string16 TimeFormat::DetailedWithMonthAndYear( DCHECK_GT(capacity, 1); base::string16 result; UErrorCode error = U_ZERO_ERROR; - time_string.extract(static_cast<UChar*>(base::WriteInto(&result, capacity)), + time_string.extract(reinterpret_cast<UChar*>(base::WriteInto(&result, capacity)), capacity, error); DCHECK(U_SUCCESS(error)); return result; diff --git a/chromium/url/url_canon_icu.cc b/chromium/url/url_canon_icu.cc index 254d7e44bd1..9b06e952bbf 100644 --- a/chromium/url/url_canon_icu.cc +++ b/chromium/url/url_canon_icu.cc @@ -137,7 +137,7 @@ void ICUCharsetConverter::ConvertFromUTF16(const base::char16* input, UErrorCode err = U_ZERO_ERROR; char* dest = &output->data()[begin_offset]; int required_capacity = ucnv_fromUChars(converter_, dest, dest_capacity, - input, input_len, &err); + (const UChar*)input, input_len, &err); if (err != U_BUFFER_OVERFLOW_ERROR) { output->set_length(begin_offset + required_capacity); return; @@ -174,7 +174,7 @@ bool IDNToASCII(const base::char16* src, int src_len, CanonOutputW* output) { while (true) { UErrorCode err = U_ZERO_ERROR; UIDNAInfo info = UIDNA_INFO_INITIALIZER; - int output_length = uidna_nameToASCII(uidna, src, src_len, output->data(), + int output_length = uidna_nameToASCII(uidna, (const UChar*)src, src_len, (UChar*)output->data(), output->capacity(), &info, &err); if (U_SUCCESS(err) && info.errors == 0) { output->set_length(output_length); |