Fixed compilation of LocaleICU with ENABLE(DATE_AND_TIME_INPUT_TYPES)
authorannulen@yandex.ru <annulen@yandex.ru@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 11 Jun 2016 18:07:05 +0000 (18:07 +0000)
committerannulen@yandex.ru <annulen@yandex.ru@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 11 Jun 2016 18:07:05 +0000 (18:07 +0000)
https://bugs.webkit.org/show_bug.cgi?id=158659

Reviewed by Darin Adler.

No new tests needed.

* platform/text/LocaleICU.cpp:
(WebCore::getFormatForSkeleton):
(WebCore::LocaleICU::monthFormat):
(WebCore::LocaleICU::shortMonthFormat):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@201973 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/text/LocaleICU.cpp

index a740406..37118bf 100644 (file)
@@ -1,3 +1,17 @@
+2016-06-11  Konstantin Tokarev  <annulen@yandex.ru>
+
+        Fixed compilation of LocaleICU with ENABLE(DATE_AND_TIME_INPUT_TYPES)
+        https://bugs.webkit.org/show_bug.cgi?id=158659
+
+        Reviewed by Darin Adler.
+
+        No new tests needed.
+
+        * platform/text/LocaleICU.cpp:
+        (WebCore::getFormatForSkeleton):
+        (WebCore::LocaleICU::monthFormat):
+        (WebCore::LocaleICU::shortMonthFormat):
+
 2016-06-11  Antti Koivisto  <antti@apple.com>
 
         WinCairo build fix attempt.
index 4b8e962..77c85bc 100644 (file)
@@ -256,7 +256,7 @@ String LocaleICU::dateFormat()
     return m_dateFormat;
 }
 
-static String getFormatForSkeleton(const char* locale, const String& skeleton)
+static String getFormatForSkeleton(const char* locale, const UChar* skeleton, int32_t skeletonLength)
 {
     String format = ASCIILiteral("yyyy-MM");
     UErrorCode status = U_ZERO_ERROR;
@@ -264,11 +264,11 @@ static String getFormatForSkeleton(const char* locale, const String& skeleton)
     if (!patternGenerator)
         return format;
     status = U_ZERO_ERROR;
-    int32_t length = udatpg_getBestPattern(patternGenerator, skeleton.characters(), skeleton.length(), 0, 0, &status);
+    int32_t length = udatpg_getBestPattern(patternGenerator, skeleton, skeletonLength, 0, 0, &status);
     if (status == U_BUFFER_OVERFLOW_ERROR && length) {
         Vector<UChar> buffer(length);
         status = U_ZERO_ERROR;
-        udatpg_getBestPattern(patternGenerator, skeleton.characters(), skeleton.length(), buffer.data(), length, &status);
+        udatpg_getBestPattern(patternGenerator, skeleton, skeletonLength, buffer.data(), length, &status);
         if (U_SUCCESS(status))
             format = String::adopt(buffer);
     }
@@ -282,7 +282,8 @@ String LocaleICU::monthFormat()
         return m_monthFormat;
     // Gets a format for "MMMM" because Windows API always provides formats for
     // "MMMM" in some locales.
-    m_monthFormat = getFormatForSkeleton(m_locale.data(), ASCIILiteral("yyyyMMMM"));
+    const UChar skeleton[] = { 'y', 'y', 'y', 'y', 'M', 'M', 'M', 'M' };
+    m_monthFormat = getFormatForSkeleton(m_locale.data(), skeleton, WTF_ARRAY_LENGTH(skeleton));
     return m_monthFormat;
 }
 
@@ -290,7 +291,8 @@ String LocaleICU::shortMonthFormat()
 {
     if (!m_shortMonthFormat.isNull())
         return m_shortMonthFormat;
-    m_shortMonthFormat = getFormatForSkeleton(m_locale.data(), ASCIILiteral("yyyyMMM"));
+    const UChar skeleton[] = { 'y', 'y', 'y', 'y', 'M', 'M', 'M' };
+    m_shortMonthFormat = getFormatForSkeleton(m_locale.data(), skeleton, WTF_ARRAY_LENGTH(skeleton));
     return m_shortMonthFormat;
 }