mirror of
https://github.com/RGBCube/serenity
synced 2025-05-23 19:15:07 +00:00
FileDescription: Disallow construction with a null File
It's not valid for a FileDescription to not have a file, so let's disallow it by taking a File& (or FIFO&) in the constructor.
This commit is contained in:
parent
0dc05a33c1
commit
752de9cd27
6 changed files with 18 additions and 19 deletions
|
@ -15,23 +15,23 @@
|
|||
#include <Kernel/VM/MemoryManager.h>
|
||||
#include <LibC/errno_numbers.h>
|
||||
|
||||
NonnullRefPtr<FileDescription> FileDescription::create(RefPtr<Custody>&& custody)
|
||||
NonnullRefPtr<FileDescription> FileDescription::create(Custody& custody)
|
||||
{
|
||||
auto description = adopt(*new FileDescription(InodeFile::create(custody->inode())));
|
||||
description->m_custody = move(custody);
|
||||
auto description = adopt(*new FileDescription(InodeFile::create(custody.inode())));
|
||||
description->m_custody = custody;
|
||||
return description;
|
||||
}
|
||||
|
||||
NonnullRefPtr<FileDescription> FileDescription::create(RefPtr<File> file, SocketRole role)
|
||||
NonnullRefPtr<FileDescription> FileDescription::create(File& file, SocketRole role)
|
||||
{
|
||||
return adopt(*new FileDescription(move(file), role));
|
||||
return adopt(*new FileDescription(file, role));
|
||||
}
|
||||
|
||||
FileDescription::FileDescription(RefPtr<File>&& file, SocketRole role)
|
||||
: m_file(move(file))
|
||||
FileDescription::FileDescription(File& file, SocketRole role)
|
||||
: m_file(file)
|
||||
{
|
||||
if (m_file->is_inode())
|
||||
m_inode = static_cast<InodeFile&>(*m_file).inode();
|
||||
if (file.is_inode())
|
||||
m_inode = static_cast<InodeFile&>(file).inode();
|
||||
set_socket_role(role);
|
||||
}
|
||||
|
||||
|
@ -42,7 +42,6 @@ FileDescription::~FileDescription()
|
|||
if (is_fifo())
|
||||
static_cast<FIFO*>(m_file.ptr())->detach(m_fifo_direction);
|
||||
m_file->close();
|
||||
m_file = nullptr;
|
||||
m_inode = nullptr;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue