| Index: base/time_win.cc
|
| diff --git a/base/time_win.cc b/base/time_win.cc
|
| index 191b7a779881026f54573e4a00c8658ade9ccc12..6d8e4328b3000b3bc3b04a3dbe6b16fe3606fc16 100644
|
| --- a/base/time_win.cc
|
| +++ b/base/time_win.cc
|
| @@ -141,10 +141,23 @@ Time Time::NowFromSystemTime() {
|
|
|
| // static
|
| Time Time::FromFileTime(FILETIME ft) {
|
| + if (bit_cast<int64, FILETIME>(ft) == 0)
|
| + return Time();
|
| + if (ft.dwHighDateTime == std::numeric_limits<DWORD>::max() &&
|
| + ft.dwLowDateTime == std::numeric_limits<DWORD>::max())
|
| + return Max();
|
| return Time(FileTimeToMicroseconds(ft));
|
| }
|
|
|
| FILETIME Time::ToFileTime() const {
|
| + if (is_null())
|
| + return bit_cast<FILETIME, int64>(0);
|
| + if (is_max()) {
|
| + FILETIME result;
|
| + result.dwHighDateTime = std::numeric_limits<DWORD>::max();
|
| + result.dwLowDateTime = std::numeric_limits<DWORD>::max();
|
| + return result;
|
| + }
|
| FILETIME utc_ft;
|
| MicrosecondsToFileTime(us_, &utc_ft);
|
| return utc_ft;
|
|
|