diff --git a/interfaces/ipc/src/dinput_sa_manager.cpp b/interfaces/ipc/src/dinput_sa_manager.cpp index fd2c5fa..0962957 100644 --- a/interfaces/ipc/src/dinput_sa_manager.cpp +++ b/interfaces/ipc/src/dinput_sa_manager.cpp @@ -320,19 +320,25 @@ int32_t DInputSAManager::RestoreRegisterListenerAndCallback() void DInputSAManager::AddSimEventListenerToCache(sptr listener) { std::lock_guard simEventListenerLock(simEventListenerCacheMtx_); + if (listener != nullptr) { simEventListenerCache_.insert(listener); + } } void DInputSAManager::RemoveSimEventListenerFromCache(sptr listener) { std::lock_guard simEventListenerLock(simEventListenerCacheMtx_); + if (listener != nullptr) { simEventListenerCache_.erase(listener); + } } void DInputSAManager::AddSessionStateCbToCache(sptr callback) { std::lock_guard sessionStateCbLock(sessionStateCbCacheMtx_); + if (callback != nullptr) { sessionStateCbCache_.insert(callback); + } } void DInputSAManager::RemoveSessionStateCbFromCache()