Reviewed by Maciej.
authorkmccullo <kmccullo@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 24 Oct 2006 03:44:48 +0000 (03:44 +0000)
committerkmccullo <kmccullo@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 24 Oct 2006 03:44:48 +0000 (03:44 +0000)
        - Makes the toTM function an operator.  Was going to piggy back on a patch but the patch needs more work.

        * kjs/DateMath.cpp:
        (KJS::equivalentYearForDST):
        * kjs/DateMath.h:
        (KJS::GregorianDateTime::operator tm):
        * kjs/date_object.cpp:
        (KJS::formatTime):
        (KJS::DateProtoFunc::callAsFunction):

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

JavaScriptCore/ChangeLog
JavaScriptCore/kjs/DateMath.cpp
JavaScriptCore/kjs/DateMath.h
JavaScriptCore/kjs/date_object.cpp

index 679628a3fb25a3b25a1d1050c9e01551908531b3..2bc575d6360f1bc4f7c34b564412f39062b1b5f5 100644 (file)
@@ -2,7 +2,21 @@
 
         Reviewed by Maciej.
 
-       - Fixes two regressions on win.  Both are stack overflows. For one the number of regressions is capped at 100, and for the other, nested parenthesis pairs are not evaluated (since they would evaluate to whatever is in them anyway).
+        - Makes the toTM function an operator.  Was going to piggy back on a patch but the patch needs more work.
+
+        * kjs/DateMath.cpp:
+        (KJS::equivalentYearForDST):
+        * kjs/DateMath.h:
+        (KJS::GregorianDateTime::operator tm):
+        * kjs/date_object.cpp:
+        (KJS::formatTime):
+        (KJS::DateProtoFunc::callAsFunction):
+
+2006-10-23  Kevin McCullough  <KMcCullough@apple.com>
+
+        Reviewed by Maciej.
+
+       - Fixes two regressions on win.  Both are stack overflows. For one the number of recursions is capped at 100, and for the other, nested parenthesis pairs are not evaluated (since they would evaluate to whatever is in them anyway).
 
         * kjs/grammar.y:
         * kjs/object.cpp:
index 7a92a1ef0d7982ee6189f60eb0f63f067c0a3a67..e161b90b7a4306d2abf2b415ba35976cde5616ab 100644 (file)
@@ -296,7 +296,7 @@ static int dateToDayInYear(int year, int month, int day)
  * for determining DST; it hasn't been proven not to produce an
  * incorrect year for times near year boundaries.
  */
-static inline int equivalentYearForDST(int year)
+inline int equivalentYearForDST(int year)
 {
     int day;
 
index 9f343449a89d4858dc70614aaef72e9771a480ad..e3ed05e9db74a819609a475db929ffce48cc4f99 100644 (file)
@@ -67,6 +67,7 @@ struct GregorianDateTime;
 void msToGregorianDateTime(double, bool outputIsUTC, struct GregorianDateTime&);
 double gregorianDateTimeToMS(const GregorianDateTime&, double, bool inputIsUTC);
 double getUTCOffset();
+int equivalentYearForDST(int year);
 
 // Intentionally overridding the default tm of the system
 // Not all OS' have the same members of their tm's
@@ -115,7 +116,7 @@ struct GregorianDateTime {
 #endif
     }
 
-    tm toTM() const
+    operator tm() const
     {
         tm ret;
         memset(&ret, 0, sizeof(ret));
index 0f77a9cff2640a0049769f095e617840ddf6a7d7..f4eae37915b9322390d8b7128ae252cdbc6da885 100644 (file)
@@ -182,7 +182,7 @@ static UString formatTime(const GregorianDateTime &t, bool utc)
     } else {
         int offset = abs(gmtoffset(t));
         char tzname[70];
-        struct ::tm gtm = t.toTM();
+        struct tm gtm = t;
         strftime(tzname, sizeof(tzname), "%Z", &gtm);
 
         if (tzname) {
@@ -480,19 +480,19 @@ JSValue *DateProtoFunc::callAsFunction(ExecState *exec, JSObject *thisObj, const
     break;
 #else
   case ToLocaleString: {
-    struct tm gtm = t.toTM();
+    struct tm gtm = t;
     strftime(timebuffer, bufsize, "%c", &gtm);
     return jsString(timebuffer);
     break;
     }
   case ToLocaleDateString: {
-    struct tm gtm = t.toTM();
+    struct tm gtm = t;
     strftime(timebuffer, bufsize, "%x", &gtm);
     return jsString(timebuffer);
     break;
     }
   case ToLocaleTimeString: {
-    struct tm gtm = t.toTM();
+    struct tm gtm = t;
     strftime(timebuffer, bufsize, "%X", &gtm);
     return jsString(timebuffer);
     break;