On Jan 6, 2006, at 3:51 PM, George Staikos wrote:
On Friday 06 January 2006 17:43, David wrote:
- tm t;
- utc ? gmtime_r(&tv, &t) : localtime_r(&tv, &t);
+ tm t = *(utc ? gmtime(&tv) : localtime(&tv));
// We had an out of range year. Restore the year (plus/minus
offset
// found by calculating tm_year) and fix the week day
calculation.
if (realYearOffset != 0) {
@@ -769,8 +779,7 @@
JSValue *DateObjectImp::callAsFunction(ExecState * /*exec*/,
JSObject *
/*thisObj*/, const List &/*args*/) {
time_t t = time(0);
- tm ts;
- localtime_r(&t, &ts);
+ tm ts = *localtime(&t);
return jsString(formatDate(ts) + " " + formatTime(ts));
}
@@ -899,8 +908,7 @@
// produce incorrect results, but there's no other option when
calling localtime_r(). if (!utc) {
time_t tval = mktime(t) + (time_t)((ms + yearOffset) /
1000);
- struct tm t3;
- localtime_r(&tval, &t3);
+ tm t3 = *localtime(&tval);
t->tm_isdst = t3.tm_isdst;
}
These look quite questionable to me. Is threadsafety not a goal
anymore?
These calls are thread-safe on both Mac OS X and Windows -- both
those platforms use per-thread globals for these calls.
On Mac OS X, we also have the _r variants, but they are no more or
less thread-safe (although it's more elegant to not use the globals).
If there's an important platform that has the _r variants but a non-
thread-safe localtime and gmtime we can add conditionally compiled
code since Windows does not have the _r variants.
-- Darin
_______________________________________________
webkit-dev mailing list
[email protected]
http://www.opendarwin.org/mailman/listinfo/webkit-dev