Merge remote-tracking branch 'origin/callback-manager-no-vector' into callback-manager-no-vector

This commit is contained in:
J. Nick Koston
2026-03-27 16:50:59 -10:00
2 changed files with 4 additions and 1 deletions
+1 -1
View File
@@ -24,7 +24,7 @@ static const char *const TAG = "helpers";
__attribute__((noinline, cold)) void *callback_manager_grow(void *data, uint16_t size, uint16_t &capacity,
size_t elem_size) {
ESPHOME_DEBUG_ASSERT(size < UINT16_MAX - 1);
ESPHOME_DEBUG_ASSERT(size < UINT16_MAX);
uint16_t new_cap = size + 1;
auto *new_data = ::operator new(new_cap *elem_size);
if (data) {
+3
View File
@@ -1834,6 +1834,9 @@ template<typename... Ts> class CallbackManager<void(Ts...)> {
/// Call all callbacks in this manager.
inline void ESPHOME_ALWAYS_INLINE call(Ts... args) {
if (this->size_ == 0) {
return;
}
for (auto *it = this->data_, *end = it + this->size_; it != end; ++it) {
it->call(args...);
}