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

Use std::remove_if in RemoveInstanceTimesWithOrigin

This should have better worst case runtime than the current "repeated
EraseAt()" version.

Bug: 1039243
Change-Id: Ibcd68166e6fd9233edddaf9153bb78c4c9196f81
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2089829Reviewed-by: default avatarPhilip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#748164}
parent 3c4edc2c
...@@ -244,10 +244,12 @@ void SVGSMILElement::BuildPendingResource() { ...@@ -244,10 +244,12 @@ void SVGSMILElement::BuildPendingResource() {
static inline void RemoveInstanceTimesWithOrigin( static inline void RemoveInstanceTimesWithOrigin(
Vector<SMILTimeWithOrigin>& time_list, Vector<SMILTimeWithOrigin>& time_list,
SMILTimeOrigin origin) { SMILTimeOrigin origin) {
for (int i = time_list.size() - 1; i >= 0; --i) { auto* tail =
if (time_list[i].Origin() == origin) std::remove_if(time_list.begin(), time_list.end(),
time_list.EraseAt(i); [origin](const SMILTimeWithOrigin& instance_time) {
} return instance_time.Origin() == origin;
});
time_list.Shrink(tail - time_list.begin());
} }
void SVGSMILElement::Reset() { void SVGSMILElement::Reset() {
......
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