J. Nick Koston
db15bb2494
Merge remote-tracking branch 'upstream/callback-manager-no-vector' into integration
2026-03-28 08:27:47 -10:00
J. Nick Koston
3aa31ca65b
Merge branch 'dev' into callback-manager-no-vector
2026-03-27 17:51:29 -10:00
J. Nick Koston
b6dcbe9fd3
Merge remote-tracking branch 'upstream/sensor_value_list_static_array' into integration
2026-03-27 17:10:40 -10:00
J. Nick Koston
a3ccb656b2
Replace forward-declared App with throttle_check_and_update helper
...
Forward declaration fails when filter.h is included before application.h
(incomplete type error). Instead, extract the throttle time check into a
non-template helper in filter.cpp that accesses App directly. This keeps
the same call overhead as the old ThrottleFilter (one function call) but
the helper does the time check AND updates last_input, so the template
new_value() body has no App dependency at all.
2026-03-27 17:09:44 -10:00
J. Nick Koston
2a80ba3e9e
Merge remote-tracking branches 'upstream/sensor_or_filter_static_array', 'upstream/sensor_calibrate_linear_static_array', 'upstream/sensor_calibrate_polynomial_static_array', 'upstream/binary_sensor_autorepeat_static_array', 'upstream/binary_sensor_multiclick_static_array', 'upstream/text_sensor_substitute_static_array' and 'upstream/text_sensor_map_static_array' into sensor_value_list_static_array
2026-03-27 17:03:11 -10:00
J. Nick Koston
19e497cd61
Remove get_loop_component_start_time wrapper, use forward-declared App directly
...
The wrapper added a function call indirection on every filter invocation
that the compiler cannot inline without LTO. Forward-declaring Application
and App lets the template body call App.get_loop_component_start_time()
directly — the method is inline in application.h which is included by
main.cpp where the template is instantiated.
2026-03-27 16:58:49 -10:00
J. Nick Koston
5d67d16810
Merge remote-tracking branch 'origin/callback-manager-no-vector' into callback-manager-no-vector
2026-03-27 16:50:59 -10:00
J. Nick Koston
d25a70b830
Merge remote-tracking branch 'upstream/dev' into callback-manager-no-vector
2026-03-27 16:50:46 -10:00
J. Nick Koston
fa2b14ef41
Guard against nullptr+0 UB in call() and fix assert bound
...
- Add early return when size_==0 to avoid nullptr+0 pointer
arithmetic (UB per C++ standard, even though all ESPHome
targets treat it as no-op)
- Fix debug assert: size < UINT16_MAX allows capacity up to 65535
2026-03-27 16:47:56 -10:00
J. Nick Koston
967ded5477
Add ESPHOME_ALWAYS_INLINE to call() to stabilize inlining across struct layout changes
2026-03-27 16:40:59 -10:00
J. Nick Koston
711ba55756
Fix: inline ESPHOME_DEBUG_ASSERT to avoid include order issue
2026-03-27 16:27:52 -10:00
J. Nick Koston
4cba679469
Fix: inline ESPHOME_DEBUG_ASSERT to avoid include order issue
2026-03-27 16:27:50 -10:00
J. Nick Koston
327d0597af
Fix: inline ESPHOME_DEBUG_ASSERT to avoid include order issue
2026-03-27 16:27:48 -10:00
J. Nick Koston
5d7ae5b3ce
Fix: inline ESPHOME_DEBUG_ASSERT to avoid include order issue
2026-03-27 16:27:46 -10:00
J. Nick Koston
4eec3f5076
Fix: inline ESPHOME_DEBUG_ASSERT to avoid include order issue
2026-03-27 16:27:44 -10:00
J. Nick Koston
1a9c1d4844
Fix: inline ESPHOME_DEBUG_ASSERT to avoid include order issue
2026-03-27 16:27:42 -10:00
J. Nick Koston
1d8be72a44
Fix: inline ESPHOME_DEBUG_ASSERT to avoid include order issue
2026-03-27 16:27:40 -10:00
J. Nick Koston
fa6df8ea2a
Fix: inline ESPHOME_DEBUG_ASSERT to avoid include order issue
2026-03-27 16:27:38 -10:00
J. Nick Koston
3b01e65a2a
Remove accidentally committed .gitignore
2026-03-27 16:24:35 -10:00
J. Nick Koston
42fe39cfd9
Use pointer iteration in call() to avoid uint16_t movzx overhead on x86-64
2026-03-27 16:24:23 -10:00
Jonathan Swoboda
b6abfec82e
[core] Fix area/device hash collision validation not running ( #15259 )
2026-03-27 22:22:24 -04:00
J. Nick Koston
41f9ed7fda
Add braces to satisfy clang-tidy readability-braces-around-statements
2026-03-27 16:21:07 -10:00
J. Nick Koston
a360e43ee8
Fix MapFilter: use init_array_from (missed in merge)
2026-03-27 16:18:21 -10:00
J. Nick Koston
1b52a2f2b9
Merge remote-tracking branch 'upstream/text_sensor_substitute_static_array' into integration
2026-03-27 16:16:59 -10:00
J. Nick Koston
674cdd8be4
Merge remote-tracking branch 'upstream/binary_sensor_multiclick_static_array' into integration
2026-03-27 16:16:59 -10:00
J. Nick Koston
507500171f
Merge remote-tracking branch 'upstream/binary_sensor_autorepeat_static_array' into integration
2026-03-27 16:16:59 -10:00
J. Nick Koston
b4537fbd55
Merge remote-tracking branch 'upstream/sensor_calibrate_polynomial_static_array' into integration
2026-03-27 16:16:58 -10:00
J. Nick Koston
74471296d5
Merge remote-tracking branch 'upstream/sensor_calibrate_linear_static_array' into integration
2026-03-27 16:16:58 -10:00
J. Nick Koston
3e97425dce
Merge remote-tracking branch 'upstream/sensor_or_filter_static_array' into integration
2026-03-27 16:16:58 -10:00
J. Nick Koston
23cbee808a
Merge remote-tracking branch 'upstream/sensor_value_list_static_array' into integration
2026-03-27 16:16:58 -10:00
J. Nick Koston
7f5409214b
Use init_array_from helper for optimal codegen
...
Uses memcpy for trivially copyable types, element-wise copy otherwise.
ESPHOME_DEBUG_ASSERT catches size mismatches in integration tests.
2026-03-27 16:14:59 -10:00
J. Nick Koston
c4aed6f7e5
Use init_array_from helper for optimal codegen
...
Uses memcpy for trivially copyable types, element-wise copy otherwise.
ESPHOME_DEBUG_ASSERT catches size mismatches in integration tests.
2026-03-27 16:14:57 -10:00
J. Nick Koston
a20b0a96b9
Use init_array_from helper for optimal codegen
...
Uses memcpy for trivially copyable types, element-wise copy otherwise.
ESPHOME_DEBUG_ASSERT catches size mismatches in integration tests.
2026-03-27 16:14:55 -10:00
J. Nick Koston
8b42629e3e
Use init_array_from helper for optimal codegen
...
Uses memcpy for trivially copyable types, element-wise copy otherwise.
ESPHOME_DEBUG_ASSERT catches size mismatches in integration tests.
2026-03-27 16:14:53 -10:00
J. Nick Koston
ae2a82edd6
Use init_array_from helper for optimal codegen
...
Uses memcpy for trivially copyable types, element-wise copy otherwise.
ESPHOME_DEBUG_ASSERT catches size mismatches in integration tests.
2026-03-27 16:14:51 -10:00
J. Nick Koston
f8e144b23b
Use init_array_from helper for optimal codegen
...
Uses memcpy for trivially copyable types, element-wise copy otherwise.
ESPHOME_DEBUG_ASSERT catches size mismatches in integration tests.
2026-03-27 16:14:49 -10:00
J. Nick Koston
1d2f11b990
Use init_array_from helper for optimal codegen
...
Uses memcpy for trivially copyable types, element-wise copy otherwise.
ESPHOME_DEBUG_ASSERT catches size mismatches in integration tests.
2026-03-27 16:14:47 -10:00
J. Nick Koston
494d431bf8
Use init_array_from helper for optimal codegen
...
Uses memcpy for trivially copyable types, element-wise copy otherwise.
ESPHOME_DEBUG_ASSERT catches size mismatches in integration tests.
2026-03-27 16:14:45 -10:00
J. Nick Koston
3a3345ace4
Revert accidental FixedRingBuffer change — only CallbackManager should be affected
2026-03-27 16:03:06 -10:00
J. Nick Koston
acef5ad5bb
Fix off-by-one in debug assert: size + 1 must also fit in uint16_t
2026-03-27 15:59:01 -10:00
J. Nick Koston
c2c34d39e7
[text_sensor] Assert size before writing, not after
2026-03-27 15:55:56 -10:00
J. Nick Koston
787af59845
[text_sensor] Assert size before writing, not after
2026-03-27 15:55:29 -10:00
J. Nick Koston
3e7dcc6490
[binary_sensor] Assert size before writing, not after
2026-03-27 15:54:44 -10:00
J. Nick Koston
f48eff29c3
Fix ::operator new / delete[] mismatch — use ::operator delete to match
2026-03-27 15:54:40 -10:00
J. Nick Koston
f9c2d60b7d
[binary_sensor] Assert size before writing, not after
2026-03-27 15:54:12 -10:00
J. Nick Koston
fe8e7c134c
Add debug assert for uint16_t overflow in callback_manager_grow
2026-03-27 15:53:47 -10:00
J. Nick Koston
55963a6ea0
[sensor] Assert size before writing, not after
2026-03-27 15:53:18 -10:00
J. Nick Koston
1bdf6402a2
Move grow path to helpers.cpp as non-template function
...
Since Callback is trivially copyable regardless of signature,
the grow logic is type-independent. Move it to a concrete
function in helpers.cpp using void*/memcpy, eliminating the
template definition from the header entirely.
2026-03-27 15:52:33 -10:00
J. Nick Koston
4cb1164a01
[sensor] Assert size before writing, not after
2026-03-27 15:52:16 -10:00
J. Nick Koston
3d68920de0
[sensor] Assert size before writing, not after
2026-03-27 15:51:05 -10:00