mirror of
https://github.com/yuzu-emu/yuzu-android.git
synced 2025-06-11 22:27:57 -05:00
Fix deallocation of GC Adapter
This commit is contained in:
@ -130,6 +130,7 @@ void Adapter::Read() {
|
||||
|
||||
if (payload_size != sizeof(controller_payload_copy) ||
|
||||
controller_payload_copy[0] != LIBUSB_DT_HID) {
|
||||
// TODO: It might be worthwhile to Shutdown GC Adapter if we encounter errors here
|
||||
LOG_ERROR(Input, "error reading payload (size: %d, type: %02x)", payload_size,
|
||||
controller_payload_copy[0]);
|
||||
} else {
|
||||
@ -200,6 +201,7 @@ void Adapter::StartScanThread() {
|
||||
}
|
||||
|
||||
void Adapter::StopScanThread() {
|
||||
detect_thread_running = false;
|
||||
detect_thread.join();
|
||||
}
|
||||
|
||||
@ -298,8 +300,6 @@ void Adapter::GetGCEndpoint(libusb_device* device) {
|
||||
Adapter::~Adapter() {
|
||||
StopScanThread();
|
||||
Reset();
|
||||
|
||||
current_status = NO_ADAPTER_DETECTED;
|
||||
}
|
||||
|
||||
void Adapter::Reset() {
|
||||
@ -312,11 +312,11 @@ void Adapter::Reset() {
|
||||
}
|
||||
|
||||
if (adapter_thread_running) {
|
||||
adapter_thread_running = false;
|
||||
adapter_input_thread.join();
|
||||
}
|
||||
|
||||
adapter_controllers_status.fill(ControllerTypes::None);
|
||||
|
||||
current_status = NO_ADAPTER_DETECTED;
|
||||
|
||||
if (usb_adapter_handle) {
|
||||
@ -324,6 +324,10 @@ void Adapter::Reset() {
|
||||
libusb_close(usb_adapter_handle);
|
||||
usb_adapter_handle = nullptr;
|
||||
}
|
||||
|
||||
if (libusb_ctx) {
|
||||
libusb_exit(libusb_ctx);
|
||||
}
|
||||
}
|
||||
|
||||
bool Adapter::DeviceConnected(int port) {
|
||||
|
Reference in New Issue
Block a user