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

core/bsd: Correctly unbind methods in destructor

Prevents yuzu from crashing when the BSD service is created a second time.
FearlessTobi 3 лет назад
Родитель
Сommit
d92826963a
1 измененных файлов с 5 добавлено и 1 удалено
  1. 5 1
      src/core/hle/service/sockets/bsd.cpp

+ 5 - 1
src/core/hle/service/sockets/bsd.cpp

@@ -933,7 +933,11 @@ BSD::BSD(Core::System& system_, const char* name)
     }
 }
 
-BSD::~BSD() = default;
+BSD::~BSD() {
+    if (auto room_member = room_network.GetRoomMember().lock()) {
+        room_member->Unbind(proxy_packet_received);
+    }
+}
 
 BSDCFG::BSDCFG(Core::System& system_) : ServiceFramework{system_, "bsdcfg"} {
     // clang-format off