mirror of
https://github.com/esphome/esphome.git
synced 2025-07-28 14:16:40 +00:00
Reduce component_iterator memory usage (#9205)
This commit is contained in:
parent
13512440ac
commit
837dd46adf
@ -375,7 +375,7 @@ void ComponentIterator::advance() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (advance_platform) {
|
if (advance_platform) {
|
||||||
this->state_ = static_cast<IteratorState>(static_cast<uint32_t>(this->state_) + 1);
|
this->state_ = static_cast<IteratorState>(static_cast<uint8_t>(this->state_) + 1);
|
||||||
this->at_ = 0;
|
this->at_ = 0;
|
||||||
} else if (success) {
|
} else if (success) {
|
||||||
this->at_++;
|
this->at_++;
|
||||||
|
@ -93,7 +93,9 @@ class ComponentIterator {
|
|||||||
virtual bool on_end();
|
virtual bool on_end();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
enum class IteratorState {
|
// Iterates over all ESPHome entities (sensors, switches, lights, etc.)
|
||||||
|
// Supports up to 256 entity types and up to 65,535 entities of each type
|
||||||
|
enum class IteratorState : uint8_t {
|
||||||
NONE = 0,
|
NONE = 0,
|
||||||
BEGIN,
|
BEGIN,
|
||||||
#ifdef USE_BINARY_SENSOR
|
#ifdef USE_BINARY_SENSOR
|
||||||
@ -167,7 +169,7 @@ class ComponentIterator {
|
|||||||
#endif
|
#endif
|
||||||
MAX,
|
MAX,
|
||||||
} state_{IteratorState::NONE};
|
} state_{IteratorState::NONE};
|
||||||
size_t at_{0};
|
uint16_t at_{0}; // Supports up to 65,535 entities per type
|
||||||
bool include_internal_{false};
|
bool include_internal_{false};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user