Remove TimeValue::toPosixTime() -- it is buggy, semantics are unclear, and its
authorDmitri Gribenko <gribozavr@gmail.com>
Tue, 11 Feb 2014 09:11:18 +0000 (09:11 +0000)
committerDmitri Gribenko <gribozavr@gmail.com>
Tue, 11 Feb 2014 09:11:18 +0000 (09:11 +0000)
only current user should be using toEpochTime() instead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201136 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Support/TimeValue.h
lib/Support/Unix/Path.inc
unittests/Support/TimeValueTest.cpp

index 27854088f0561cd3a4c70ef8b9e185566fca77e3..ee0e2866d59efedb1e09d63005b69c509c3cd594 100644 (file)
@@ -74,8 +74,7 @@ namespace sys {
       MILLISECONDS_PER_SECOND = 1000,       ///< One Thousand
       NANOSECONDS_PER_MICROSECOND = 1000,   ///< One Thousand
       NANOSECONDS_PER_MILLISECOND = 1000000,///< One Million
-      NANOSECONDS_PER_POSIX_TICK = 100,     ///< Posix tick is 100 Hz (10ms)
-      NANOSECONDS_PER_WIN32_TICK = 100      ///< Win32 tick is 100 Hz (10ms)
+      NANOSECONDS_PER_WIN32_TICK = 100      ///< Win32 tick is 10^7 Hz (10ns)
     };
 
   /// @}
@@ -236,15 +235,6 @@ namespace sys {
              ( nanos_ / NANOSECONDS_PER_MILLISECOND );
     }
 
-    /// Converts the TimeValue into the corresponding number of "ticks" for
-    /// Posix, correcting for the difference in Posix zero time.
-    /// @brief Convert to unix time (100 nanoseconds since 12:00:00a Jan 1,1970)
-    uint64_t toPosixTime() const {
-      uint64_t result = seconds_ - PosixZeroTimeSeconds;
-      result += nanos_ / NANOSECONDS_PER_POSIX_TICK;
-      return result;
-    }
-
     /// Converts the TimeValue into the corresponding number of seconds
     /// since the epoch (00:00:00 Jan 1,1970).
     uint64_t toEpochTime() const {
index cda976fdeee38408d96e2831b6eb458add10e5c7..84a5751203e00d353fe256537f65e452f534bfa2 100644 (file)
@@ -526,7 +526,7 @@ error_code status(int FD, file_status &Result) {
 error_code setLastModificationAndAccessTime(int FD, TimeValue Time) {
 #if defined(HAVE_FUTIMENS)
   timespec Times[2];
-  Times[0].tv_sec = Time.toPosixTime();
+  Times[0].tv_sec = Time.toEpochTime();
   Times[0].tv_nsec = 0;
   Times[1] = Times[0];
   if (::futimens(FD, Times))
@@ -534,7 +534,7 @@ error_code setLastModificationAndAccessTime(int FD, TimeValue Time) {
   return error_code::success();
 #elif defined(HAVE_FUTIMES)
   timeval Times[2];
-  Times[0].tv_sec = Time.toPosixTime();
+  Times[0].tv_sec = Time.toEpochTime();
   Times[0].tv_usec = 0;
   Times[1] = Times[0];
   if (::futimes(FD, Times))
index fb2abe382932f096100f8b4a5027114c455780a0..e0368d3d409a768db79f3767c9887290622a2eb7 100644 (file)
@@ -30,7 +30,8 @@ TEST(TimeValue, Win32FILETIME) {
   epoch.fromWin32Time(ft1970);
 
   // The "seconds" part in Posix time may be expected as zero.
-  EXPECT_EQ(ns / 100, epoch.toPosixTime());
+  EXPECT_EQ(0u, epoch.toEpochTime());
+  EXPECT_EQ(ns, static_cast<uint32_t>(epoch.nanoseconds()));
 
   // Confirm it reversible.
   EXPECT_EQ(ft1970, epoch.toWin32Time());