AK: Add Retained<T>, like RetainPtr, but never null.

Also use some Clang attribute wizardry to get a warning for use-after-move.
This commit is contained in:
Andreas Kling 2019-02-25 12:43:52 +01:00
commit 2cfcbdc735
Notes: sideshowbarker 2024-07-19 15:38:07 +09:00
31 changed files with 214 additions and 104 deletions

View file

@ -18,14 +18,14 @@ class CharacterDevice;
class FileDescriptor : public Retainable<FileDescriptor> {
public:
static RetainPtr<FileDescriptor> create(RetainPtr<Socket>&&, SocketRole = SocketRole::None);
static RetainPtr<FileDescriptor> create(RetainPtr<Inode>&&);
static RetainPtr<FileDescriptor> create(RetainPtr<Device>&&);
static RetainPtr<FileDescriptor> create_pipe_writer(FIFO&);
static RetainPtr<FileDescriptor> create_pipe_reader(FIFO&);
static Retained<FileDescriptor> create(RetainPtr<Socket>&&, SocketRole = SocketRole::None);
static Retained<FileDescriptor> create(RetainPtr<Inode>&&);
static Retained<FileDescriptor> create(RetainPtr<Device>&&);
static Retained<FileDescriptor> create_pipe_writer(FIFO&);
static Retained<FileDescriptor> create_pipe_reader(FIFO&);
~FileDescriptor();
RetainPtr<FileDescriptor> clone();
Retained<FileDescriptor> clone();
int close();