Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Safar <marek.safar@gmail.com>2015-04-13 20:16:29 +0300
committerMarek Safar <marek.safar@gmail.com>2015-04-27 17:43:41 +0300
commit5521f110049373de2161c756c793c85d752c4056 (patch)
tree555a5c24745be468850d5ad2fba35f9cc438f6c1 /mcs/class/corlib
parent1513f8f8272b746faab815f126e316aa905cee4f (diff)
[corlib] First specific culture returned by enumerator was not fully initialized. Fixes #29039
Diffstat (limited to 'mcs/class/corlib')
-rw-r--r--mcs/class/corlib/System.Globalization/CultureInfo.cs5
-rw-r--r--mcs/class/corlib/Test/System.Globalization/CultureInfoTest.cs9
2 files changed, 12 insertions, 2 deletions
diff --git a/mcs/class/corlib/System.Globalization/CultureInfo.cs b/mcs/class/corlib/System.Globalization/CultureInfo.cs
index e9f9ac4f7b0..7865e0c92bb 100644
--- a/mcs/class/corlib/System.Globalization/CultureInfo.cs
+++ b/mcs/class/corlib/System.Globalization/CultureInfo.cs
@@ -417,11 +417,12 @@ namespace System.Globalization
// The runtime returns a NULL in the first position of the array when
// 'neutral' is true. We fill it in with a clone of InvariantCulture
// since it must not be read-only
+ int i = 0;
if (neutral && infos.Length > 0 && infos [0] == null) {
- infos [0] = (CultureInfo) InvariantCulture.Clone ();
+ infos [i++] = (CultureInfo) InvariantCulture.Clone ();
}
- for (int i = 1; i < infos.Length; ++i) {
+ for (; i < infos.Length; ++i) {
var ci = infos [i];
infos [i].m_cultureData = CultureData.GetCultureData (ci.m_name, false, ci.datetime_index, ci.CalendarType, ci.iso2lang);
}
diff --git a/mcs/class/corlib/Test/System.Globalization/CultureInfoTest.cs b/mcs/class/corlib/Test/System.Globalization/CultureInfoTest.cs
index 3b743845371..48a8e76b63d 100644
--- a/mcs/class/corlib/Test/System.Globalization/CultureInfoTest.cs
+++ b/mcs/class/corlib/Test/System.Globalization/CultureInfoTest.cs
@@ -226,6 +226,15 @@ namespace MonoTests.System.Globalization
}
[Test]
+ public void GetAllCultures_Specific ()
+ {
+ CultureInfo [] infos = CultureInfo.GetCultures (CultureTypes.SpecificCultures);
+ foreach (CultureInfo ci in infos) {
+ Assert.IsNotNull (ci.DateTimeFormat);
+ }
+ }
+
+ [Test]
#if !NET_4_0
[ExpectedException (typeof (NotSupportedException))]
#endif