diff options
| author | lizzie <lizzie@eden-emu.dev> | 2026-06-27 08:50:24 +0200 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2026-06-27 08:50:24 +0200 |
| commit | d8a8169eb20935b777fbaf322fa2d43e8f29d005 (patch) | |
| tree | e55a23c5c77a2c24b31b3a64911b1b23a07b5391 /src/core/hle/service/sockets/bsd.cpp | |
| parent | 81c6e56713fec564b7bd6519f9f4f760d5680bac (diff) | |
[hle/bsd] do not use rust-result wannabe Expected in functions (#4075)
rust has Result<T,E> but we don't really need that in c++, also the header just sucks, objectively
Signed-off-by: lizzie lizzie@eden-emu.dev
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4075
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-by: crueter <crueter@eden-emu.dev>
Diffstat (limited to 'src/core/hle/service/sockets/bsd.cpp')
| -rw-r--r-- | src/core/hle/service/sockets/bsd.cpp | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/src/core/hle/service/sockets/bsd.cpp b/src/core/hle/service/sockets/bsd.cpp index 6053cdd7f2..b8078bfd99 100644 --- a/src/core/hle/service/sockets/bsd.cpp +++ b/src/core/hle/service/sockets/bsd.cpp @@ -24,9 +24,6 @@ #include "network/network.h" #include <common/settings.h> -using Common::Expected; -using Common::Unexpected; - namespace Service::Sockets { namespace { @@ -464,13 +461,22 @@ void BSD::DuplicateSocket(HLERequestContext& ctx) { IPC::RequestParser rp{ctx}; auto input = rp.PopRaw<InputParameters>(); - Expected<s32, Errno> res = DuplicateSocketImpl(input.fd); IPC::ResponseBuilder rb{ctx, 4}; rb.Push(ResultSuccess); - rb.PushRaw(OutputParameters{ - .ret = res.value_or(0), - .bsd_errno = res ? Errno::SUCCESS : res.error(), - }); + + auto const res_v = DuplicateSocketImpl(input.fd); + if (auto* res = std::get_if<s32>(&res_v)) { + rb.PushRaw(OutputParameters{ + .ret = *res, + .bsd_errno = Errno::SUCCESS, + }); + } else { + auto* err = std::get_if<Errno>(&res_v); + rb.PushRaw(OutputParameters{ + .ret = 0, + .bsd_errno = *err, + }); + } } void BSD::EventFd(HLERequestContext& ctx) { @@ -977,15 +983,15 @@ Errno BSD::CloseImpl(s32 fd) { return bsd_errno; } -Expected<s32, Errno> BSD::DuplicateSocketImpl(s32 fd) { +std::variant<s32, Errno> BSD::DuplicateSocketImpl(s32 fd) { if (!IsFileDescriptorValid(fd)) { - return Unexpected(Errno::BADF); + return Errno::BADF; } const s32 new_fd = FindFreeFileDescriptorHandle(); if (new_fd < 0) { LOG_ERROR(Service, "No more file descriptors available"); - return Unexpected(Errno::MFILE); + return Errno::MFILE; } file_descriptors[new_fd] = FileDescriptor{ |
