diff --git a/rpcs3/Emu/Cell/lv2/sys_net/lv2_socket.cpp b/rpcs3/Emu/Cell/lv2/sys_net/lv2_socket.cpp index 0e1543157c..d95c6935fc 100644 --- a/rpcs3/Emu/Cell/lv2/sys_net/lv2_socket.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_net/lv2_socket.cpp @@ -186,3 +186,6 @@ lv2_socket& lv2_socket::operator=(thread_state s) noexcept return *this; } +lv2_socket::~lv2_socket() noexcept +{ +} diff --git a/rpcs3/Emu/Cell/lv2/sys_net/lv2_socket.h b/rpcs3/Emu/Cell/lv2/sys_net/lv2_socket.h index 4703f31d5f..f0e3b61d00 100644 --- a/rpcs3/Emu/Cell/lv2/sys_net/lv2_socket.h +++ b/rpcs3/Emu/Cell/lv2/sys_net/lv2_socket.h @@ -64,7 +64,7 @@ public: lv2_socket(utils::serial&, lv2_socket_type type); static std::function load(utils::serial& ar); void save(utils::serial&, bool save_only_this_class = false); - ~lv2_socket() noexcept = default; + virtual ~lv2_socket() noexcept; lv2_socket& operator=(thread_state s) noexcept; std::unique_lock lock(); diff --git a/rpcs3/Emu/Cell/lv2/sys_net/lv2_socket_native.cpp b/rpcs3/Emu/Cell/lv2/sys_net/lv2_socket_native.cpp index 75fd375e5a..d0a735b178 100644 --- a/rpcs3/Emu/Cell/lv2/sys_net/lv2_socket_native.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_net/lv2_socket_native.cpp @@ -57,6 +57,11 @@ void lv2_socket_native::save(utils::serial& ar) ar(is_socket_connected()); } +lv2_socket_native::~lv2_socket_native() noexcept +{ + lv2_socket_native::close(); +} + s32 lv2_socket_native::create_socket() { ensure(family == SYS_NET_AF_INET); diff --git a/rpcs3/Emu/Cell/lv2/sys_net/lv2_socket_native.h b/rpcs3/Emu/Cell/lv2/sys_net/lv2_socket_native.h index e9a2b21bb6..808529356a 100644 --- a/rpcs3/Emu/Cell/lv2/sys_net/lv2_socket_native.h +++ b/rpcs3/Emu/Cell/lv2/sys_net/lv2_socket_native.h @@ -34,6 +34,7 @@ public: lv2_socket_native(lv2_socket_family family, lv2_socket_type type, lv2_ip_protocol protocol); lv2_socket_native(utils::serial& ar, lv2_socket_type type); + ~lv2_socket_native() noexcept override; void save(utils::serial& ar); s32 create_socket();