2005-11-11 Lluis Sanchez Gual <lluis@novell.com>
authorLluis Sanchez <lluis@novell.com>
Fri, 11 Nov 2005 13:45:35 +0000 (13:45 -0000)
committerLluis Sanchez <lluis@novell.com>
Fri, 11 Nov 2005 13:45:35 +0000 (13:45 -0000)
* TimeZone.cs: Removed incorrect double-check lock and unneeded
hashtable access.

svn path=/trunk/mcs/; revision=52907

mcs/class/corlib/System/ChangeLog
mcs/class/corlib/System/TimeZone.cs

index e6b10fa2c36f2fb5904abda30951573bccff8e4e..7fc0574d513e9828b86e64c05743848567be98a4 100644 (file)
@@ -1,3 +1,8 @@
+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.
index ff85afd6e8aa5ab6a899de3408d2a5acba349eba..16907de1b5f7508b81cbd4e2d632ceda4719d332 100644 (file)
@@ -228,24 +228,22 @@ namespace System
                                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)