forked from premiere/premiere-libtorrent
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
|
// returns a time_duration representing the specified number of seconds, milliseconds
|
||||||
// microseconds, minutes and hours.
|
// microseconds, minutes and hours.
|
||||||
TORRENT_EXPORT time_duration seconds(int s);
|
TORRENT_EXPORT time_duration seconds(boost::int64_t s);
|
||||||
TORRENT_EXPORT time_duration milliseconds(int s);
|
TORRENT_EXPORT time_duration milliseconds(boost::int64_t s);
|
||||||
TORRENT_EXPORT time_duration microsec(int s);
|
TORRENT_EXPORT time_duration microsec(boost::int64_t s);
|
||||||
TORRENT_EXPORT time_duration minutes(int s);
|
TORRENT_EXPORT time_duration minutes(boost::int64_t s);
|
||||||
TORRENT_EXPORT time_duration hours(int s);
|
TORRENT_EXPORT time_duration hours(boost::int64_t s);
|
||||||
|
|
||||||
// returns the number of seconds, milliseconds and microseconds
|
// returns the number of seconds, milliseconds and microseconds
|
||||||
// a time_duration represents.
|
// a time_duration represents.
|
||||||
TORRENT_EXPORT int total_seconds(time_duration td);
|
TORRENT_EXPORT boost::int64_t total_seconds(time_duration td);
|
||||||
TORRENT_EXPORT int total_milliseconds(time_duration td);
|
TORRENT_EXPORT boost::int64_t total_milliseconds(time_duration td);
|
||||||
TORRENT_EXPORT boost::int64_t total_microseconds(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
|
#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); }
|
{ return boost::posix_time::ptime(boost::posix_time::min_date_time); }
|
||||||
ptime max_time()
|
ptime max_time()
|
||||||
{ return boost::posix_time::ptime(boost::posix_time::max_date_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 seconds(boost::int64_t s) { return boost::posix_time::seconds(s); }
|
||||||
time_duration milliseconds(int s) { return boost::posix_time::milliseconds(s); }
|
time_duration milliseconds(boost::int64_t s) { return boost::posix_time::milliseconds(s); }
|
||||||
time_duration microsec(int s) { return boost::posix_time::microsec(s); }
|
time_duration microsec(boost::int64_t s) { return boost::posix_time::microsec(s); }
|
||||||
time_duration minutes(int s) { return boost::posix_time::minutes(s); }
|
time_duration minutes(boost::int64_t s) { return boost::posix_time::minutes(s); }
|
||||||
time_duration hours(int s) { return boost::posix_time::hours(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(); }
|
{ return td.total_seconds(); }
|
||||||
int total_milliseconds(time_duration td)
|
boost::int64_t total_milliseconds(time_duration td)
|
||||||
{ return td.total_milliseconds(); }
|
{ return td.total_milliseconds(); }
|
||||||
boost::int64_t total_microseconds(time_duration td)
|
boost::int64_t total_microseconds(time_duration td)
|
||||||
{ return td.total_microseconds(); }
|
{ return td.total_microseconds(); }
|
||||||
|
@ -188,12 +188,12 @@ namespace libtorrent
|
||||||
return ptime(now.QuadPart);
|
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)
|
return boost::int64_t(performance_counter_to_microseconds(td.diff)
|
||||||
/ 1000000);
|
/ 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)
|
return boost::uint64_t(performance_counter_to_microseconds(td.diff)
|
||||||
/ 1000);
|
/ 1000);
|
||||||
|
@ -203,26 +203,26 @@ namespace libtorrent
|
||||||
return performance_counter_to_microseconds(td.diff);
|
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));
|
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(
|
return time_duration(microseconds_to_performance_counter(
|
||||||
s * 1000));
|
s * 1000));
|
||||||
}
|
}
|
||||||
time_duration seconds(int s)
|
time_duration seconds(boost::int64_t s)
|
||||||
{
|
{
|
||||||
return time_duration(microseconds_to_performance_counter(
|
return time_duration(microseconds_to_performance_counter(
|
||||||
s * 1000000));
|
s * 1000000));
|
||||||
}
|
}
|
||||||
time_duration minutes(int s)
|
time_duration minutes(boost::int64_t s)
|
||||||
{
|
{
|
||||||
return time_duration(microseconds_to_performance_counter(
|
return time_duration(microseconds_to_performance_counter(
|
||||||
s * 1000000 * 60));
|
s * 1000000 * 60));
|
||||||
}
|
}
|
||||||
time_duration hours(int s)
|
time_duration hours(boost::int64_t s)
|
||||||
{
|
{
|
||||||
return time_duration(microseconds_to_performance_counter(
|
return time_duration(microseconds_to_performance_counter(
|
||||||
s * 1000000 * 60 * 60));
|
s * 1000000 * 60 * 60));
|
||||||
|
|
Loading…
Reference in New Issue