Skip to content

Commit

Permalink
Remove TimeValue::toPosixTime() -- it is buggy, semantics are unclear…
Browse files Browse the repository at this point in the history
…, and its

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
  • Loading branch information
gribozavr committed Feb 11, 2014
1 parent e4092e9 commit d4ab7d1
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 14 deletions.
12 changes: 1 addition & 11 deletions include/llvm/Support/TimeValue.h
Original file line number Diff line number Diff line change
Expand Up @@ -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)
};

/// @}
Expand Down Expand Up @@ -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 {
Expand Down
4 changes: 2 additions & 2 deletions lib/Support/Unix/Path.inc
Original file line number Diff line number Diff line change
Expand Up @@ -526,15 +526,15 @@ 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))
return error_code(errno, system_category());
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))
Expand Down
3 changes: 2 additions & 1 deletion unittests/Support/TimeValueTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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());
Expand Down

0 comments on commit d4ab7d1

Please sign in to comment.