| Index: app/multi_animation.cc
|
| diff --git a/app/multi_animation.cc b/app/multi_animation.cc
|
| index 703ed85d8076c9b5fb1ba9631ef60c130e11c771..14cd7f905585d71ed7ee8739744b396543a5328b 100644
|
| --- a/app/multi_animation.cc
|
| +++ b/app/multi_animation.cc
|
| @@ -9,8 +9,10 @@ static const int kDefaultInterval = 20;
|
|
|
| static int TotalTime(const MultiAnimation::Parts& parts) {
|
| int time_ms = 0;
|
| - for (size_t i = 0; i < parts.size(); ++i)
|
| + for (size_t i = 0; i < parts.size(); ++i) {
|
| + DCHECK(parts[i].end_time_ms - parts[i].start_time_ms >= parts[i].time_ms);
|
| time_ms += parts[i].time_ms;
|
| + }
|
| return time_ms;
|
| }
|
|
|
| @@ -30,8 +32,9 @@ void MultiAnimation::Step(base::TimeTicks time_now) {
|
| int delta = static_cast<int>((time_now - start_time()).InMilliseconds() %
|
| cycle_time_ms_);
|
| const Part& part = GetPart(&delta, ¤t_part_index_);
|
| - double percent = static_cast<double>(delta) /
|
| - static_cast<double>(part.time_ms);
|
| + double percent = static_cast<double>(delta + part.start_time_ms) /
|
| + static_cast<double>(part.end_time_ms);
|
| + DCHECK(percent <= 1);
|
| current_value_ = Tween::CalculateValue(part.type, percent);
|
|
|
| if ((current_value_ != last_value || current_part_index_ != last_index) &&
|
|
|