From 0c52b65211fc296a3139bcfb094ff2e22371baac Mon Sep 17 00:00:00 2001 From: George Burgess IV Date: Mon, 24 Feb 2020 11:37:35 -0800 Subject: [PATCH] use vector::erase with std::remove_if std::remove_if will only move elements around within the range it was handed. In order to have the elements actually removed from the vector, we need to erase() them. Caught by clang-tidy: /buildbot/src/googleplex-android/rvc-release/frameworks/av/media/codec2/vndk/util/C2InterfaceUtils.cpp:219:9: warning: the value returned by this function should be used [bugprone-unused-return-value] (and 3 others) Bug: 154665437 Test: TreeHugger Change-Id: I9244baf7d6f46cce4c2d8f66fcf57b19c19d32ab Merged-In: I9244baf7d6f46cce4c2d8f66fcf57b19c19d32ab --- media/codec2/vndk/util/C2InterfaceUtils.cpp | 32 +++++++++++++++------ 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/media/codec2/vndk/util/C2InterfaceUtils.cpp b/media/codec2/vndk/util/C2InterfaceUtils.cpp index 61ec9115be..0c1729b69a 100644 --- a/media/codec2/vndk/util/C2InterfaceUtils.cpp +++ b/media/codec2/vndk/util/C2InterfaceUtils.cpp @@ -216,9 +216,14 @@ C2SupportedFlags C2SupportedFlags::limitedTo(const C2SupportedFlags &li if (limit.contains(minMask) && contains(minMask)) { values[0] = minMask; // keep only flags that are covered by limit - std::remove_if(values.begin(), values.end(), [&limit, minMask](const C2Value::Primitive &v) -> bool { - T value = v.ref() | minMask; - return value == minMask || !limit.contains(value); }); + values.erase(std::remove_if(values.begin(), values.end(), + [&limit, minMask]( + const C2Value::Primitive &v) -> bool { + T value = v.ref() | minMask; + return value == minMask || + !limit.contains(value); + }), + values.end()); // we also need to do it vice versa for (const C2Value::Primitive &v : _mValues) { T value = v.ref() | minMask; @@ -264,24 +269,33 @@ bool C2SupportedValueSet::contains(T value) const { template C2SupportedValueSet C2SupportedValueSet::limitedTo(const C2SupportedValueSet &limit) const { std::vector values = _mValues; // make a copy - std::remove_if(values.begin(), values.end(), [&limit](const C2Value::Primitive &v) -> bool { - return !limit.contains(v.ref()); }); + values.erase(std::remove_if(values.begin(), values.end(), + [&limit](const C2Value::Primitive &v) -> bool { + return !limit.contains(v.ref()); + }), + values.end()); return C2SupportedValueSet(std::move(values)); } template C2SupportedValueSet C2SupportedValueSet::limitedTo(const C2SupportedRange &limit) const { std::vector values = _mValues; // make a copy - std::remove_if(values.begin(), values.end(), [&limit](const C2Value::Primitive &v) -> bool { - return !limit.contains(v.ref()); }); + values.erase(std::remove_if(values.begin(), values.end(), + [&limit](const C2Value::Primitive &v) -> bool { + return !limit.contains(v.ref()); + }), + values.end()); return C2SupportedValueSet(std::move(values)); } template C2SupportedValueSet C2SupportedValueSet::limitedTo(const C2SupportedFlags &limit) const { std::vector values = _mValues; // make a copy - std::remove_if(values.begin(), values.end(), [&limit](const C2Value::Primitive &v) -> bool { - return !limit.contains(v.ref()); }); + values.erase(std::remove_if(values.begin(), values.end(), + [&limit](const C2Value::Primitive &v) -> bool { + return !limit.contains(v.ref()); + }), + values.end()); return C2SupportedValueSet(std::move(values)); }