Commit e831936f authored by Peter Kasting's avatar Peter Kasting Committed by Commit Bot

Avoid multiply-by-infinity (which is UB) in another case.

Bug: 1116289
Change-Id: If301c1bbac0ab64e06b9e23337a530033217e7b9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2376506
Auto-Submit: Peter Kasting <pkasting@chromium.org>
Commit-Queue: Robert Flack <flackr@chromium.org>
Reviewed-by: default avatarRobert Flack <flackr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#801789}
parent f8cf034f
......@@ -286,14 +286,16 @@ base::TimeDelta KeyframeModel::TrimTimeToCurrentIteration(
if (curve_->Duration() <= base::TimeDelta())
return base::TimeDelta();
base::TimeDelta repeated_duration = curve_->Duration() * iterations_;
base::TimeDelta active_duration =
repeated_duration / std::abs(playback_rate_);
base::TimeDelta repeated_duration = std::isfinite(iterations_)
? (curve_->Duration() * iterations_)
: base::TimeDelta::Max();
// Calculate the scaled active time
base::TimeDelta scaled_active_time;
if (playback_rate_ < 0) {
DCHECK(std::isfinite(iterations_));
base::TimeDelta active_duration =
repeated_duration / std::abs(playback_rate_);
scaled_active_time =
((active_time - active_duration) * playback_rate_) + start_offset;
} else {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment