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() {
static inline void RemoveInstanceTimesWithOrigin(
Vector<SMILTimeWithOrigin>& time_list,
SMILTimeOrigin origin) {
for (int i = time_list.size() - 1; i >= 0; --i) {
if (time_list[i].Origin() == origin)
time_list.EraseAt(i);
}
auto* tail =
std::remove_if(time_list.begin(), time_list.end(),
[origin](const SMILTimeWithOrigin& instance_time) {
return instance_time.Origin() == origin;
});
time_list.Shrink(tail - time_list.begin());
}
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