Commit 95179be9 authored by Fredrik Söderquist's avatar Fredrik Söderquist Committed by Commit Bot

Simplify end-resolution in SVGSMILElement::ResolveInterval

 * FindInstanceTime(kEnd, ...) will return "indefinite" for an empty,
   so always call that.
 * Sink the call to ResolveActiveEnd(...) since it can be shared between
   the two cases.
 * Drop the redundant "!end_times_.IsEmpty()" check.

Bug: 998526
Change-Id: Idf6431e4313ee9ebec917759dba10c457443aa97
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1813502Reviewed-by: default avatarPhilip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#698401}
parent 888beef6
...@@ -811,22 +811,17 @@ SMILInterval SVGSMILElement::ResolveInterval( ...@@ -811,22 +811,17 @@ SMILInterval SVGSMILElement::ResolveInterval(
FindInstanceTime(kBegin, begin_after, equals_minimum_ok); FindInstanceTime(kBegin, begin_after, equals_minimum_ok);
if (temp_begin.IsUnresolved()) if (temp_begin.IsUnresolved())
break; break;
SMILTime temp_end; SMILTime temp_end = FindInstanceTime(kEnd, temp_begin, true);
if (end_times_.IsEmpty()) if (!end_times_.IsEmpty()) {
temp_end = ResolveActiveEnd(temp_begin, SMILTime::Indefinite());
else {
temp_end = FindInstanceTime(kEnd, temp_begin, true);
if ((first && temp_begin == temp_end && if ((first && temp_begin == temp_end &&
temp_end == last_interval_temp_end) || temp_end == last_interval_temp_end) ||
(!first && temp_end == interval_.end)) (!first && temp_end == interval_.end))
temp_end = FindInstanceTime(kEnd, temp_begin, false); temp_end = FindInstanceTime(kEnd, temp_begin, false);
if (temp_end.IsUnresolved()) { if (temp_end.IsUnresolved() && !has_end_event_conditions_)
if (!end_times_.IsEmpty() && !has_end_event_conditions_)
break; break;
} }
temp_end = ResolveActiveEnd(temp_begin, temp_end); temp_end = ResolveActiveEnd(temp_begin, temp_end);
} if (!first || temp_end > SMILTime() || (!temp_begin && !temp_end))
if (!first || (temp_end > SMILTime() || (!temp_begin && !temp_end)))
return SMILInterval(temp_begin, temp_end); return SMILInterval(temp_begin, temp_end);
begin_after = temp_end; begin_after = temp_end;
......
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