mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-01 21:59:07 +00:00
Kernel: Make Process::FileDescriptions::allocate return KResultOr<int>
Modernize more error checking by utilizing KResultOr.
This commit is contained in:
parent
d2cee9cbf6
commit
ba03b6ad02
Notes:
sideshowbarker
2024-07-18 07:59:38 +09:00
Author: https://github.com/bgianfo
Commit: ba03b6ad02
Pull-request: https://github.com/SerenityOS/serenity/pull/9034
Reviewed-by: https://github.com/awesomekling
Reviewed-by: https://github.com/gunnarbeutner
10 changed files with 48 additions and 37 deletions
|
@ -30,13 +30,19 @@ KResultOr<FlatPtr> Process::sys$pipe(int pipefd[2], int flags)
|
|||
if (open_writer_result.is_error())
|
||||
return open_writer_result.error();
|
||||
|
||||
int reader_fd = m_fds.allocate();
|
||||
auto reader_fd_or_error = m_fds.allocate();
|
||||
if (reader_fd_or_error.is_error())
|
||||
return reader_fd_or_error.error();
|
||||
auto reader_fd = reader_fd_or_error.value();
|
||||
m_fds[reader_fd].set(open_reader_result.release_value(), fd_flags);
|
||||
m_fds[reader_fd].description()->set_readable(true);
|
||||
if (!copy_to_user(&pipefd[0], &reader_fd))
|
||||
return EFAULT;
|
||||
|
||||
int writer_fd = m_fds.allocate();
|
||||
auto writer_fd_or_error = m_fds.allocate();
|
||||
if (writer_fd_or_error.is_error())
|
||||
return writer_fd_or_error.error();
|
||||
auto writer_fd = writer_fd_or_error.value();
|
||||
m_fds[writer_fd].set(open_writer_result.release_value(), fd_flags);
|
||||
m_fds[writer_fd].description()->set_writable(true);
|
||||
if (!copy_to_user(&pipefd[1], &writer_fd))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue