13
0

fix definition of Temporal::Beats::max()

Ticks can exceed PPQN, but if beats are already INT32_MAX, ::normalize() will not work correctly
This commit is contained in:
Paul Davis 2018-02-12 07:04:47 -05:00 committed by Ben Loftis
parent 8e4e7fde05
commit 9a20433d98

View File

@ -308,8 +308,7 @@ namespace std {
template<>
struct numeric_limits<Temporal::Beats> {
static Temporal::Beats lowest() {
return Temporal::Beats(std::numeric_limits<int32_t>::min(),
std::numeric_limits<int32_t>::min());
return Temporal::Beats(std::numeric_limits<int32_t>::min(), std::numeric_limits<int32_t>::min());
}
/* We don't define min() since this has different behaviour for integral and floating point types,
@ -317,8 +316,7 @@ namespace std {
than a confusing one. */
static Temporal::Beats max() {
return Temporal::Beats(std::numeric_limits<int32_t>::max(),
std::numeric_limits<int32_t>::max());
return Temporal::Beats(std::numeric_limits<int32_t>::max(), Temporal::Beats::PPQN-1);
}
};
}