From 82c788d6cee18102048e5cf7b67b459fc7276faa Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Sat, 5 Jul 2025 22:24:26 -0500 Subject: [PATCH] Eliminate web_server_idf guard variable to save 8 bytes RAM --- esphome/components/web_server_idf/web_server_idf.cpp | 6 ++++++ esphome/components/web_server_idf/web_server_idf.h | 5 +---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/esphome/components/web_server_idf/web_server_idf.cpp b/esphome/components/web_server_idf/web_server_idf.cpp index 9478e4748c..774378523c 100644 --- a/esphome/components/web_server_idf/web_server_idf.cpp +++ b/esphome/components/web_server_idf/web_server_idf.cpp @@ -37,6 +37,12 @@ namespace web_server_idf { static const char *const TAG = "web_server_idf"; +// Global instance to avoid guard variable (saves 8 bytes) +// This is initialized at program startup before any threads +static DefaultHeaders default_headers_instance; + +DefaultHeaders &DefaultHeaders::Instance() { return default_headers_instance; } + void AsyncWebServer::end() { if (this->server_) { httpd_stop(this->server_); diff --git a/esphome/components/web_server_idf/web_server_idf.h b/esphome/components/web_server_idf/web_server_idf.h index 8de25c8e96..e8e40ef9b0 100644 --- a/esphome/components/web_server_idf/web_server_idf.h +++ b/esphome/components/web_server_idf/web_server_idf.h @@ -328,10 +328,7 @@ class DefaultHeaders { void addHeader(const char *name, const char *value) { this->headers_.emplace_back(name, value); } // NOLINTNEXTLINE(readability-identifier-naming) - static DefaultHeaders &Instance() { - static DefaultHeaders instance; - return instance; - } + static DefaultHeaders &Instance(); protected: std::vector> headers_;