| 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; | 
|  |