Used `add` instead of `+=` for `Resources::filter`.
The current logic of `Resources::filter` is using `+=` to add
the filtered resource object and the `+=` resource object will
invoke `validate` which is not necessary as all of the resource
objects are valid.
The fix is using `add` instead of `+=` for `Resources::filter`,
this can make sure there is no validation and can improve
performance of `Resources::filter` for resources object.
Review: https://reviews.apache.org/r/50557/
diff --git a/src/common/resources.cpp b/src/common/resources.cpp
index 1fe7909..69166de 100644
--- a/src/common/resources.cpp
+++ b/src/common/resources.cpp
@@ -849,7 +849,7 @@
Resources result;
foreach (const Resource& resource, resources) {
if (predicate(resource)) {
- result += resource;
+ result.add(resource);
}
}
return result;
diff --git a/src/v1/resources.cpp b/src/v1/resources.cpp
index c62bc35..90897e3 100644
--- a/src/v1/resources.cpp
+++ b/src/v1/resources.cpp
@@ -852,7 +852,7 @@
Resources result;
foreach (const Resource& resource, resources) {
if (predicate(resource)) {
- result += resource;
+ result.add(resource);
}
}
return result;