mirror of
https://github.com/RGBCube/serenity
synced 2025-05-16 15:34:58 +00:00
Kernel: Avoid some allocations in command line parsing (#3213)
1. Preallocate args hashmap to prevent rehashing. 2. Use move to prevent string copies.
This commit is contained in:
parent
1b075ffe3b
commit
7506adbece
1 changed files with 5 additions and 3 deletions
|
@ -46,7 +46,9 @@ CommandLine::CommandLine(const String& string)
|
|||
{
|
||||
s_the = this;
|
||||
|
||||
for (auto str : m_string.split(' ')) {
|
||||
const auto& args = m_string.split(' ');
|
||||
m_params.ensure_capacity(args.size());
|
||||
for (auto&& str : args) {
|
||||
if (str == "") {
|
||||
continue;
|
||||
}
|
||||
|
@ -54,9 +56,9 @@ CommandLine::CommandLine(const String& string)
|
|||
auto pair = str.split_limit('=', 2);
|
||||
|
||||
if (pair.size() == 1) {
|
||||
m_params.set(pair[0], "");
|
||||
m_params.set(move(pair[0]), "");
|
||||
} else {
|
||||
m_params.set(pair[0], pair[1]);
|
||||
m_params.set(move(pair[0]), move(pair[1]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue