LibCore: Remove unnecessary lifetime extension from ProcessSpawnOptions

We don't need `file_actions` to be a constant-reference. It's created
in-place by its one user (HackStudio). Because it is currently a const-
ref, if we try to create a ProcessSpawnOptions like so:

    Core::ProcessSpawnOptions options { .name = "foo"sv };

We get the following error with clang 18:

    lifetime extension of temporary created by aggregate initialization
    using a default member initializer is not yet supported; lifetime of
    temporary will end at the end of the full-expression
This commit is contained in:
Timothy Flynn 2024-04-27 08:39:41 -04:00 committed by Andreas Kling
parent 2bba9411ca
commit 207f3f1cb4
2 changed files with 2 additions and 2 deletions

View file

@ -364,7 +364,7 @@ ErrorOr<IPCProcess::ProcessAndIPCSocket> IPCProcess::spawn_and_connect_to_proces
ArmedScopeGuard guard_fd_0 { [&] { MUST(System::close(socket_fds[0])); } };
ArmedScopeGuard guard_fd_1 { [&] { MUST(System::close(socket_fds[1])); } };
auto& file_actions = const_cast<Vector<ProcessSpawnOptions::FileActionType>&>(options.file_actions);
auto& file_actions = const_cast<ProcessSpawnOptions&>(options).file_actions;
file_actions.append(FileAction::CloseFile { socket_fds[0] });
auto takeover_string = MUST(String::formatted("{}:{}", options.name, socket_fds[1]));

View file

@ -41,7 +41,7 @@ struct ProcessSpawnOptions {
Optional<ByteString> working_directory {};
using FileActionType = Variant<FileAction::OpenFile, FileAction::CloseFile>;
Vector<FileActionType> const& file_actions {};
Vector<FileActionType> file_actions {};
};
class IPCProcess;