1
0
mirror of https://github.com/esphome/esphome.git synced 2025-09-28 08:02:23 +01:00

[web_server] Remove std::find_if overhead matching IDF implementation (#10889)

This commit is contained in:
J. Nick Koston
2025-09-25 19:14:16 -05:00
committed by GitHub
parent 195d1be4a9
commit 875ada86b0

View File

@@ -108,14 +108,14 @@ static UrlMatch match_url(const char *url_ptr, size_t url_len, bool only_domain)
void DeferredUpdateEventSource::deq_push_back_with_dedup_(void *source, message_generator_t *message_generator) {
DeferredEvent item(source, message_generator);
auto iter = std::find_if(this->deferred_queue_.begin(), this->deferred_queue_.end(),
[&item](const DeferredEvent &test) -> bool { return test == item; });
if (iter != this->deferred_queue_.end()) {
(*iter) = item;
} else {
this->deferred_queue_.push_back(item);
// Use range-based for loop instead of std::find_if to reduce template instantiation overhead and binary size
for (auto &event : this->deferred_queue_) {
if (event == item) {
event = item;
return;
}
}
this->deferred_queue_.push_back(item);
}
void DeferredUpdateEventSource::process_deferred_queue_() {