fix integer overflow issue in timers

This commit is contained in:
Arvid Norberg 2013-11-01 09:13:14 +00:00
parent b9293058bd
commit 375ce91248
2 changed files with 21 additions and 21 deletions

View File

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

View File

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