mirror of
https://github.com/esphome/esphome.git
synced 2026-02-08 08:41:59 +00:00
[sml] Use stack buffers instead of str_sprintf (#13222)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -104,7 +104,10 @@ std::vector<ObisInfo> SmlFile::get_obis_info() {
|
||||
std::string bytes_repr(const BytesView &buffer) {
|
||||
std::string repr;
|
||||
for (auto const value : buffer) {
|
||||
repr += str_sprintf("%02x", value & 0xff);
|
||||
// max 3: 2 hex digits + null
|
||||
char hex_buf[3];
|
||||
snprintf(hex_buf, sizeof(hex_buf), "%02x", static_cast<unsigned int>(value));
|
||||
repr += hex_buf;
|
||||
}
|
||||
return repr;
|
||||
}
|
||||
@@ -146,7 +149,11 @@ ObisInfo::ObisInfo(const BytesView &server_id, const SmlNode &val_list_entry) :
|
||||
}
|
||||
|
||||
std::string ObisInfo::code_repr() const {
|
||||
return str_sprintf("%d-%d:%d.%d.%d", this->code[0], this->code[1], this->code[2], this->code[3], this->code[4]);
|
||||
// max 20: "255-255:255.255.255" (19 chars) + null
|
||||
char buf[20];
|
||||
snprintf(buf, sizeof(buf), "%d-%d:%d.%d.%d", this->code[0], this->code[1], this->code[2], this->code[3],
|
||||
this->code[4]);
|
||||
return buf;
|
||||
}
|
||||
|
||||
} // namespace sml
|
||||
|
||||
Reference in New Issue
Block a user