]> granicus.if.org Git - icu/commitdiff
ICU-20831 Make *fCapitalizationBrkIter const, eliminating a data race in SimpleDateFo...
authorRobin Leroy <egg.robin.leroy@gmail.com>
Tue, 24 Sep 2019 15:38:26 +0000 (17:38 +0200)
committerpedberg-icu <42151464+pedberg-icu@users.noreply.github.com>
Wed, 25 Sep 2019 23:30:15 +0000 (16:30 -0700)
icu4c/source/i18n/smpdtfmt.cpp
icu4c/source/i18n/unicode/smpdtfmt.h

index b8edff42098e5137341a1d4c98502e332ea8cc6b..5fcbb5875b2bfb07569761ee69924a5189b7306d 100644 (file)
@@ -1981,9 +1981,11 @@ SimpleDateFormat::subFormat(UnicodeString &appendTo,
                 break;
         }
         if (titlecase) {
+            BreakIterator* const mutableCapitalizationBrkIter = fCapitalizationBrkIter->clone();
             UnicodeString firstField(appendTo, beginOffset);
-            firstField.toTitle(fCapitalizationBrkIter, fLocale, U_TITLECASE_NO_LOWERCASE | U_TITLECASE_NO_BREAK_ADJUSTMENT);
+            firstField.toTitle(mutableCapitalizationBrkIter, fLocale, U_TITLECASE_NO_LOWERCASE | U_TITLECASE_NO_BREAK_ADJUSTMENT);
             appendTo.replaceBetween(beginOffset, appendTo.length(), firstField);
+            delete mutableCapitalizationBrkIter;
         }
     }
 #endif
index 8a7a17683ce18a89805d494d41996e74bfc4eeba..79fa817d5afb893d19736d6d7ade26358715d2ab 100644 (file)
@@ -1645,7 +1645,7 @@ private:
 
     UBool fHaveDefaultCentury;
 
-    BreakIterator* fCapitalizationBrkIter;
+    const BreakIterator* fCapitalizationBrkIter;
 };
 
 inline UDate