diff options
author | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2024-03-12 15:38:30 +0100 |
---|---|---|
committer | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2024-03-25 14:34:31 +0000 |
commit | f00022aa66f7b7c6d0825b8a45944e35d8cb0cf6 (patch) | |
tree | 26b509507cfa793d422d1ae3d8ac6a3f37ba3172 | |
parent | a06db62288bc3fdbf3f25bcfa046c20510036665 (diff) | |
download | Mana-f00022aa66f7b7c6d0825b8a45944e35d8cb0cf6.tar.gz Mana-f00022aa66f7b7c6d0825b8a45944e35d8cb0cf6.tar.bz2 Mana-f00022aa66f7b7c6d0825b8a45944e35d8cb0cf6.tar.xz Mana-f00022aa66f7b7c6d0825b8a45944e35d8cb0cf6.zip |
Removed an unnecessary extra allocation in strprintf
We can use vsnprintf to write to the std::string directly.
-rw-r--r-- | src/utils/stringutils.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/utils/stringutils.cpp b/src/utils/stringutils.cpp index a1637892..7a951ec6 100644 --- a/src/utils/stringutils.cpp +++ b/src/utils/stringutils.cpp @@ -94,13 +94,12 @@ std::string strprintf(char const *format, ...) return buf; } // The static size was not big enough, try again with a dynamic allocation. - ++nb; - char *buf2 = new char[nb]; + ++nb; // Add 1 for the null terminator. + + std::string res(nb, char()); va_start(args, format); - vsnprintf(buf2, nb, format, args); + vsnprintf(res.data(), nb, format, args); va_end(args); - std::string res(buf2); - delete [] buf2; return res; } |