mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-01-09 01:56:21 +00:00
Kernel: Add a Process::FileDescriptions::get_if_valid(index) API
Note that this is not the same as ::at(index), which has a different
precondition ("allocated" vs "valid").
This commit is contained in:
committed by
Andreas Kling
parent
c1ffc17134
commit
e9feced041
@@ -428,6 +428,29 @@ RefPtr<Process> Process::from_pid(ProcessID pid)
|
||||
});
|
||||
}
|
||||
|
||||
const Process::FileDescriptionAndFlags* Process::FileDescriptions::get_if_valid(size_t i) const
|
||||
{
|
||||
ScopedSpinLock lock(m_fds_lock);
|
||||
if (m_fds_metadatas.size() <= i)
|
||||
return nullptr;
|
||||
|
||||
if (auto& metadata = m_fds_metadatas[i]; metadata.is_valid())
|
||||
return &metadata;
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
Process::FileDescriptionAndFlags* Process::FileDescriptions::get_if_valid(size_t i)
|
||||
{
|
||||
ScopedSpinLock lock(m_fds_lock);
|
||||
if (m_fds_metadatas.size() <= i)
|
||||
return nullptr;
|
||||
|
||||
if (auto& metadata = m_fds_metadatas[i]; metadata.is_valid())
|
||||
return &metadata;
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
const Process::FileDescriptionAndFlags& Process::FileDescriptions::at(size_t i) const
|
||||
{
|
||||
ScopedSpinLock lock(m_fds_lock);
|
||||
|
||||
Reference in New Issue
Block a user