fix integer overflow issue in timers
This commit is contained in:
parent
b9293058bd
commit
375ce91248
|
@ -81,16 +81,16 @@ namespace libtorrent
|
|||
|
||||
// returns a time_duration representing the specified number of seconds, milliseconds
|
||||
// microseconds, minutes and hours.
|
||||
TORRENT_EXPORT time_duration seconds(int s);
|
||||
TORRENT_EXPORT time_duration milliseconds(int s);
|
||||
TORRENT_EXPORT time_duration microsec(int s);
|
||||
TORRENT_EXPORT time_duration minutes(int s);
|
||||
TORRENT_EXPORT time_duration hours(int s);
|
||||
TORRENT_EXPORT time_duration seconds(boost::int64_t s);
|
||||
TORRENT_EXPORT time_duration milliseconds(boost::int64_t s);
|
||||
TORRENT_EXPORT time_duration microsec(boost::int64_t s);
|
||||
TORRENT_EXPORT time_duration minutes(boost::int64_t s);
|
||||
TORRENT_EXPORT time_duration hours(boost::int64_t s);
|
||||
|
||||
// returns the number of seconds, milliseconds and microseconds
|
||||
// a time_duration represents.
|
||||
TORRENT_EXPORT int total_seconds(time_duration td);
|
||||
TORRENT_EXPORT int total_milliseconds(time_duration td);
|
||||
TORRENT_EXPORT boost::int64_t total_seconds(time_duration td);
|
||||
TORRENT_EXPORT boost::int64_t total_milliseconds(time_duration td);
|
||||
TORRENT_EXPORT boost::int64_t total_microseconds(time_duration td);
|
||||
|
||||
#elif TORRENT_USE_CLOCK_GETTIME || TORRENT_USE_SYSTEM_TIME || TORRENT_USE_ABSOLUTE_TIME
|
||||
|
|
28
src/time.cpp
28
src/time.cpp
|
@ -99,15 +99,15 @@ namespace libtorrent
|
|||
{ return boost::posix_time::ptime(boost::posix_time::min_date_time); }
|
||||
ptime max_time()
|
||||
{ return boost::posix_time::ptime(boost::posix_time::max_date_time); }
|
||||
time_duration seconds(int s) { return boost::posix_time::seconds(s); }
|
||||
time_duration milliseconds(int s) { return boost::posix_time::milliseconds(s); }
|
||||
time_duration microsec(int s) { return boost::posix_time::microsec(s); }
|
||||
time_duration minutes(int s) { return boost::posix_time::minutes(s); }
|
||||
time_duration hours(int s) { return boost::posix_time::hours(s); }
|
||||
time_duration seconds(boost::int64_t s) { return boost::posix_time::seconds(s); }
|
||||
time_duration milliseconds(boost::int64_t s) { return boost::posix_time::milliseconds(s); }
|
||||
time_duration microsec(boost::int64_t s) { return boost::posix_time::microsec(s); }
|
||||
time_duration minutes(boost::int64_t s) { return boost::posix_time::minutes(s); }
|
||||
time_duration hours(boost::int64_t s) { return boost::posix_time::hours(s); }
|
||||
|
||||
int total_seconds(time_duration td)
|
||||
boost::int64_t total_seconds(time_duration td)
|
||||
{ return td.total_seconds(); }
|
||||
int total_milliseconds(time_duration td)
|
||||
boost::int64_t total_milliseconds(time_duration td)
|
||||
{ return td.total_milliseconds(); }
|
||||
boost::int64_t total_microseconds(time_duration td)
|
||||
{ return td.total_microseconds(); }
|
||||
|
@ -188,12 +188,12 @@ namespace libtorrent
|
|||
return ptime(now.QuadPart);
|
||||
}
|
||||
|
||||
int total_seconds(time_duration td)
|
||||
boost::int64_t total_seconds(time_duration td)
|
||||
{
|
||||
return boost::int64_t(performance_counter_to_microseconds(td.diff)
|
||||
/ 1000000);
|
||||
}
|
||||
int total_milliseconds(time_duration td)
|
||||
boost::int64_t total_milliseconds(time_duration td)
|
||||
{
|
||||
return boost::uint64_t(performance_counter_to_microseconds(td.diff)
|
||||
/ 1000);
|
||||
|
@ -203,26 +203,26 @@ namespace libtorrent
|
|||
return performance_counter_to_microseconds(td.diff);
|
||||
}
|
||||
|
||||
time_duration microsec(int s)
|
||||
time_duration microsec(boost::int64_t s)
|
||||
{
|
||||
return time_duration(microseconds_to_performance_counter(s));
|
||||
}
|
||||
time_duration milliseconds(int s)
|
||||
time_duration milliseconds(boost::int64_t s)
|
||||
{
|
||||
return time_duration(microseconds_to_performance_counter(
|
||||
s * 1000));
|
||||
}
|
||||
time_duration seconds(int s)
|
||||
time_duration seconds(boost::int64_t s)
|
||||
{
|
||||
return time_duration(microseconds_to_performance_counter(
|
||||
s * 1000000));
|
||||
}
|
||||
time_duration minutes(int s)
|
||||
time_duration minutes(boost::int64_t s)
|
||||
{
|
||||
return time_duration(microseconds_to_performance_counter(
|
||||
s * 1000000 * 60));
|
||||
}
|
||||
time_duration hours(int s)
|
||||
time_duration hours(boost::int64_t s)
|
||||
{
|
||||
return time_duration(microseconds_to_performance_counter(
|
||||
s * 1000000 * 60 * 60));
|
||||
|
|
Loading…
Reference in New Issue