diff options
-rw-r--r-- | xbmc/platform/android/peripherals/PeripheralBusAndroid.cpp | 9 | ||||
-rw-r--r-- | xbmc/platform/android/peripherals/PeripheralBusAndroid.h | 2 |
2 files changed, 9 insertions, 2 deletions
diff --git a/xbmc/platform/android/peripherals/PeripheralBusAndroid.cpp b/xbmc/platform/android/peripherals/PeripheralBusAndroid.cpp index f8282eeb55..a785c9043b 100644 --- a/xbmc/platform/android/peripherals/PeripheralBusAndroid.cpp +++ b/xbmc/platform/android/peripherals/PeripheralBusAndroid.cpp @@ -112,6 +112,8 @@ bool CPeripheralBusAndroid::InitializeProperties(CPeripheral& peripheral) joystick.SetButtonCount(state.GetButtonCount()); joystick.SetAxisCount(state.GetAxisCount()); + std::unique_lock<CCriticalSection> lock(m_critSectionStates); + // remember the joystick state m_joystickStates.insert(std::make_pair(deviceId, std::move(state))); @@ -134,6 +136,8 @@ bool CPeripheralBusAndroid::InitializeButtonMap(const CPeripheral& peripheral, return false; } + std::unique_lock<CCriticalSection> lock(m_critSectionStates); + // get the joystick state auto it = m_joystickStates.find(deviceId); if (it == m_joystickStates.end()) @@ -325,7 +329,10 @@ void CPeripheralBusAndroid::OnInputDeviceRemoved(int deviceId) if (removed) { - m_joystickStates.erase(deviceId); + { + std::unique_lock<CCriticalSection> lock(m_critSectionStates); + m_joystickStates.erase(deviceId); + } OnDeviceRemoved(deviceLocation); } diff --git a/xbmc/platform/android/peripherals/PeripheralBusAndroid.h b/xbmc/platform/android/peripherals/PeripheralBusAndroid.h index 5ee9480970..59bc261e54 100644 --- a/xbmc/platform/android/peripherals/PeripheralBusAndroid.h +++ b/xbmc/platform/android/peripherals/PeripheralBusAndroid.h @@ -66,7 +66,7 @@ private: mutable std::map<int, CAndroidJoystickState> m_joystickStates; PeripheralScanResults m_scanResults; - CCriticalSection m_critSectionStates; + mutable CCriticalSection m_critSectionStates; CCriticalSection m_critSectionResults; }; using PeripheralBusAndroidPtr = std::shared_ptr<CPeripheralBusAndroid>; |