From e5ba4e0c350ae72296325c15ff90ea68dd6f159b Mon Sep 17 00:00:00 2001 From: lovechinamo Date: Wed, 27 Apr 2022 15:50:51 +0800 Subject: [PATCH] Signed-off-by: lovechinamo Changes to be committed: --- services/src/input_method_system_ability.cpp | 22 +++++++++++++++++--- services/src/peruser_session.cpp | 4 ++-- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/services/src/input_method_system_ability.cpp b/services/src/input_method_system_ability.cpp index 8b3fb7b..5035858 100644 --- a/services/src/input_method_system_ability.cpp +++ b/services/src/input_method_system_ability.cpp @@ -294,7 +294,12 @@ namespace MiscServices { IMSA_HILOGE("%s %d\n", ErrorCode::ToString(ErrorCode::ERROR_USER_NOT_UNLOCKED), userId); return ErrorCode::ERROR_USER_NOT_UNLOCKED; } - retMode = GetUserSession(userId)->GetDisplayMode(); + PerUserSession *session = GetUserSession(userId); + if (session == nullptr) { + IMSA_HILOGI("InputMethodSystemAbility::getDisplayMode session is nullptr"); + return ErrorCode::ERROR_NULL_POINTER; + } + retMode = session->GetDisplayMode(); return ErrorCode::NO_ERROR; } @@ -314,7 +319,12 @@ namespace MiscServices { return ErrorCode::ERROR_USER_NOT_UNLOCKED; } - int32_t ret = GetUserSession(userId)->GetKeyboardWindowHeight(retHeight); + PerUserSession *session = GetUserSession(userId); + if (session == nullptr) { + IMSA_HILOGI("InputMethodSystemAbility::getKeyboardWindowHeight session is nullptr"); + return ErrorCode::ERROR_NULL_POINTER; + } + int32_t ret = session->GetKeyboardWindowHeight(retHeight); if (ret != ErrorCode::NO_ERROR) { IMSA_HILOGE("Failed to get keyboard window height. ErrorCode=%d\n", ret); } @@ -769,6 +779,12 @@ namespace MiscServices { InputMethodProperty *securityIme = setting->GetSecurityInputMethod(); InputMethodProperty *defaultIme = setting->GetCurrentInputMethod(); GetUserSession(userId)->ResetIme(defaultIme, securityIme); + PerUserSession *session = GetUserSession(userId); + if (session == nullptr) { + IMSA_HILOGI("InputMethodSystemAbility::OnPackageAdded session is nullptr"); + return ErrorCode::ERROR_NULL_POINTER; + } + session->ResetIme(defaultIme, securityIme); } IMSA_HILOGI("End...\n"); return 0; @@ -817,7 +833,7 @@ namespace MiscServices { if (securityImeFlag) { InputMethodProperty *securityIme = setting->GetSecurityInputMethod(); InputMethodProperty *defaultIme = setting->GetCurrentInputMethod(); - GetUserSession(userId)->ResetIme(defaultIme, securityIme); + session->ResetIme(defaultIme, securityIme); } return 0; } diff --git a/services/src/peruser_session.cpp b/services/src/peruser_session.cpp index 00f6929..14a2822 100644 --- a/services/src/peruser_session.cpp +++ b/services/src/peruser_session.cpp @@ -447,12 +447,12 @@ namespace MiscServices { IMSA_HILOGD("unbindInputMethodService...\n"); - IMSA_HILOGD("destroyWindowToken...\n"); + IMSA_HILOGD("destroyWindowTaskId...\n"); int errorCode = ErrorCode::NO_ERROR; int ret = Platform::Instance()->DestroyWindowToken(userId_, currentIme[index]->mPackageName); inputMethodToken[index] = nullptr; if (ret != ErrorCode::NO_ERROR) { - IMSA_HILOGE("destroyWindowToken return : %{public}s [%{public}d]\n", ErrorCode::ToString(ret), userId_); + IMSA_HILOGE("destroyWindowTaskId return : %{public}s [%{public}d]\n", ErrorCode::ToString(ret), userId_); errorCode = ErrorCode::ERROR_TOKEN_DESTROY_FAILED; } sptr b = imsCore[index]->AsObject();