Quellcode durchsuchen

Kernel: Mark kernel smart-pointer classes as [[nodiscard]]

And cast the unused return values to void.
Sam Atkins vor 3 Jahren
Ursprung
Commit
c6a97ea843

+ 1 - 1
Kernel/Bus/USB/UHCI/UHCIController.cpp

@@ -476,7 +476,7 @@ void UHCIController::spawn_port_proc()
     if (process_name.is_error())
     if (process_name.is_error())
         TODO();
         TODO();
 
 
-    Process::create_kernel_process(usb_hotplug_thread, process_name.release_value(), [&] {
+    (void)Process::create_kernel_process(usb_hotplug_thread, process_name.release_value(), [&] {
         for (;;) {
         for (;;) {
             if (m_root_hub)
             if (m_root_hub)
                 m_root_hub->check_for_port_updates();
                 m_root_hub->check_for_port_updates();

+ 1 - 1
Kernel/FileSystem/Plan9FileSystem.cpp

@@ -656,7 +656,7 @@ void Plan9FS::ensure_thread()
         auto process_name = KString::try_create("Plan9FS");
         auto process_name = KString::try_create("Plan9FS");
         if (process_name.is_error())
         if (process_name.is_error())
             TODO();
             TODO();
-        Process::create_kernel_process(m_thread, process_name.release_value(), [&]() {
+        (void)Process::create_kernel_process(m_thread, process_name.release_value(), [&]() {
             thread_main();
             thread_main();
             m_thread_running.store(false, AK::MemoryOrder::memory_order_release);
             m_thread_running.store(false, AK::MemoryOrder::memory_order_release);
         });
         });

+ 2 - 2
Kernel/FileSystem/VirtualFileSystem.cpp

@@ -319,7 +319,7 @@ ErrorOr<void> VirtualFileSystem::mknod(StringView path, mode_t mode, dev_t dev,
 
 
     auto basename = KLexicalPath::basename(path);
     auto basename = KLexicalPath::basename(path);
     dbgln_if(VFS_DEBUG, "VirtualFileSystem::mknod: '{}' mode={} dev={} in {}", basename, mode, dev, parent_inode.identifier());
     dbgln_if(VFS_DEBUG, "VirtualFileSystem::mknod: '{}' mode={} dev={} in {}", basename, mode, dev, parent_inode.identifier());
-    TRY(parent_inode.create_child(basename, mode, dev, current_process.euid(), current_process.egid()));
+    (void)TRY(parent_inode.create_child(basename, mode, dev, current_process.euid(), current_process.egid()));
     return {};
     return {};
 }
 }
 
 
@@ -385,7 +385,7 @@ ErrorOr<void> VirtualFileSystem::mkdir(StringView path, mode_t mode, Custody& ba
 
 
     auto basename = KLexicalPath::basename(path);
     auto basename = KLexicalPath::basename(path);
     dbgln_if(VFS_DEBUG, "VirtualFileSystem::mkdir: '{}' in {}", basename, parent_inode.identifier());
     dbgln_if(VFS_DEBUG, "VirtualFileSystem::mkdir: '{}' in {}", basename, parent_inode.identifier());
-    TRY(parent_inode.create_child(basename, S_IFDIR | mode, 0, current_process.euid(), current_process.egid()));
+    (void)TRY(parent_inode.create_child(basename, S_IFDIR | mode, 0, current_process.euid(), current_process.egid()));
     return {};
     return {};
 }
 }
 
 

+ 3 - 1
Kernel/Library/ThreadSafeNonnullRefPtr.h

@@ -40,7 +40,7 @@ ALWAYS_INLINE void unref_if_not_null(T* ptr)
 }
 }
 
 
 template<typename T>
 template<typename T>
-class NonnullRefPtr {
+class [[nodiscard]] NonnullRefPtr {
     template<typename U, typename P>
     template<typename U, typename P>
     friend class RefPtr;
     friend class RefPtr;
     template<typename U>
     template<typename U>
@@ -223,8 +223,10 @@ public:
         other.exchange(ptr);
         other.exchange(ptr);
     }
     }
 
 
+    // clang-format off
 private:
 private:
     NonnullRefPtr() = delete;
     NonnullRefPtr() = delete;
+    // clang-format on
 
 
     ALWAYS_INLINE T* as_ptr() const
     ALWAYS_INLINE T* as_ptr() const
     {
     {

+ 1 - 1
Kernel/Library/ThreadSafeRefPtr.h

@@ -117,7 +117,7 @@ struct RefPtrTraits {
 };
 };
 
 
 template<typename T, typename PtrTraits>
 template<typename T, typename PtrTraits>
-class RefPtr {
+class [[nodiscard]] RefPtr {
     template<typename U, typename P>
     template<typename U, typename P>
     friend class RefPtr;
     friend class RefPtr;
     template<typename U>
     template<typename U>

+ 1 - 1
Kernel/Library/ThreadSafeWeakPtr.h

@@ -11,7 +11,7 @@
 namespace AK {
 namespace AK {
 
 
 template<typename T>
 template<typename T>
-class WeakPtr {
+class [[nodiscard]] WeakPtr {
     template<typename U>
     template<typename U>
     friend class Weakable;
     friend class Weakable;
 
 

+ 1 - 1
Kernel/Net/NetworkTask.cpp

@@ -46,7 +46,7 @@ void NetworkTask::spawn()
     auto name = KString::try_create("NetworkTask");
     auto name = KString::try_create("NetworkTask");
     if (name.is_error())
     if (name.is_error())
         TODO();
         TODO();
-    Process::create_kernel_process(thread, name.release_value(), NetworkTask_main, nullptr);
+    (void)Process::create_kernel_process(thread, name.release_value(), NetworkTask_main, nullptr);
     network_task = thread;
     network_task = thread;
 }
 }
 
 

+ 1 - 1
Kernel/Tasks/SyncTask.cpp

@@ -15,7 +15,7 @@ namespace Kernel {
 UNMAP_AFTER_INIT void SyncTask::spawn()
 UNMAP_AFTER_INIT void SyncTask::spawn()
 {
 {
     RefPtr<Thread> syncd_thread;
     RefPtr<Thread> syncd_thread;
-    Process::create_kernel_process(syncd_thread, KString::must_create("SyncTask"), [] {
+    (void)Process::create_kernel_process(syncd_thread, KString::must_create("SyncTask"), [] {
         dbgln("SyncTask is running");
         dbgln("SyncTask is running");
         for (;;) {
         for (;;) {
             VirtualFileSystem::sync();
             VirtualFileSystem::sync();

+ 1 - 1
Kernel/WorkQueue.cpp

@@ -25,7 +25,7 @@ UNMAP_AFTER_INIT WorkQueue::WorkQueue(StringView name)
     auto name_kstring = KString::try_create(name);
     auto name_kstring = KString::try_create(name);
     if (name_kstring.is_error())
     if (name_kstring.is_error())
         TODO();
         TODO();
-    Process::create_kernel_process(thread, name_kstring.release_value(), [this] {
+    (void)Process::create_kernel_process(thread, name_kstring.release_value(), [this] {
         for (;;) {
         for (;;) {
             WorkItem* item;
             WorkItem* item;
             bool have_more;
             bool have_more;

+ 2 - 2
Kernel/init.cpp

@@ -220,7 +220,7 @@ extern "C" [[noreturn]] UNMAP_AFTER_INIT void init(BootInfo const& boot_info)
 
 
     {
     {
         RefPtr<Thread> init_stage2_thread;
         RefPtr<Thread> init_stage2_thread;
-        Process::create_kernel_process(init_stage2_thread, KString::must_create("init_stage2"), init_stage2, nullptr, THREAD_AFFINITY_DEFAULT, Process::RegisterProcess::No);
+        (void)Process::create_kernel_process(init_stage2_thread, KString::must_create("init_stage2"), init_stage2, nullptr, THREAD_AFFINITY_DEFAULT, Process::RegisterProcess::No);
         // We need to make sure we drop the reference for init_stage2_thread
         // We need to make sure we drop the reference for init_stage2_thread
         // before calling into Scheduler::start, otherwise we will have a
         // before calling into Scheduler::start, otherwise we will have a
         // dangling Thread that never gets cleaned up
         // dangling Thread that never gets cleaned up
@@ -319,7 +319,7 @@ void init_stage2(void*)
     (void)RandomDevice::must_create().leak_ref();
     (void)RandomDevice::must_create().leak_ref();
     PTYMultiplexer::initialize();
     PTYMultiplexer::initialize();
 
 
-    SB16::try_detect_and_create();
+    (void)SB16::try_detect_and_create();
     AC97::detect();
     AC97::detect();
 
 
     StorageManagement::the().initialize(kernel_command_line().root_device(), kernel_command_line().is_force_pio());
     StorageManagement::the().initialize(kernel_command_line().root_device(), kernel_command_line().is_force_pio());