+2005-11-11 Lluis Sanchez Gual <lluis@novell.com>
+
+ * TimeZone.cs: Removed incorrect double-check lock and unneeded
+ hashtable access.
+
2005-11-11 Marek Safar <marek.safar@seznam.cz>
* Type.cs: IsNested implemented, signature fixes.
throw new ArgumentOutOfRangeException ("year", year +
Locale.GetText (" is not in a range between 1 and 9999."));
- if (daylightCache [year] == null) {
- lock (daylightCache) {
- if (daylightCache [year] == null) {
- Int64[] data;
- string[] names;
-
- if (!GetTimeZoneData (year, out data, out names))
- throw new ArgumentException (Locale.GetText ("Can't get timezone data for " + year));
-
- DaylightTime dlt = new DaylightTime (new DateTime (data[(int)TimeZoneData.DaylightSavingStartIdx]),
- new DateTime (data[(int)TimeZoneData.DaylightSavingEndIdx]),
- new TimeSpan (data[(int)TimeZoneData.AdditionalDaylightOffsetIdx]));
- daylightCache.Add (year, dlt);
- };
- };
+ lock (daylightCache) {
+ DaylightTime dlt = (DaylightTime) daylightCache [year];
+ if (dlt == null) {
+ Int64[] data;
+ string[] names;
+
+ if (!GetTimeZoneData (year, out data, out names))
+ throw new ArgumentException (Locale.GetText ("Can't get timezone data for " + year));
+
+ dlt = new DaylightTime (new DateTime (data[(int)TimeZoneData.DaylightSavingStartIdx]),
+ new DateTime (data[(int)TimeZoneData.DaylightSavingEndIdx]),
+ new TimeSpan (data[(int)TimeZoneData.AdditionalDaylightOffsetIdx]));
+ daylightCache.Add (year, dlt);
+ }
+ return dlt;
}
-
- return (DaylightTime) daylightCache [year];
}
public override TimeSpan GetUtcOffset (DateTime time)