Skip to content

Commit

Permalink
typecast time_t and suseconds_t from std::chrono
Browse files Browse the repository at this point in the history
This fixes build on some architectures like mips
progress.cc:125:31: error: non-constant-expression cannot be narrowed from type 'std::chrono::duration<long long>::rep' (aka 'long long') to '__time_t' (aka 'long') in initializer list [-Wc++11-narrowing]
   struct timeval NowTime = { Now_sec.count(), Now_usec.count() };

Signed-off-by: Khem Raj <raj.khem@gmail.com>
  • Loading branch information
kraj committed Sep 17, 2022
1 parent 6499f7d commit 66b305f
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 4 deletions.
4 changes: 2 additions & 2 deletions apt-pkg/acquire.cc
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,11 @@
using namespace std;

// helper to convert time_point to a timeval
static struct timeval SteadyDurationToTimeVal(std::chrono::steady_clock::duration Time)
constexpr struct timeval SteadyDurationToTimeVal(std::chrono::steady_clock::duration Time)
{
auto const Time_sec = std::chrono::duration_cast<std::chrono::seconds>(Time);
auto const Time_usec = std::chrono::duration_cast<std::chrono::microseconds>(Time - Time_sec);
return {Time_sec.count(), Time_usec.count()};
return timeval{static_cast<time_t>(Time_sec.count()), static_cast<suseconds_t>(Time_usec.count())};
}

std::string pkgAcquire::URIEncode(std::string const &part) /*{{{*/
Expand Down
2 changes: 1 addition & 1 deletion apt-pkg/contrib/progress.cc
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ bool OpProgress::CheckChange(float Interval)
auto const Now = std::chrono::steady_clock::now().time_since_epoch();
auto const Now_sec = std::chrono::duration_cast<std::chrono::seconds>(Now);
auto const Now_usec = std::chrono::duration_cast<std::chrono::microseconds>(Now - Now_sec);
struct timeval NowTime = { Now_sec.count(), Now_usec.count() };
struct timeval NowTime = { static_cast<time_t>(Now_sec.count()), static_cast<suseconds_t>(Now_usec.count()) };

std::chrono::duration<decltype(Interval)> Delta =
std::chrono::seconds(NowTime.tv_sec - LastTime.tv_sec) +
Expand Down
2 changes: 1 addition & 1 deletion ftparchive/apt-ftparchive.cc
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ static struct timeval GetTimevalFromSteadyClock() /*{{{*/
auto const Time = std::chrono::steady_clock::now().time_since_epoch();
auto const Time_sec = std::chrono::duration_cast<std::chrono::seconds>(Time);
auto const Time_usec = std::chrono::duration_cast<std::chrono::microseconds>(Time - Time_sec);
return { Time_sec.count(), Time_usec.count() };
return { static_cast<time_t>(Time_sec.count()), static_cast<suseconds_t>(Time_usec.count()) };
}
/*}}}*/
static auto GetTimeDeltaSince(struct timeval StartTime) /*{{{*/
Expand Down

0 comments on commit 66b305f

Please sign in to comment.