mirror of
https://github.com/esphome/esphome.git
synced 2026-09-04 03:56:04 +00:00
Move message_name() strings to flash via LOG_STR
message_name() returned bare string literals that stayed in RAM on ESP8266. Change return type to const LogString * and wrap with LOG_STR() so they are stored in flash. Update log_send_message_ to use LOG_STR_ARG() accordingly. Also fix clang-tidy: rename append_p_esp8266_ to append_p_esp8266, add NOLINTNEXTLINE for conditionally-unused dump_field overloads.
This commit is contained in:
@@ -2094,7 +2094,7 @@ def build_message_type(
|
||||
public_content.append("#ifdef HAS_PROTO_MESSAGE_DUMP")
|
||||
snake_name = camel_to_snake(desc.name)
|
||||
public_content.append(
|
||||
f'const char *message_name() const override {{ return "{snake_name}"; }}'
|
||||
f'const LogString *message_name() const override {{ return LOG_STR("{snake_name}"); }}'
|
||||
)
|
||||
public_content.append("#endif")
|
||||
|
||||
@@ -2993,7 +2993,7 @@ static const char *const TAG = "api.service";
|
||||
# Add logging helper method declarations
|
||||
hpp += "#ifdef HAS_PROTO_MESSAGE_DUMP\n"
|
||||
hpp += " protected:\n"
|
||||
hpp += " void log_send_message_(const char *name, const char *dump);\n"
|
||||
hpp += " void log_send_message_(const LogString *name, const char *dump);\n"
|
||||
hpp += (
|
||||
" void log_receive_message_(const LogString *name, const ProtoMessage &msg);\n"
|
||||
)
|
||||
@@ -3006,10 +3006,8 @@ static const char *const TAG = "api.service";
|
||||
|
||||
# Add logging helper method implementations to cpp
|
||||
cpp += "#ifdef HAS_PROTO_MESSAGE_DUMP\n"
|
||||
cpp += (
|
||||
f"void {class_name}::log_send_message_(const char *name, const char *dump) {{\n"
|
||||
)
|
||||
cpp += ' ESP_LOGVV(TAG, "send_message %s: %s", name, dump);\n'
|
||||
cpp += f"void {class_name}::log_send_message_(const LogString *name, const char *dump) {{\n"
|
||||
cpp += ' ESP_LOGVV(TAG, "send_message %s: %s", LOG_STR_ARG(name), dump);\n'
|
||||
cpp += "}\n"
|
||||
cpp += f"void {class_name}::log_receive_message_(const LogString *name, const ProtoMessage &msg) {{\n"
|
||||
cpp += " DumpBuffer dump_buf;\n"
|
||||
|
||||
Reference in New Issue
Block a user