Просмотр исходного кода

Kernel: Tidy up AnonymousFile construction a bit

- Rename create() => try_create()
- Use adopt_nonnull_ref_or_enomem()
Andreas Kling 3 лет назад
Родитель
Сommit
4012099338
2 измененных файлов с 6 добавлено и 6 удалено
  1. 2 2
      Kernel/FileSystem/AnonymousFile.h
  2. 4 4
      Kernel/Syscalls/anon_create.cpp

+ 2 - 2
Kernel/FileSystem/AnonymousFile.h

@@ -13,9 +13,9 @@ namespace Kernel {
 
 class AnonymousFile final : public File {
 public:
-    static RefPtr<AnonymousFile> create(NonnullRefPtr<Memory::AnonymousVMObject> vmobject)
+    static KResultOr<NonnullRefPtr<AnonymousFile>> try_create(NonnullRefPtr<Memory::AnonymousVMObject> 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;

+ 4 - 4
Kernel/Syscalls/anon_create.cpp

@@ -33,10 +33,10 @@ KResultOr<FlatPtr> 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();