diff --git a/Kernel/FileSystem/AnonymousFile.h b/Kernel/FileSystem/AnonymousFile.h index 7b275b4771..bbca01859d 100644 --- a/Kernel/FileSystem/AnonymousFile.h +++ b/Kernel/FileSystem/AnonymousFile.h @@ -13,9 +13,9 @@ namespace Kernel { class AnonymousFile final : public File { public: - static RefPtr create(NonnullRefPtr vmobject) + static KResultOr> try_create(NonnullRefPtr vmobject) { - return adopt_ref_if_nonnull(new (nothrow) AnonymousFile(move(vmobject))); + return adopt_nonnull_ref_or_enomem(new (nothrow) AnonymousFile(move(vmobject))); } virtual ~AnonymousFile() override; diff --git a/Kernel/Syscalls/anon_create.cpp b/Kernel/Syscalls/anon_create.cpp index ecbaa7e313..182a68fcb6 100644 --- a/Kernel/Syscalls/anon_create.cpp +++ b/Kernel/Syscalls/anon_create.cpp @@ -33,10 +33,10 @@ KResultOr Process::sys$anon_create(size_t size, int options) if (maybe_vmobject.is_error()) return maybe_vmobject.error(); - auto anon_file = AnonymousFile::create(maybe_vmobject.release_value()); - if (!anon_file) - return ENOMEM; - auto description_or_error = FileDescription::try_create(*anon_file); + auto anon_file_or_error = AnonymousFile::try_create(maybe_vmobject.release_value()); + if (anon_file_or_error.is_error()) + return anon_file_or_error.error(); + auto description_or_error = FileDescription::try_create(anon_file_or_error.release_value()); if (description_or_error.is_error()) return description_or_error.error();