mirror of
https://github.com/esphome/esphome.git
synced 2026-07-10 17:05:36 +00:00
237cfdebfcc586952fe4fb49125507bd0f9b0f0a
FanTraits contained a std::vector<const char *> for preset modes. Every get_traits() call reconstructed this vector, causing heap allocations on every publish_state() and control()/perform() call. Move the vector storage to the Fan base class and have FanTraits hold a const pointer instead. Internal callers (save_state_, find_preset_mode_) search the Fan-owned vector directly, avoiding traits reconstruction. The old FanTraits setters are preserved as deprecated compatibility overloads (removed in 2026.11.0) that self-own the data, so external components continue to compile — they just get a deprecation warning and still heap-allocate until they migrate.
Description
ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.
Readme
Multiple Licenses
546 MiB
Languages
C++
60.1%
Python
39.3%
C
0.3%
JavaScript
0.2%
