mirror of
https://github.com/esphome/esphome.git
synced 2026-02-28 18:04:19 -07:00
Drop template wrapper, call register_component_ directly
The template wrapper caused the compiler to make different optimization decisions on setup(), negating the savings. Calling register_component_ directly was -4 bytes. Co-Authored-By: J. Nick Koston <nick@koston.org>
This commit is contained in:
@@ -521,13 +521,6 @@ class Application {
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/// Register a component - only callable from codegen-generated setup() via friend access.
|
||||
template<class C> C *register_component(C *c) {
|
||||
static_assert(std::is_base_of<Component, C>::value, "Only Component subclasses can be registered");
|
||||
this->register_component_((Component *) c);
|
||||
return c;
|
||||
}
|
||||
|
||||
void register_component_(Component *comp);
|
||||
|
||||
void calculate_looping_components_();
|
||||
|
||||
@@ -79,7 +79,7 @@ async def register_component(var, config):
|
||||
if name is not None:
|
||||
add(var.set_component_source(LogStringLiteral(name)))
|
||||
|
||||
add(App.register_component(var))
|
||||
add(App.register_component_(var))
|
||||
return var
|
||||
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ def test_deep_sleep_setup(generate_main):
|
||||
main_cpp = generate_main("tests/component_tests/deep_sleep/test_deep_sleep1.yaml")
|
||||
|
||||
assert "deepsleep = new deep_sleep::DeepSleepComponent();" in main_cpp
|
||||
assert "App.register_component(deepsleep);" in main_cpp
|
||||
assert "App.register_component_(deepsleep);" in main_cpp
|
||||
|
||||
|
||||
def test_deep_sleep_sleep_duration(generate_main):
|
||||
|
||||
@@ -27,7 +27,7 @@ def test_web_server_ota_generated(generate_main: Callable[[str], str]) -> None:
|
||||
assert "global_web_server_base" in main_cpp
|
||||
|
||||
# Check component is registered
|
||||
assert "App.register_component(web_server_webserverotacomponent_id)" in main_cpp
|
||||
assert "App.register_component_(web_server_webserverotacomponent_id)" in main_cpp
|
||||
|
||||
|
||||
def test_web_server_ota_with_callbacks(generate_main: Callable[[str], str]) -> None:
|
||||
|
||||
@@ -16,10 +16,10 @@ void setup() {
|
||||
auto *log = new logger::Logger(115200); // NOLINT
|
||||
log->pre_setup();
|
||||
log->set_uart_selection(logger::UART_SELECTION_UART0);
|
||||
App.register_component(log);
|
||||
App.register_component_(log);
|
||||
|
||||
auto *wifi = new wifi::WiFiComponent(); // NOLINT
|
||||
App.register_component(wifi);
|
||||
App.register_component_(wifi);
|
||||
wifi::WiFiAP ap;
|
||||
ap.set_ssid("Test SSID");
|
||||
ap.set_password("password1");
|
||||
|
||||
@@ -16,7 +16,7 @@ async def test_gpio_pin_expression__conf_is_none(monkeypatch):
|
||||
async def test_register_component(monkeypatch):
|
||||
var = Mock(base="foo.bar")
|
||||
|
||||
app_mock = Mock(register_component=Mock(return_value=var))
|
||||
app_mock = Mock(register_component_=Mock(return_value=var))
|
||||
monkeypatch.setattr(ch, "App", app_mock)
|
||||
|
||||
core_mock = Mock(component_ids=["foo.bar"])
|
||||
@@ -29,7 +29,7 @@ async def test_register_component(monkeypatch):
|
||||
|
||||
assert actual is var
|
||||
assert add_mock.call_count == 2
|
||||
app_mock.register_component.assert_called_with(var)
|
||||
app_mock.register_component_.assert_called_with(var)
|
||||
assert core_mock.component_ids == []
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ async def test_register_component__no_component_id(monkeypatch):
|
||||
async def test_register_component__with_setup_priority(monkeypatch):
|
||||
var = Mock(base="foo.bar")
|
||||
|
||||
app_mock = Mock(register_component=Mock(return_value=var))
|
||||
app_mock = Mock(register_component_=Mock(return_value=var))
|
||||
monkeypatch.setattr(ch, "App", app_mock)
|
||||
|
||||
core_mock = Mock(component_ids=["foo.bar"])
|
||||
@@ -68,5 +68,5 @@ async def test_register_component__with_setup_priority(monkeypatch):
|
||||
assert actual is var
|
||||
add_mock.assert_called()
|
||||
assert add_mock.call_count == 4
|
||||
app_mock.register_component.assert_called_with(var)
|
||||
app_mock.register_component_.assert_called_with(var)
|
||||
assert core_mock.component_ids == []
|
||||
|
||||
Reference in New Issue
Block a user