diff --git a/Kernel/Net/LoopbackAdapter.cpp b/Kernel/Net/LoopbackAdapter.cpp index 783199eae9..207730c78c 100644 --- a/Kernel/Net/LoopbackAdapter.cpp +++ b/Kernel/Net/LoopbackAdapter.cpp @@ -11,12 +11,10 @@ namespace Kernel { static bool s_loopback_initialized = false; -LockRefPtr LoopbackAdapter::try_create() +ErrorOr> LoopbackAdapter::try_create() { - auto interface_name = KString::try_create("loop"sv); - if (interface_name.is_error()) - return {}; - return adopt_lock_ref_if_nonnull(new LoopbackAdapter(interface_name.release_value())); + auto interface_name = TRY(KString::try_create("loop"sv)); + return TRY(adopt_nonnull_ref_or_enomem(new (nothrow) LoopbackAdapter(move(interface_name)))); } LoopbackAdapter::LoopbackAdapter(NonnullOwnPtr interface_name) diff --git a/Kernel/Net/LoopbackAdapter.h b/Kernel/Net/LoopbackAdapter.h index af864250a6..384f4b82ff 100644 --- a/Kernel/Net/LoopbackAdapter.h +++ b/Kernel/Net/LoopbackAdapter.h @@ -15,7 +15,7 @@ private: LoopbackAdapter(NonnullOwnPtr); public: - static LockRefPtr try_create(); + static ErrorOr> try_create(); virtual ~LoopbackAdapter() override; virtual ErrorOr initialize(Badge) override { VERIFY_NOT_REACHED(); } diff --git a/Kernel/Net/NetworkingManagement.cpp b/Kernel/Net/NetworkingManagement.cpp index c2fb037088..70958c28fc 100644 --- a/Kernel/Net/NetworkingManagement.cpp +++ b/Kernel/Net/NetworkingManagement.cpp @@ -136,10 +136,9 @@ bool NetworkingManagement::initialize() m_adapters.with([&](auto& adapters) { adapters.append(*result.release_value()); }); })); } - auto loopback = LoopbackAdapter::try_create(); - VERIFY(loopback); + auto loopback = MUST(LoopbackAdapter::try_create()); m_adapters.with([&](auto& adapters) { adapters.append(*loopback); }); - m_loopback_adapter = loopback; + m_loopback_adapter = *loopback; return true; } }