Kernel+AK: Eliminate a couple of temporary String allocations

This commit is contained in:
Daniel Bertalan 2021-12-30 13:43:45 +01:00 committed by Andreas Kling
parent 726c023f9e
commit 1d2f78682b
7 changed files with 10 additions and 10 deletions

View file

@ -184,7 +184,7 @@ void StringBuilder::append_escaped_for_json(StringView string)
break;
default:
if (ch >= 0 && ch <= 0x1f)
append(String::formatted("\\u{:04x}", ch));
appendff("\\u{:04x}", ch);
else
append(ch);
}

View file

@ -131,7 +131,7 @@ private:
JsonArraySerializer array { builder };
LocalSocket::for_each([&array](auto& socket) {
auto obj = array.add_object();
obj.add("path", String(socket.socket_path()));
obj.add("path", socket.socket_path());
obj.add("origin_pid", socket.origin_pid().value());
obj.add("origin_uid", socket.origin_uid().value());
obj.add("origin_gid", socket.origin_gid().value());
@ -463,7 +463,7 @@ private:
ENUMERATE_PLEDGE_PROMISES
#undef __ENUMERATE_PLEDGE_PROMISE
process_object.add("pledge", pledge_builder.to_string());
process_object.add("pledge", pledge_builder.string_view());
switch (process.veil_state()) {
case VeilState::None:
@ -756,7 +756,7 @@ private:
{
if (!Process::current().is_superuser())
return EPERM;
return builder.append(String::number(kernel_load_base));
return builder.appendff("{}", kernel_load_base);
}
};

View file

@ -121,7 +121,7 @@ ErrorOr<void> KBufferBuilder::append_escaped_for_json(StringView string)
break;
default:
if (ch >= 0 && ch <= 0x1f)
TRY(append(String::formatted("\\u{:04x}", ch)));
TRY(appendff("\\u{:04x}", ch));
else
TRY(append(ch));
}

View file

@ -497,7 +497,7 @@ ErrorOr<NonnullOwnPtr<KString>> IPv4Socket::pseudo_path(const OpenFileDescriptio
VERIFY_NOT_REACHED();
}
return KString::try_create(builder.to_string());
return KString::try_create(builder.string_view());
}
ErrorOr<void> IPv4Socket::setsockopt(int level, int option, Userspace<const void*> user_value, socklen_t user_value_size)

View file

@ -378,7 +378,7 @@ ErrorOr<NonnullOwnPtr<KString>> LocalSocket::pseudo_path(const OpenFileDescripti
break;
}
return KString::try_create(builder.to_string());
return KString::try_create(builder.string_view());
}
ErrorOr<void> LocalSocket::getsockopt(OpenFileDescription& description, int level, int option, Userspace<void*> value, Userspace<socklen_t*> value_size)

View file

@ -159,7 +159,7 @@ ErrorOr<void> Process::procfs_get_unveil_stats(KBufferBuilder& builder) const
permissions_builder.append('c');
if (unveiled_path.permissions() & UnveilAccess::Browse)
permissions_builder.append('b');
obj.add("permissions", permissions_builder.to_string());
obj.add("permissions", permissions_builder.string_view());
}
array.finish();
return {};
@ -255,7 +255,7 @@ ErrorOr<void> Process::procfs_get_virtual_memory_stats(KBufferBuilder& builder)
else
pagemap_builder.append('P');
}
region_object.add("pagemap", pagemap_builder.to_string());
region_object.add("pagemap", pagemap_builder.string_view());
}
}
array.finish();

View file

@ -520,7 +520,7 @@ ErrorOr<FlatPtr> Process::sys$allocate_tls(Userspace<const char*> initial_data,
return EINVAL;
auto range = TRY(address_space().try_allocate_range({}, size));
auto* region = TRY(address_space().allocate_region(range, String("Master TLS"), PROT_READ | PROT_WRITE));
auto* region = TRY(address_space().allocate_region(range, "Master TLS"sv, PROT_READ | PROT_WRITE));
m_master_tls_region = region->make_weak_ptr();
m_master_tls_size = size;