Bug 1147491, part 2 - Disable use of BaseTimeDuration::operator/ with floating point values. r=ehsan

This commit is contained in:
Jonathan Watt 2015-04-02 14:03:40 +01:00
parent 86a0287c88
commit 259f184de1
2 changed files with 6 additions and 1 deletions

View File

@ -294,7 +294,7 @@ GeckoTouchDispatcher::ResampleTouchMoves(MultiTouchInput& aOutTouch, TimeStamp a
TimeDuration touchDiff = currentTouch.mTimeStamp - baseTouch.mTimeStamp;
if (currentTouch.mTimeStamp < sampleTime) {
TimeDuration maxResampleTime = std::min(touchDiff / 2, mMaxPredict);
TimeDuration maxResampleTime = std::min(touchDiff / int64_t(2), mMaxPredict);
TimeStamp maxTimestamp = currentTouch.mTimeStamp + maxResampleTime;
if (sampleTime > maxTimestamp) {
sampleTime = maxTimestamp;

View File

@ -181,6 +181,11 @@ private:
// If required, use MultDouble explicitly and with care.
BaseTimeDuration operator*(const double aMultiplier) const = delete;
// Block double divisor (for the same reason, and because dividing by
// fractional values would otherwise invoke the int64_t variant, and rounding
// the passed argument can then cause divide-by-zero) - Bug 1147491.
BaseTimeDuration operator/(const double aDivisor) const = delete;
public:
BaseTimeDuration MultDouble(double aMultiplier) const
{