Kernel/DevPtsFS: Avoid String allocation during directory traversal

Use a StringBuilder to generate a temporary string buffer with the
slave PTY names. (This works because StringBuilder has 128 bytes of
inline stack capacity before it does any heap allocations.)
This commit is contained in:
Andreas Kling 2021-08-16 22:18:18 +02:00
parent 0de8c95d49
commit 3a2d888913
Notes: sideshowbarker 2024-07-18 05:35:46 +09:00

View file

@ -118,9 +118,9 @@ KResult DevPtsFSInode::traverse_as_directory(Function<bool(FileSystem::Directory
SlavePTY::all_instances().with([&](auto& list) {
for (SlavePTY& slave_pty : list) {
String name = String::number(slave_pty.index());
InodeIdentifier identifier = { fsid(), pty_index_to_inode_index(slave_pty.index()) };
callback({ name, identifier, 0 });
StringBuilder builder;
builder.appendff("{}", slave_pty.index());
callback({ builder.string_view(), { fsid(), pty_index_to_inode_index(slave_pty.index()) }, 0 });
}
});