nothrow对应

Signed-off-by: Mupceet <laiguizhong@huawei.com>
This commit is contained in:
Mupceet 2022-06-24 17:32:53 +08:00
parent 4a66f93854
commit 77e0446c0e
22 changed files with 489 additions and 135 deletions

View File

@ -60,7 +60,12 @@ bool AccessibleAbilityChannelClient::FindFocusedElementInfo(int32_t accessibilit
}
int32_t requestId = GenrateRequestId();
sptr<AccessibilityElementOperatorCallbackImpl> elementOperator = new AccessibilityElementOperatorCallbackImpl();
sptr<AccessibilityElementOperatorCallbackImpl> elementOperator =
new(std::nothrow) AccessibilityElementOperatorCallbackImpl();
if (!elementOperator) {
HILOG_ERROR("Failed to create elementOperator.");
return false;
}
std::future<void> promiseFutrue = elementOperator->promise_.get_future();
if (!proxy_->FindFocusedElementInfo(accessibilityWindowId, elementId, focusType, requestId, elementOperator)) {
@ -110,7 +115,12 @@ bool AccessibleAbilityChannelClient::ExecuteAction(int32_t accessibilityWindowId
}
int32_t requestId = GenrateRequestId();
sptr<AccessibilityElementOperatorCallbackImpl> elementOperator = new AccessibilityElementOperatorCallbackImpl();
sptr<AccessibilityElementOperatorCallbackImpl> elementOperator =
new(std::nothrow) AccessibilityElementOperatorCallbackImpl();
if (!elementOperator) {
HILOG_ERROR("Failed to create elementOperator.");
return false;
}
std::future<void> promiseFutrue = elementOperator->promise_.get_future();
if (!proxy_->ExecuteAction(accessibilityWindowId, elementId, action, actionArguments, requestId, elementOperator)) {
@ -137,7 +147,12 @@ bool AccessibleAbilityChannelClient::SearchElementInfosByAccessibilityId(int32_t
}
int32_t requestId = GenrateRequestId();
sptr<AccessibilityElementOperatorCallbackImpl> elementOperator = new AccessibilityElementOperatorCallbackImpl();
sptr<AccessibilityElementOperatorCallbackImpl> elementOperator =
new(std::nothrow) AccessibilityElementOperatorCallbackImpl();
if (!elementOperator) {
HILOG_ERROR("Failed to create elementOperator.");
return false;
}
std::future<void> promiseFutrue = elementOperator->promise_.get_future();
if (!proxy_->SearchElementInfoByAccessibilityId(accessibilityWindowId, elementId, requestId,
@ -215,7 +230,12 @@ bool AccessibleAbilityChannelClient::SearchElementInfosByText(int32_t accessibil
}
int32_t requestId = GenrateRequestId();
sptr<AccessibilityElementOperatorCallbackImpl> elementOperator = new AccessibilityElementOperatorCallbackImpl();
sptr<AccessibilityElementOperatorCallbackImpl> elementOperator =
new(std::nothrow) AccessibilityElementOperatorCallbackImpl();
if (!elementOperator) {
HILOG_ERROR("Failed to create elementOperator.");
return false;
}
std::future<void> promiseFutrue = elementOperator->promise_.get_future();
if (!proxy_->SearchElementInfosByText(accessibilityWindowId, elementId, text, requestId, elementOperator)) {
@ -250,7 +270,12 @@ bool AccessibleAbilityChannelClient::FocusMoveSearch(int32_t accessibilityWindow
}
int32_t requestId = GenrateRequestId();
sptr<AccessibilityElementOperatorCallbackImpl> elementOperator = new AccessibilityElementOperatorCallbackImpl();
sptr<AccessibilityElementOperatorCallbackImpl> elementOperator =
new(std::nothrow) AccessibilityElementOperatorCallbackImpl();
if (!elementOperator) {
HILOG_ERROR("Failed to create elementOperator.");
return false;
}
std::future<void> promiseFutrue = elementOperator->promise_.get_future();
if (!proxy_->FocusMoveSearch(accessibilityWindowId, elementId, direction, requestId, elementOperator)) {

View File

@ -34,7 +34,7 @@ sptr<AccessibleAbilityClient> AccessibleAbilityClient::GetInstance()
HILOG_DEBUG();
std::lock_guard<std::mutex> lock(g_Mutex);
if (!g_Instance) {
g_Instance = new AccessibleAbilityClientImpl();
g_Instance = new(std::nothrow) AccessibleAbilityClientImpl();
}
return g_Instance;
}
@ -103,7 +103,12 @@ void AccessibleAbilityClientImpl::Init(const sptr<IAccessibleAbilityChannel> &ch
// Add death recipient
if (!deathRecipient_) {
deathRecipient_ = new AccessibleAbilityDeathRecipient(*this);
deathRecipient_ = new(std::nothrow) AccessibleAbilityDeathRecipient(*this);
}
if (!deathRecipient_) {
HILOG_ERROR("Failed to create deathRecipient.");
return;
}
auto object = channelClient_->GetRemote();

View File

@ -70,8 +70,10 @@ bool AccessibilitySystemAbilityClientImpl::ConnectToService()
return false;
}
deathRecipient_ = new(std::nothrow) DeathRecipient(*this);
if (!deathRecipient_) {
deathRecipient_ = new DeathRecipient(*this);
HILOG_ERROR("Failed to create deathRecipient.");
return false;
}
if ((object->IsProxyObject()) && (!object->AddDeathRecipient(deathRecipient_))) {
@ -92,7 +94,11 @@ void AccessibilitySystemAbilityClientImpl::Init()
{
HILOG_DEBUG();
stateArray_.fill(false);
stateObserver_ = new AccessibleAbilityManagerStateObserverImpl(*this);
stateObserver_ = new(std::nothrow) AccessibleAbilityManagerStateObserverImpl(*this);
if (!stateObserver_) {
HILOG_ERROR("Failed to create stateObserver.");
return;
}
uint32_t stateType = serviceProxy_->RegisterStateObserver(stateObserver_);
if (stateType & STATE_ACCESSIBILITY_ENABLED) {
stateArray_[AccessibilityStateEventType::EVENT_ACCESSIBILITY_STATE_CHANGED] = true;
@ -143,7 +149,11 @@ int32_t AccessibilitySystemAbilityClientImpl::RegisterElementOperator(
}
sptr<AccessibilityElementOperatorImpl> aamsInteractionOperator =
new AccessibilityElementOperatorImpl(windowId, operation);
new(std::nothrow) AccessibilityElementOperatorImpl(windowId, operation);
if (!aamsInteractionOperator) {
HILOG_ERROR("Failed to create aamsInteractionOperator.");
return -1;
}
interactionOperators_[windowId] = aamsInteractionOperator;
serviceProxy_->RegisterElementOperator(windowId, aamsInteractionOperator);

View File

@ -646,13 +646,21 @@ void EnableAbilityListsObserver::OnEnableAbilityListsStateChanged()
HILOG_ERROR("callbackInfo is nullptr");
return;
}
uv_work_t *work = new(std::nothrow) uv_work_t;
if (!work) {
HILOG_ERROR("Failed to create work.");
delete callbackInfo;
callbackInfo = nullptr;
return;
}
callbackInfo->env_ = env_;
callbackInfo->ref_ = callback_;
work->data = static_cast<void*>(callbackInfo);
uv_loop_s *loop = nullptr;
napi_get_uv_event_loop(env_, &loop);
uv_work_t *work = new uv_work_t;
work->data = static_cast<AccessibilityCallbackInfo*>(callbackInfo);
uv_queue_work(
loop,
work,

View File

@ -41,8 +41,12 @@ static napi_value InitHighContrastText(napi_env env)
NAPI_CALL(env, napi_define_properties(env, highContrastTextValue,
sizeof(configDesc) / sizeof(configDesc[0]),
configDesc));
NAccessibilityConfigClass* nativeObj = new NAccessibilityConfigClass(
OHOS::AccessibilityConfig::CONFIG_HIGH_CONTRASTE_TEXT);
NAccessibilityConfigClass* nativeObj =
new(std::nothrow) NAccessibilityConfigClass(OHOS::AccessibilityConfig::CONFIG_HIGH_CONTRASTE_TEXT);
if (!nativeObj) {
HILOG_ERROR("Failed to create nativeObj.");
return nullptr;
}
nativeObj->SetEnv(env);
NAPI_CALL(env, napi_wrap(env, highContrastTextValue, reinterpret_cast<void*>(nativeObj),
NAccessibilityConfigClass::Destructor, nullptr, nativeObj->GetWrapper()));
@ -56,8 +60,12 @@ static napi_value InitInvertColor(napi_env env)
NAPI_CALL(env, napi_define_properties(env, invertColorValue,
sizeof(configDesc) / sizeof(configDesc[0]),
configDesc));
NAccessibilityConfigClass* nativeObj = new NAccessibilityConfigClass(
OHOS::AccessibilityConfig::CONFIG_INVERT_COLOR);
NAccessibilityConfigClass* nativeObj =
new(std::nothrow) NAccessibilityConfigClass(OHOS::AccessibilityConfig::CONFIG_INVERT_COLOR);
if (!nativeObj) {
HILOG_ERROR("Failed to create nativeObj.");
return nullptr;
}
nativeObj->SetEnv(env);
NAPI_CALL(env, napi_wrap(env, invertColorValue, reinterpret_cast<void*>(nativeObj),
NAccessibilityConfigClass::Destructor, nullptr, nativeObj->GetWrapper()));
@ -72,8 +80,12 @@ static napi_value InitDaltonizationColorFilter(napi_env env)
sizeof(configDesc) /
sizeof(configDesc[0]),
configDesc));
NAccessibilityConfigClass* nativeObj = new NAccessibilityConfigClass(
OHOS::AccessibilityConfig::CONFIG_DALTONIZATION_COLOR_FILTER);
NAccessibilityConfigClass* nativeObj =
new(std::nothrow) NAccessibilityConfigClass(OHOS::AccessibilityConfig::CONFIG_DALTONIZATION_COLOR_FILTER);
if (!nativeObj) {
HILOG_ERROR("Failed to create nativeObj.");
return nullptr;
}
nativeObj->SetEnv(env);
NAPI_CALL(env, napi_wrap(env, daltonizationColorFilterValue, reinterpret_cast<void*>(nativeObj),
NAccessibilityConfigClass::Destructor, nullptr, nativeObj->GetWrapper()));
@ -87,8 +99,12 @@ static napi_value InitContentTimeout(napi_env env)
NAPI_CALL(env, napi_define_properties(env, contentTimeoutValue,
sizeof(configDesc) / sizeof(configDesc[0]),
configDesc));
NAccessibilityConfigClass* nativeObj = new NAccessibilityConfigClass(
OHOS::AccessibilityConfig::CONFIG_CONTENT_TIMEOUT);
NAccessibilityConfigClass* nativeObj =
new(std::nothrow) NAccessibilityConfigClass(OHOS::AccessibilityConfig::CONFIG_CONTENT_TIMEOUT);
if (!nativeObj) {
HILOG_ERROR("Failed to create nativeObj.");
return nullptr;
}
nativeObj->SetEnv(env);
NAPI_CALL(env, napi_wrap(env, contentTimeoutValue, reinterpret_cast<void*>(nativeObj),
NAccessibilityConfigClass::Destructor, nullptr, nativeObj->GetWrapper()));
@ -102,8 +118,12 @@ static napi_value InitAnimationOff(napi_env env)
NAPI_CALL(env, napi_define_properties(env, animationOffValue,
sizeof(configDesc) / sizeof(configDesc[0]),
configDesc));
NAccessibilityConfigClass* nativeObj = new NAccessibilityConfigClass(
OHOS::AccessibilityConfig::CONFIG_ANIMATION_OFF);
NAccessibilityConfigClass* nativeObj =
new(std::nothrow) NAccessibilityConfigClass(OHOS::AccessibilityConfig::CONFIG_ANIMATION_OFF);
if (!nativeObj) {
HILOG_ERROR("Failed to create nativeObj.");
return nullptr;
}
nativeObj->SetEnv(env);
NAPI_CALL(env, napi_wrap(env, animationOffValue, reinterpret_cast<void*>(nativeObj),
NAccessibilityConfigClass::Destructor, nullptr, nativeObj->GetWrapper()));
@ -117,8 +137,12 @@ static napi_value InitBrightnessDiscount(napi_env env)
NAPI_CALL(env, napi_define_properties(env, brightnessDiscountValue,
sizeof(configDesc) / sizeof(configDesc[0]),
configDesc));
NAccessibilityConfigClass* nativeObj = new NAccessibilityConfigClass(
OHOS::AccessibilityConfig::CONFIG_BRIGHTNESS_DISCOUNT);
NAccessibilityConfigClass* nativeObj =
new(std::nothrow) NAccessibilityConfigClass(OHOS::AccessibilityConfig::CONFIG_BRIGHTNESS_DISCOUNT);
if (!nativeObj) {
HILOG_ERROR("Failed to create nativeObj.");
return nullptr;
}
nativeObj->SetEnv(env);
NAPI_CALL(env, napi_wrap(env, brightnessDiscountValue, reinterpret_cast<void*>(nativeObj),
NAccessibilityConfigClass::Destructor, nullptr, nativeObj->GetWrapper()));
@ -132,8 +156,12 @@ static napi_value InitScreenMagnifier(napi_env env)
NAPI_CALL(env, napi_define_properties(env, screenMagnifierValue,
sizeof(configDesc) / sizeof(configDesc[0]),
configDesc));
NAccessibilityConfigClass* nativeObj = new NAccessibilityConfigClass(
OHOS::AccessibilityConfig::CONFIG_SCREEN_MAGNIFICATION);
NAccessibilityConfigClass* nativeObj =
new(std::nothrow) NAccessibilityConfigClass(OHOS::AccessibilityConfig::CONFIG_SCREEN_MAGNIFICATION);
if (!nativeObj) {
HILOG_ERROR("Failed to create nativeObj.");
return nullptr;
}
nativeObj->SetEnv(env);
NAPI_CALL(env, napi_wrap(env, screenMagnifierValue, reinterpret_cast<void*>(nativeObj),
NAccessibilityConfigClass::Destructor, nullptr, nativeObj->GetWrapper()));
@ -147,8 +175,12 @@ static napi_value InitAudioMono(napi_env env)
NAPI_CALL(env, napi_define_properties(env, audioMonoValue,
sizeof(configDesc) / sizeof(configDesc[0]),
configDesc));
NAccessibilityConfigClass* nativeObj = new NAccessibilityConfigClass(
OHOS::AccessibilityConfig::CONFIG_AUDIO_MONO);
NAccessibilityConfigClass* nativeObj =
new(std::nothrow) NAccessibilityConfigClass(OHOS::AccessibilityConfig::CONFIG_AUDIO_MONO);
if (!nativeObj) {
HILOG_ERROR("Failed to create nativeObj.");
return nullptr;
}
nativeObj->SetEnv(env);
NAPI_CALL(env, napi_wrap(env, audioMonoValue, reinterpret_cast<void*>(nativeObj),
NAccessibilityConfigClass::Destructor, nullptr, nativeObj->GetWrapper()));
@ -162,8 +194,12 @@ static napi_value InitAudioBalance(napi_env env)
NAPI_CALL(env, napi_define_properties(env, audioBalanceValue,
sizeof(configDesc) / sizeof(configDesc[0]),
configDesc));
NAccessibilityConfigClass* nativeObj = new NAccessibilityConfigClass(
OHOS::AccessibilityConfig::CONFIG_AUDIO_BALANCE);
NAccessibilityConfigClass* nativeObj =
new(std::nothrow) NAccessibilityConfigClass(OHOS::AccessibilityConfig::CONFIG_AUDIO_BALANCE);
if (!nativeObj) {
HILOG_ERROR("Failed to create nativeObj.");
return nullptr;
}
nativeObj->SetEnv(env);
NAPI_CALL(env, napi_wrap(env, audioBalanceValue, reinterpret_cast<void*>(nativeObj),
NAccessibilityConfigClass::Destructor, nullptr, nativeObj->GetWrapper()));
@ -177,8 +213,12 @@ static napi_value InitMouseKey(napi_env env)
NAPI_CALL(env, napi_define_properties(env, mouseKeyValue,
sizeof(configDesc) / sizeof(configDesc[0]),
configDesc));
NAccessibilityConfigClass* nativeObj = new NAccessibilityConfigClass(
OHOS::AccessibilityConfig::CONFIG_MOUSE_KEY);
NAccessibilityConfigClass* nativeObj =
new(std::nothrow) NAccessibilityConfigClass(OHOS::AccessibilityConfig::CONFIG_MOUSE_KEY);
if (!nativeObj) {
HILOG_ERROR("Failed to create nativeObj.");
return nullptr;
}
nativeObj->SetEnv(env);
NAPI_CALL(env, napi_wrap(env, mouseKeyValue, reinterpret_cast<void*>(nativeObj),
NAccessibilityConfigClass::Destructor, nullptr, nativeObj->GetWrapper()));
@ -192,8 +232,12 @@ static napi_value InitMouseAutoClick(napi_env env)
NAPI_CALL(env, napi_define_properties(env, mouseAutoClickValue,
sizeof(configDesc) / sizeof(configDesc[0]),
configDesc));
NAccessibilityConfigClass* nativeObj = new NAccessibilityConfigClass(
OHOS::AccessibilityConfig::CONFIG_MOUSE_AUTOCLICK);
NAccessibilityConfigClass* nativeObj =
new(std::nothrow) NAccessibilityConfigClass(OHOS::AccessibilityConfig::CONFIG_MOUSE_AUTOCLICK);
if (!nativeObj) {
HILOG_ERROR("Failed to create nativeObj.");
return nullptr;
}
nativeObj->SetEnv(env);
NAPI_CALL(env, napi_wrap(env, mouseAutoClickValue, reinterpret_cast<void*>(nativeObj),
NAccessibilityConfigClass::Destructor, nullptr, nativeObj->GetWrapper()));
@ -207,8 +251,12 @@ static napi_value InitShortKey(napi_env env)
NAPI_CALL(env, napi_define_properties(env, shortKeyValue,
sizeof(configDesc) / sizeof(configDesc[0]),
configDesc));
NAccessibilityConfigClass* nativeObj = new NAccessibilityConfigClass(
OHOS::AccessibilityConfig::CONFIG_SHORT_KEY);
NAccessibilityConfigClass* nativeObj =
new(std::nothrow) NAccessibilityConfigClass(OHOS::AccessibilityConfig::CONFIG_SHORT_KEY);
if (!nativeObj) {
HILOG_ERROR("Failed to create nativeObj.");
return nullptr;
}
nativeObj->SetEnv(env);
NAPI_CALL(env, napi_wrap(env, shortKeyValue, reinterpret_cast<void*>(nativeObj),
NAccessibilityConfigClass::Destructor, nullptr, nativeObj->GetWrapper()));
@ -222,8 +270,12 @@ static napi_value InitShortKeyTarget(napi_env env)
NAPI_CALL(env, napi_define_properties(env, shortKeyTargetValue,
sizeof(configDesc) / sizeof(configDesc[0]),
configDesc));
NAccessibilityConfigClass* nativeObj = new NAccessibilityConfigClass(
OHOS::AccessibilityConfig::CONFIG_SHORT_KEY_TARGET);
NAccessibilityConfigClass* nativeObj =
new(std::nothrow) NAccessibilityConfigClass(OHOS::AccessibilityConfig::CONFIG_SHORT_KEY_TARGET);
if (!nativeObj) {
HILOG_ERROR("Failed to create nativeObj.");
return nullptr;
}
nativeObj->SetEnv(env);
NAPI_CALL(env, napi_wrap(env, shortKeyTargetValue, reinterpret_cast<void*>(nativeObj),
NAccessibilityConfigClass::Destructor, nullptr, nativeObj->GetWrapper()));
@ -237,8 +289,12 @@ static napi_value InitCaptionState(napi_env env)
NAPI_CALL(env, napi_define_properties(env, captionValue,
sizeof(configDesc) / sizeof(configDesc[0]),
configDesc));
NAccessibilityConfigClass* nativeObj = new NAccessibilityConfigClass(
OHOS::AccessibilityConfig::CONFIG_CAPTION_STATE);
NAccessibilityConfigClass* nativeObj =
new(std::nothrow) NAccessibilityConfigClass(OHOS::AccessibilityConfig::CONFIG_CAPTION_STATE);
if (!nativeObj) {
HILOG_ERROR("Failed to create nativeObj.");
return nullptr;
}
nativeObj->SetEnv(env);
NAPI_CALL(env, napi_wrap(env, captionValue, reinterpret_cast<void*>(nativeObj),
NAccessibilityConfigClass::Destructor, nullptr, nativeObj->GetWrapper()));
@ -252,8 +308,12 @@ static napi_value InitCaptionStyle(napi_env env)
NAPI_CALL(env, napi_define_properties(env, captionStyleValue,
sizeof(configDesc) / sizeof(configDesc[0]),
configDesc));
NAccessibilityConfigClass* nativeObj = new NAccessibilityConfigClass(
OHOS::AccessibilityConfig::CONFIG_CAPTION_STYLE);
NAccessibilityConfigClass* nativeObj =
new(std::nothrow) NAccessibilityConfigClass(OHOS::AccessibilityConfig::CONFIG_CAPTION_STYLE);
if (!nativeObj) {
HILOG_ERROR("Failed to create nativeObj.");
return nullptr;
}
nativeObj->SetEnv(env);
NAPI_CALL(env, napi_wrap(env, captionStyleValue, reinterpret_cast<void*>(nativeObj),
NAccessibilityConfigClass::Destructor, nullptr, nativeObj->GetWrapper()));

View File

@ -26,7 +26,7 @@ AbilityRuntime::Extension *AccessibilityExtensionModuleLoader::Create(
const std::unique_ptr<AbilityRuntime::Runtime>& runtime) const
{
if (!runtime) {
return new AccessibilityExtension();
return new(std::nothrow) AccessibilityExtension();
}
HILOG_INFO("AccessibilityExtension::Create runtime");
switch (runtime->GetLanguage()) {
@ -34,7 +34,7 @@ AbilityRuntime::Extension *AccessibilityExtensionModuleLoader::Create(
return NAccessibilityExtension::Create(runtime);
default:
return new AccessibilityExtension();
return new(std::nothrow) AccessibilityExtension();
}
}

View File

@ -76,7 +76,11 @@ void NAccessibilityElement::ConvertElementInfoToJS(napi_env env, napi_value resu
// Bind js object to a Native object
std::shared_ptr<AccessibilityElementInfo> elementInformation =
std::make_shared<AccessibilityElementInfo>(elementInfo);
AccessibilityElement* pAccessibilityElement = new AccessibilityElement(elementInformation);
AccessibilityElement* pAccessibilityElement = new(std::nothrow) AccessibilityElement(elementInformation);
if (!pAccessibilityElement) {
HILOG_ERROR("Failed to create elementInformation.");
return;
}
napi_status sts = napi_wrap(
env,
result,
@ -115,11 +119,15 @@ napi_value NAccessibilityElement::AttributeNames(napi_env env, napi_callback_inf
size_t argc = ARGS_SIZE_ZERO;
napi_value argv, thisVar;
void* data = nullptr;
NAccessibilityElementData *callbackInfo = new(std::nothrow) NAccessibilityElementData();
if (!callbackInfo) {
HILOG_ERROR("Failed to create callbackInfo.");
return nullptr;
}
callbackInfo->env_ = env;
NAPI_CALL(env, napi_get_cb_info(env, info, &argc, &argv, &thisVar, &data));
HILOG_DEBUG("argc = %{public}d", (int)argc);
NAccessibilityElementData *callbackInfo = new NAccessibilityElementData();
callbackInfo->env_ = env;
AccessibilityElement* accessibilityElement = nullptr;
napi_status status = napi_unwrap(env, thisVar, (void**)&accessibilityElement);
if (!accessibilityElement || status != napi_ok) {
@ -177,7 +185,11 @@ napi_value NAccessibilityElement::AttributeValue(napi_env env, napi_callback_inf
napi_value argv[ARGS_SIZE_ONE] = {0};
napi_value thisVar;
void* data = nullptr;
NAccessibilityElementData *callbackInfo = new NAccessibilityElementData();
NAccessibilityElementData *callbackInfo = new(std::nothrow) NAccessibilityElementData();
if (!callbackInfo) {
HILOG_ERROR("Failed to create callbackInfo.");
return nullptr;
}
callbackInfo->env_ = env;
NAPI_CALL(env, napi_get_cb_info(env, info, &argc, argv, &thisVar, &data));
HILOG_DEBUG("argc = %{public}d", (int)argc);
@ -230,11 +242,15 @@ napi_value NAccessibilityElement::ActionNames(napi_env env, napi_callback_info i
size_t argc = ARGS_SIZE_ZERO;
napi_value argv, thisVar;
void* data = nullptr;
NAccessibilityElementData *callbackInfo = new(std::nothrow) NAccessibilityElementData();
if (!callbackInfo) {
HILOG_ERROR("Failed to create callbackInfo.");
return nullptr;
}
callbackInfo->env_ = env;
NAPI_CALL(env, napi_get_cb_info(env, info, &argc, &argv, &thisVar, &data));
HILOG_DEBUG("argc = %{public}zu", argc);
NAccessibilityElementData *callbackInfo = new NAccessibilityElementData();
callbackInfo->env_ = env;
AccessibilityElement* accessibilityElement = nullptr;
napi_status status = napi_unwrap(env, thisVar, (void**)&accessibilityElement);
if (!accessibilityElement || status != napi_ok) {
@ -314,7 +330,11 @@ napi_value NAccessibilityElement::PerformAction(napi_env env, napi_callback_info
napi_value argv[ARGS_SIZE_TWO] = {0};
napi_value thisVar;
void* data = nullptr;
NAccessibilityElementData *callbackInfo = new NAccessibilityElementData();
NAccessibilityElementData *callbackInfo = new(std::nothrow) NAccessibilityElementData();
if (!callbackInfo) {
HILOG_ERROR("Failed to create callbackInfo.");
return nullptr;
}
callbackInfo->env_ = env;
NAPI_CALL(env, napi_get_cb_info(env, info, &argc, argv, &thisVar, &data));
HILOG_DEBUG("argc = %{public}zu", argc);
@ -398,7 +418,11 @@ napi_value NAccessibilityElement::FindElement(napi_env env, napi_callback_info i
napi_value argv[ARGS_SIZE_TWO] = {0};
napi_value thisVar;
void* data = nullptr;
NAccessibilityElementData *callbackInfo = new NAccessibilityElementData();
NAccessibilityElementData *callbackInfo = new(std::nothrow) NAccessibilityElementData();
if (!callbackInfo) {
HILOG_ERROR("Failed to create callbackInfo.");
return nullptr;
}
callbackInfo->env_ = env;
NAPI_CALL(env, napi_get_cb_info(env, info, &argc, argv, &thisVar, &data));
HILOG_DEBUG("argc = %{public}d", (int)argc);

View File

@ -38,7 +38,7 @@ namespace {
NAccessibilityExtension* NAccessibilityExtension::Create(const std::unique_ptr<AbilityRuntime::Runtime>& runtime)
{
HILOG_INFO();
return new NAccessibilityExtension(static_cast<AbilityRuntime::JsRuntime&>(*runtime));
return new(std::nothrow) NAccessibilityExtension(static_cast<AbilityRuntime::JsRuntime&>(*runtime));
}
NAccessibilityExtension::NAccessibilityExtension(AbilityRuntime::JsRuntime& jsRuntime) : jsRuntime_(jsRuntime)
@ -127,9 +127,19 @@ void NAccessibilityExtension::OnAbilityConnected()
{
HILOG_INFO();
uv_loop_t *loop = engine_->GetUVLoop();
uv_work_t *work = new uv_work_t;
ExtensionCallbackInfo *callbackInfo = new ExtensionCallbackInfo();
ExtensionCallbackInfo *callbackInfo = new(std::nothrow) ExtensionCallbackInfo();
if (!callbackInfo) {
HILOG_ERROR("Failed to create callbackInfo.");
return;
}
callbackInfo->extension_ = this;
uv_work_t *work = new(std::nothrow) uv_work_t;
if (!work) {
HILOG_ERROR("Failed to create data.");
delete callbackInfo;
callbackInfo = nullptr;
return;
}
work->data = callbackInfo;
uv_queue_work(
@ -151,9 +161,19 @@ void NAccessibilityExtension::OnAbilityDisconnected()
{
HILOG_INFO();
uv_loop_t *loop = engine_->GetUVLoop();
uv_work_t *work = new uv_work_t;
ExtensionCallbackInfo *callbackInfo = new ExtensionCallbackInfo();
ExtensionCallbackInfo *callbackInfo = new(std::nothrow) ExtensionCallbackInfo();
if (!callbackInfo) {
HILOG_ERROR("Failed to create callbackInfo.");
return;
}
callbackInfo->extension_ = this;
uv_work_t *work = new(std::nothrow) uv_work_t;
if (!work) {
HILOG_ERROR("Failed to create data.");
delete callbackInfo;
callbackInfo = nullptr;
return;
}
work->data = callbackInfo;
uv_queue_work(
@ -234,7 +254,11 @@ void ConvertAccessibilityEventInfoToJS(napi_env env, napi_value objEventInfo, co
HILOG_DEBUG("eventType[%{public}s]", strType.c_str());
if (element) {
AccessibilityElement* pAccessibilityElement = new AccessibilityElement(*element);
AccessibilityElement* pAccessibilityElement = new(std::nothrow) AccessibilityElement(*element);
if (!pAccessibilityElement) {
HILOG_ERROR("Failed to create AccessibilityElement.");
return;
}
napi_value nTargetObject = nullptr;
napi_value constructor = nullptr;
napi_get_reference_value(env, NAccessibilityElement::consRef_, &constructor);
@ -272,12 +296,22 @@ void NAccessibilityExtension::OnAccessibilityEvent(const AccessibilityEventInfo&
{
HILOG_INFO();
uv_loop_t *loop = engine_->GetUVLoop();
uv_work_t *work = new uv_work_t;
AccessibilityEventInfoCallbackInfo *callbackInfo = new AccessibilityEventInfoCallbackInfo();
AccessibilityEventInfoCallbackInfo *callbackInfo = new(std::nothrow) AccessibilityEventInfoCallbackInfo();
if (!callbackInfo) {
HILOG_ERROR("Failed to create callbackInfo.");
return;
}
callbackInfo->engine_ = engine_;
callbackInfo->extension_ = this;
callbackInfo->eventInfo_ = eventInfo;
callbackInfo->element_ = GetElement(eventInfo);
uv_work_t *work = new(std::nothrow) uv_work_t;
if (!work) {
HILOG_ERROR("Failed to create data.");
delete callbackInfo;
callbackInfo = nullptr;
return;
}
work->data = callbackInfo;
uv_queue_work(
@ -305,11 +339,21 @@ bool NAccessibilityExtension::OnKeyPressEvent(const std::shared_ptr<MMI::KeyEven
{
HILOG_INFO();
uv_loop_t *loop = engine_->GetUVLoop();
uv_work_t *work = new uv_work_t;
KeyEventCallbackInfo *callbackInfo = new KeyEventCallbackInfo();
KeyEventCallbackInfo *callbackInfo = new(std::nothrow) KeyEventCallbackInfo();
if (!callbackInfo) {
HILOG_ERROR("Failed to create callbackInfo.");
return false;
}
callbackInfo->engine_ = engine_;
callbackInfo->keyEvent_ = MMI::KeyEvent::Clone(keyEvent);
callbackInfo->extension_ = this;
uv_work_t *work = new(std::nothrow) uv_work_t;
if (!work) {
HILOG_ERROR("Failed to create data.");
delete callbackInfo;
callbackInfo = nullptr;
return false;
}
work->data = callbackInfo;
std::future syncFuture = callbackInfo->syncPromise_.get_future();

View File

@ -38,7 +38,12 @@ static void ConvertAccessibilityWindowInfoToJS(
// Bind js object to a Native object
std::shared_ptr<AccessibilityWindowInfo> windowInfo =
std::make_shared<AccessibilityWindowInfo>(accessibilityWindowInfo);
AccessibilityElement* pAccessibilityElement = new AccessibilityElement(windowInfo);
AccessibilityElement* pAccessibilityElement = new(std::nothrow) AccessibilityElement(windowInfo);
if (!pAccessibilityElement) {
HILOG_ERROR("Failed to create work.");
return;
}
napi_status sts = napi_wrap(
env,
result,
@ -641,15 +646,26 @@ void NAccessibilityGestureResultListener::OnGestureInjectResult(uint32_t sequenc
return;
}
StateCallbackInfo *data = new StateCallbackInfo();
StateCallbackInfo *data = new(std::nothrow) StateCallbackInfo();
if (!data) {
HILOG_ERROR("Failed to create data.");
return;
}
uv_work_t *work = new(std::nothrow) uv_work_t;
if (!work) {
HILOG_ERROR("Failed to create work.");
delete data;
data = nullptr;
return;
}
data->env_ = callbackInfo->env_;
data->state_ = result;
data->ref_ = callbackInfo->callback_;
uv_loop_s *loop = nullptr;
napi_get_uv_event_loop(callbackInfo->env_, &loop);
uv_work_t *work = new uv_work_t;
work->data = data;
uv_loop_s *loop = nullptr;
napi_get_uv_event_loop(callbackInfo->env_, &loop);
uv_queue_work(
loop,
work,

View File

@ -44,15 +44,25 @@ void NAccessibilityConfigObserver::NotifyStateChangedJS(napi_env env, bool enabl
{
HILOG_INFO("id = [%{public}d] enabled = [%{public}s]", static_cast<int32_t>(id), enabled ? "true" : "false");
StateCallbackInfo *callbackInfo = new StateCallbackInfo();
StateCallbackInfo *callbackInfo = new(std::nothrow) StateCallbackInfo();
if (!callbackInfo) {
HILOG_ERROR("Failed to create callbackInfo.");
return;
}
callbackInfo->state_ = enabled;
callbackInfo->env_ = env;
callbackInfo->ref_ = handlerRef;
uv_work_t *work = new(std::nothrow) uv_work_t;
if (!work) {
HILOG_ERROR("Failed to create work.");
delete callbackInfo;
callbackInfo = nullptr;
return;
}
work->data = static_cast<void*>(callbackInfo);
uv_loop_s *loop = nullptr;
napi_get_uv_event_loop(env, &loop);
uv_work_t *work = new uv_work_t;
work->data = static_cast<StateCallbackInfo*>(callbackInfo);
uv_queue_work(
loop,
work,
@ -126,15 +136,25 @@ void NAccessibilityConfigObserver::NotifyPropertyChangedJS(napi_env env,
{
HILOG_INFO("id = [%{public}d]", static_cast<int32_t>(id));
CaptionCallbackInfo *callbackInfo = new CaptionCallbackInfo();
CaptionCallbackInfo *callbackInfo = new(std::nothrow) CaptionCallbackInfo();
if (!callbackInfo) {
HILOG_ERROR("Failed to create callbackInfo.");
return;
}
callbackInfo->caption_ = caption;
callbackInfo->env_ = env;
callbackInfo->ref_ = handlerRef;
uv_work_t *work = new(std::nothrow) uv_work_t;
if (!work) {
HILOG_ERROR("Failed to create work.");
delete callbackInfo;
callbackInfo = nullptr;
return;
}
work->data = static_cast<void*>(callbackInfo);
uv_loop_s *loop = nullptr;
napi_get_uv_event_loop(env, &loop);
uv_work_t *work = new uv_work_t;
work->data = static_cast<CaptionCallbackInfo*>(callbackInfo);
uv_queue_work(
loop,
work,
@ -208,15 +228,25 @@ void NAccessibilityConfigObserver::NotifyStringChanged2JSInner(
{
HILOG_INFO("id = [%{public}d] value = [%{public}s]", static_cast<int32_t>(id), value.c_str());
StateCallbackInfo *callbackInfo = new StateCallbackInfo();
StateCallbackInfo *callbackInfo = new(std::nothrow) StateCallbackInfo();
if (!callbackInfo) {
HILOG_ERROR("Failed to create callbackInfo.");
return;
}
callbackInfo->stringValue_ = value;
callbackInfo->env_ = env;
callbackInfo->ref_ = handlerRef;
uv_work_t *work = new(std::nothrow) uv_work_t;
if (!work) {
HILOG_ERROR("Failed to create work.");
delete callbackInfo;
callbackInfo = nullptr;
return;
}
work->data = static_cast<void*>(callbackInfo);
uv_loop_s *loop = nullptr;
napi_get_uv_event_loop(env, &loop);
uv_work_t *work = new uv_work_t;
work->data = static_cast<StateCallbackInfo*>(callbackInfo);
uv_queue_work(
loop,
work,
@ -252,15 +282,25 @@ void NAccessibilityConfigObserver::NotifyIntChanged2JSInner(
{
HILOG_INFO("id = [%{public}d] value = [%{public}d]", static_cast<int32_t>(id), value);
StateCallbackInfo *callbackInfo = new StateCallbackInfo();
StateCallbackInfo *callbackInfo = new(std::nothrow) StateCallbackInfo();
if (!callbackInfo) {
HILOG_ERROR("Failed to create callbackInfo.");
return;
}
callbackInfo->int32Value_ = value;
callbackInfo->env_ = env;
callbackInfo->ref_ = handlerRef;
uv_work_t *work = new(std::nothrow) uv_work_t;
if (!work) {
HILOG_ERROR("Failed to create work.");
delete callbackInfo;
callbackInfo = nullptr;
return;
}
work->data = static_cast<void*>(callbackInfo);
uv_loop_s *loop = nullptr;
napi_get_uv_event_loop(env, &loop);
uv_work_t *work = new uv_work_t;
work->data = static_cast<StateCallbackInfo*>(callbackInfo);
uv_queue_work(
loop,
work,
@ -291,15 +331,25 @@ void NAccessibilityConfigObserver::NotifyUintChanged2JSInner(
{
HILOG_INFO("id = [%{public}d] value = [%{public}u]", static_cast<int32_t>(id), value);
StateCallbackInfo *callbackInfo = new StateCallbackInfo();
StateCallbackInfo *callbackInfo = new(std::nothrow) StateCallbackInfo();
if (!callbackInfo) {
HILOG_ERROR("Failed to create callbackInfo.");
return;
}
callbackInfo->uint32Value_ = value;
callbackInfo->env_ = env;
callbackInfo->ref_ = handlerRef;
uv_work_t *work = new(std::nothrow) uv_work_t;
if (!work) {
HILOG_ERROR("Failed to create work.");
delete callbackInfo;
callbackInfo = nullptr;
return;
}
work->data = static_cast<void*>(callbackInfo);
uv_loop_s *loop = nullptr;
napi_get_uv_event_loop(env, &loop);
uv_work_t *work = new uv_work_t;
work->data = static_cast<StateCallbackInfo*>(callbackInfo);
uv_queue_work(
loop,
work,
@ -330,15 +380,25 @@ void NAccessibilityConfigObserver::NotifyFloatChanged2JSInner(
{
HILOG_INFO("id = [%{public}d] value = [%{public}f]", static_cast<int32_t>(id), value);
StateCallbackInfo *callbackInfo = new StateCallbackInfo();
StateCallbackInfo *callbackInfo = new(std::nothrow) StateCallbackInfo();
if (!callbackInfo) {
HILOG_ERROR("Failed to create callbackInfo.");
return;
}
callbackInfo->floatValue_ = value;
callbackInfo->env_ = env;
callbackInfo->ref_ = handlerRef;
uv_work_t *work = new(std::nothrow) uv_work_t;
if (!work) {
HILOG_ERROR("Failed to create work.");
delete callbackInfo;
callbackInfo = nullptr;
return;
}
work->data = static_cast<void*>(callbackInfo);
uv_loop_s *loop = nullptr;
napi_get_uv_event_loop(env, &loop);
uv_work_t *work = new uv_work_t;
work->data = static_cast<StateCallbackInfo*>(callbackInfo);
uv_queue_work(
loop,
work,

View File

@ -34,10 +34,14 @@ napi_value NAccessibilityClient::IsOpenAccessibility(napi_env env, napi_callback
HILOG_INFO();
size_t argc = ARGS_SIZE_ONE;
napi_value argv;
NAccessibilitySystemAbilityClient* callbackInfo = new(std::nothrow) NAccessibilitySystemAbilityClient();
if (!callbackInfo) {
HILOG_ERROR("Failed to create callbackInfo.");
return nullptr;
}
napi_get_cb_info(env, info, &argc, &argv, nullptr, nullptr);
napi_value promise = nullptr;
NAccessibilitySystemAbilityClient* callbackInfo = new NAccessibilitySystemAbilityClient();
if (argc > 0) {
HILOG_DEBUG("IsOpenAccessibility callback mode");
napi_create_reference(env, argv, 1, &callbackInfo->callback_);
@ -91,12 +95,16 @@ napi_value NAccessibilityClient::IsOpenAccessibility(napi_env env, napi_callback
napi_value NAccessibilityClient::IsOpenTouchExploration(napi_env env, napi_callback_info info)
{
HILOG_INFO();
NAccessibilitySystemAbilityClient* callbackInfo = new(std::nothrow) NAccessibilitySystemAbilityClient();
if (!callbackInfo) {
HILOG_ERROR("Failed to create callbackInfo.");
return nullptr;
}
size_t argc = ARGS_SIZE_ONE;
napi_value argv;
napi_get_cb_info(env, info, &argc, &argv, nullptr, nullptr);
napi_value promise = nullptr;
NAccessibilitySystemAbilityClient* callbackInfo = new NAccessibilitySystemAbilityClient();
if (argc > 0) {
HILOG_DEBUG("IsOpenTouchExploration callback mode");
napi_create_reference(env, argv, 1, &callbackInfo->callback_);
@ -149,6 +157,12 @@ napi_value NAccessibilityClient::IsOpenTouchExploration(napi_env env, napi_callb
napi_value NAccessibilityClient::GetAbilityList(napi_env env, napi_callback_info info)
{
NAccessibilitySystemAbilityClient* callbackInfo = new(std::nothrow) NAccessibilitySystemAbilityClient();
if (!callbackInfo) {
HILOG_ERROR("Failed to create callbackInfo.");
return nullptr;
}
size_t argc = 3;
napi_value parameters[3] = {0};
napi_get_cb_info(env, info, &argc, parameters, nullptr, nullptr);
@ -157,7 +171,6 @@ napi_value NAccessibilityClient::GetAbilityList(napi_env env, napi_callback_info
std::string stateTypes = GetStringFromNAPI(env, parameters[1]);
HILOG_INFO("abilityTypes[%{public}s] stateTypes[%{public}s]", abilityTypes.c_str(), stateTypes.c_str());
NAccessibilitySystemAbilityClient* callbackInfo = new NAccessibilitySystemAbilityClient();
callbackInfo->abilityTypes_ = ConvertStringToAccessibilityAbilityTypes(abilityTypes);
callbackInfo->stateTypes_ = ConvertStringToAbilityStateType(stateTypes);
@ -217,11 +230,15 @@ napi_value NAccessibilityClient::GetAbilityList(napi_env env, napi_callback_info
napi_value NAccessibilityClient::SendEvent(napi_env env, napi_callback_info info)
{
HILOG_INFO();
NAccessibilitySystemAbilityClient* callbackInfo = new(std::nothrow) NAccessibilitySystemAbilityClient();
if (!callbackInfo) {
HILOG_ERROR("Failed to create callbackInfo.");
return nullptr;
}
size_t argc = ARGS_SIZE_TWO;
napi_value parameters[ARGS_SIZE_TWO] = {0};
napi_get_cb_info(env, info, &argc, parameters, nullptr, nullptr);
NAccessibilitySystemAbilityClient* callbackInfo = new NAccessibilitySystemAbilityClient();
callbackInfo->result_ = ConvertEventInfoJSToNAPI(env, parameters[0], callbackInfo->eventInfo_);
napi_value promise = nullptr;
@ -382,15 +399,25 @@ void StateListener::NotifyJS(napi_env env, bool state, napi_ref handlerRef)
{
HILOG_INFO("state = [%{public}s]", state ? "true" : "false");
StateCallbackInfo *callbackInfo = new StateCallbackInfo();
StateCallbackInfo *callbackInfo = new(std::nothrow) StateCallbackInfo();
if (!callbackInfo) {
HILOG_ERROR("Failed to create callbackInfo.");
return;
}
callbackInfo->state_ = state;
callbackInfo->env_ = env;
callbackInfo->ref_ = handlerRef;
uv_work_t *work = new(std::nothrow) uv_work_t;
if (!work) {
HILOG_ERROR("Failed to create work.");
delete callbackInfo;
callbackInfo = nullptr;
return;
}
work->data = static_cast<void*>(callbackInfo);
uv_loop_s *loop = nullptr;
napi_get_uv_event_loop(env, &loop);
uv_work_t *work = new uv_work_t;
work->data = static_cast<StateCallbackInfo*>(callbackInfo);
uv_queue_work(
loop,
work,
@ -429,12 +456,14 @@ void StateListener::OnStateChanged(const bool state)
napi_value NAccessibilityClient::GetInstalled(napi_env env, napi_callback_info info)
{
HILOG_INFO();
NAccessibilitySystemAbilityClient* callbackInfo = new(std::nothrow) NAccessibilitySystemAbilityClient();
if (!callbackInfo) {
HILOG_ERROR("Failed to create callbackInfo.");
return nullptr;
}
size_t argc = ARGS_SIZE_ONE;
napi_value parameters[ARGS_SIZE_ONE] = {0};
napi_get_cb_info(env, info, &argc, parameters, nullptr, nullptr);
NAccessibilitySystemAbilityClient* callbackInfo = new NAccessibilitySystemAbilityClient();
napi_value promise = nullptr;
if (argc >= ARGS_SIZE_ONE) {

View File

@ -885,7 +885,11 @@ bool TouchGuider::ExecuteActionOnAccessibilityFocused(const ActionType &action)
}
uint32_t timeOut = 500;
sptr<ElementOperatorCallbackImpl> focusCallback = new ElementOperatorCallbackImpl();
sptr<ElementOperatorCallbackImpl> focusCallback = new(std::nothrow) ElementOperatorCallbackImpl();
if (!focusCallback) {
HILOG_ERROR("Failed to create focusCallback.");
return false;
}
std::future<void> focusFutrue = focusCallback->promise_.get_future();
connection->GetProxy()->FindFocusedElementInfo(elementId, focusType, 0, focusCallback);
std::future_status waitFocus = focusFutrue.wait_for(std::chrono::milliseconds(timeOut));
@ -896,7 +900,11 @@ bool TouchGuider::ExecuteActionOnAccessibilityFocused(const ActionType &action)
elementId = focusCallback->accessibilityInfoResult_.GetAccessibilityId();
std::map<std::string, std::string> actionArguments {};
sptr<ElementOperatorCallbackImpl> actionCallback = new ElementOperatorCallbackImpl();
sptr<ElementOperatorCallbackImpl> actionCallback = new(std::nothrow) ElementOperatorCallbackImpl();
if (!actionCallback) {
HILOG_ERROR("Failed to create actionCallback.");
return false;
}
std::future<void> actionFutrue = actionCallback->promise_.get_future();
connection->GetProxy()->ExecuteAction(elementId, action, actionArguments, 1, actionCallback);
std::future_status waitAction = actionFutrue.wait_for(std::chrono::milliseconds(timeOut));

View File

@ -74,8 +74,7 @@ ErrCode AccessibilityElementOperatorStub::HandleSearchElementInfoByAccessibility
int32_t requestId = data.ReadInt32();
sptr<IRemoteObject> remote = data.ReadRemoteObject();
sptr<IAccessibilityElementOperatorCallback> callback =
new AccessibilityElementOperatorCallbackProxy(remote);
sptr<IAccessibilityElementOperatorCallback> callback = iface_cast<IAccessibilityElementOperatorCallback>(remote);
int32_t mode = data.ReadInt32();
SearchElementInfoByAccessibilityId(elementId, requestId, callback, mode);
return NO_ERROR;
@ -91,8 +90,7 @@ ErrCode AccessibilityElementOperatorStub::HandleSearchElementInfosByText(Message
int32_t requestId = data.ReadInt32();
sptr<IRemoteObject> remote = data.ReadRemoteObject();
sptr<IAccessibilityElementOperatorCallback> callback =
new AccessibilityElementOperatorCallbackProxy(remote);
sptr<IAccessibilityElementOperatorCallback> callback = iface_cast<IAccessibilityElementOperatorCallback>(remote);
SearchElementInfosByText(elementId, text, requestId, callback);
return NO_ERROR;
}
@ -107,8 +105,7 @@ ErrCode AccessibilityElementOperatorStub::HandleFindFocusedElementInfo(MessagePa
int32_t requestId = data.ReadInt32();
sptr<IRemoteObject> remote = data.ReadRemoteObject();
sptr<IAccessibilityElementOperatorCallback> callback =
new AccessibilityElementOperatorCallbackProxy(remote);
sptr<IAccessibilityElementOperatorCallback> callback = iface_cast<IAccessibilityElementOperatorCallback>(remote);
FindFocusedElementInfo(elementId, focusType, requestId, callback);
return NO_ERROR;
}
@ -122,8 +119,7 @@ ErrCode AccessibilityElementOperatorStub::HandleFocusFind(MessageParcel &data, M
int32_t requestId = data.ReadInt32();
sptr<IRemoteObject> remote = data.ReadRemoteObject();
sptr<IAccessibilityElementOperatorCallback> callback =
new AccessibilityElementOperatorCallbackProxy(remote);
sptr<IAccessibilityElementOperatorCallback> callback = iface_cast<IAccessibilityElementOperatorCallback>(remote);
FocusMoveSearch(elementId, direction, requestId, callback);
return NO_ERROR;
}
@ -151,8 +147,7 @@ ErrCode AccessibilityElementOperatorStub::HandleExecuteAction(MessageParcel &dat
int32_t requestId = data.ReadInt32();
sptr<IRemoteObject> remote = data.ReadRemoteObject();
sptr<IAccessibilityElementOperatorCallback> callback =
new AccessibilityElementOperatorCallbackProxy(remote);
sptr<IAccessibilityElementOperatorCallback> callback = iface_cast<IAccessibilityElementOperatorCallback>(remote);
ExecuteAction(elementId, action, arguments, requestId, callback);
return NO_ERROR;
}

View File

@ -458,8 +458,13 @@ void AccessibleAbilityChannelProxy::SendSimulateGesture(const int32_t requestId,
HILOG_ERROR("requestId write error: %{public}d, ", requestId);
return;
}
sptr<AccessibilityGestureInjectPathParcel> path = new AccessibilityGestureInjectPathParcel(*gesturePath);
sptr<AccessibilityGestureInjectPathParcel> path =
new(std::nothrow) AccessibilityGestureInjectPathParcel(*gesturePath);
if (!path) {
HILOG_ERROR("Failed to create path.");
return;
}
if (!data.WriteStrongParcelable(path)) {
HILOG_ERROR("WriteStrongParcelable<AccessibilityGestureInjectPathParcel> failed");
return;

View File

@ -218,7 +218,11 @@ ErrCode AccessibleAbilityChannelStub::HandleGetWindow(MessageParcel &data, Messa
HILOG_DEBUG();
int32_t windowId = data.ReadInt32();
sptr<AccessibilityWindowInfoParcel> windowInfoParcel = new AccessibilityWindowInfoParcel();
sptr<AccessibilityWindowInfoParcel> windowInfoParcel = new(std::nothrow) AccessibilityWindowInfoParcel();
if (!windowInfoParcel) {
HILOG_ERROR("Failed to create windowInfoParcel.");
return ERR_NULL_OBJECT;
}
bool result = GetWindow(windowId, *windowInfoParcel);
if (!reply.WriteStrongParcelable(windowInfoParcel)) {
@ -240,7 +244,11 @@ ErrCode AccessibleAbilityChannelStub::HandleGetWindows(MessageParcel &data, Mess
return ERR_INVALID_VALUE;
}
for (auto &window : windows) {
sptr<AccessibilityWindowInfoParcel> windowInfo = new AccessibilityWindowInfoParcel(window);
sptr<AccessibilityWindowInfoParcel> windowInfo = new(std::nothrow) AccessibilityWindowInfoParcel(window);
if (!windowInfo) {
HILOG_ERROR("Failed to create windowInfo.");
return ERR_NULL_OBJECT;
}
if (!reply.WriteStrongParcelable(windowInfo)) {
HILOG_ERROR("WriteStrongParcelable windows failed");
return ERR_INVALID_VALUE;
@ -262,7 +270,11 @@ ErrCode AccessibleAbilityChannelStub::HandleGetWindowsByDisplayId(MessageParcel
return ERR_INVALID_VALUE;
}
for (auto &window : windows) {
sptr<AccessibilityWindowInfoParcel> windowInfo = new AccessibilityWindowInfoParcel(window);
sptr<AccessibilityWindowInfoParcel> windowInfo = new(std::nothrow) AccessibilityWindowInfoParcel(window);
if (!windowInfo) {
HILOG_ERROR("Failed to create windowInfo.");
return ERR_NULL_OBJECT;
}
if (!reply.WriteStrongParcelable(windowInfo)) {
HILOG_ERROR("WriteStrongParcelable windows failed");
return ERR_INVALID_VALUE;

View File

@ -202,8 +202,12 @@ ErrCode AccessibleAbilityManagerServiceStub::HandleGetAbilityList(MessageParcel
int32_t abilityInfoSize = static_cast<int32_t>(abilityInfos.size());
reply.WriteInt32(abilityInfoSize);
for (auto& abilityInfo : abilityInfos) {
sptr<AccessibilityAbilityInfoParcel> info = new AccessibilityAbilityInfoParcel(abilityInfo);
for (auto &abilityInfo : abilityInfos) {
sptr<AccessibilityAbilityInfoParcel> info = new(std::nothrow) AccessibilityAbilityInfoParcel(abilityInfo);
if (!info) {
HILOG_ERROR("Failed to create info.");
return ERR_NULL_OBJECT;
}
if (!reply.WriteStrongParcelable(info)) {
HILOG_ERROR("WriteStrongParcelable<AccessibilityAbilityInfoParcel> failed");
return TRANSACTION_ERR;
@ -373,7 +377,12 @@ ErrCode AccessibleAbilityManagerServiceStub::HandleGetInstalledAbilities(
reply.WriteInt32(num);
for (int32_t i = 0; i < num; i++) {
sptr<AccessibilityAbilityInfoParcel> info = new AccessibilityAbilityInfoParcel(installedAbilities[i]);
sptr<AccessibilityAbilityInfoParcel> info =
new(std::nothrow) AccessibilityAbilityInfoParcel(installedAbilities[i]);
if (!info) {
HILOG_ERROR("Failed to create info.");
return ERR_NULL_OBJECT;
}
bool result = reply.WriteStrongParcelable(info);
if (!result) {
HILOG_ERROR("WriteStrongParcelable<AccessibilityAbilityInfoParcel> failed");

View File

@ -66,7 +66,11 @@ bool AccessibilityAbilityInfoParcel::Marshalling(Parcel &parcel) const
sptr<AccessibilityAbilityInfoParcel> AccessibilityAbilityInfoParcel::Unmarshalling(Parcel &parcel)
{
HILOG_DEBUG();
sptr<AccessibilityAbilityInfoParcel> info = new AccessibilityAbilityInfoParcel();
sptr<AccessibilityAbilityInfoParcel> info = new(std::nothrow) AccessibilityAbilityInfoParcel();
if (!info) {
HILOG_ERROR("Failed to create info.");
return nullptr;
}
if (!info->ReadFromParcel(parcel)) {
HILOG_ERROR("ReadFromParcel AccessibilityAbilityInfo failed.");
info = nullptr;

View File

@ -56,7 +56,11 @@ bool CaptionPropertyParcel::Marshalling(Parcel& parcel) const
sptr<CaptionPropertyParcel> CaptionPropertyParcel::Unmarshalling(Parcel& parcel)
{
HILOG_DEBUG();
sptr<CaptionPropertyParcel> captionProperty = new CaptionPropertyParcel();
sptr<CaptionPropertyParcel> captionProperty = new(std::nothrow) CaptionPropertyParcel();
if (!captionProperty) {
HILOG_ERROR("Failed to create captionProperty.");
return nullptr;
}
if (!captionProperty->ReadFromParcel(parcel)) {
HILOG_ERROR("read from parcel failed");
return nullptr;

View File

@ -184,7 +184,11 @@ sptr<AccessibilityElementInfoParcel> AccessibilityElementInfoParcel::Unmarshalli
{
HILOG_DEBUG();
sptr<AccessibilityElementInfoParcel> accessibilityInfo = new AccessibilityElementInfoParcel();
sptr<AccessibilityElementInfoParcel> accessibilityInfo = new(std::nothrow) AccessibilityElementInfoParcel();
if (!accessibilityInfo) {
HILOG_ERROR("Failed to create accessibilityInfo.");
return nullptr;
}
if (!accessibilityInfo->ReadFromParcel(parcel)) {
HILOG_ERROR("read from parcel failed");
return nullptr;
@ -222,7 +226,11 @@ bool AccessibleActionParcel::Marshalling(Parcel &parcel) const
sptr<AccessibleActionParcel> AccessibleActionParcel::Unmarshalling(Parcel& parcel)
{
HILOG_DEBUG();
sptr<AccessibleActionParcel> accessibleOperation = new AccessibleActionParcel();
sptr<AccessibleActionParcel> accessibleOperation = new(std::nothrow) AccessibleActionParcel();
if (!accessibleOperation) {
HILOG_ERROR("Failed to create accessibleOperation.");
return nullptr;
}
if (!accessibleOperation->ReadFromParcel(parcel)) {
HILOG_ERROR("read from parcel failed");
return nullptr;
@ -261,7 +269,11 @@ bool RangeInfoParcel::Marshalling(Parcel &parcel) const
sptr<RangeInfoParcel> RangeInfoParcel::Unmarshalling(Parcel& parcel)
{
HILOG_DEBUG();
sptr<RangeInfoParcel> rangeInfo = new RangeInfoParcel();
sptr<RangeInfoParcel> rangeInfo = new(std::nothrow) RangeInfoParcel();
if (!rangeInfo) {
HILOG_ERROR("Failed to create rangeInfo.");
return nullptr;
}
if (!rangeInfo->ReadFromParcel(parcel)) {
HILOG_ERROR("read from parcel failed");
return nullptr;
@ -300,7 +312,11 @@ bool GridInfoParcel::Marshalling(Parcel &parcel) const
sptr<GridInfoParcel> GridInfoParcel::Unmarshalling(Parcel& parcel)
{
HILOG_DEBUG();
sptr<GridInfoParcel> grid = new GridInfoParcel();
sptr<GridInfoParcel> grid = new(std::nothrow) GridInfoParcel();
if (!grid) {
HILOG_ERROR("Failed to create grid.");
return nullptr;
}
if (!grid->ReadFromParcel(parcel)) {
HILOG_ERROR("read from parcel failed");
return nullptr;
@ -345,7 +361,11 @@ bool GridItemInfoParcel::Marshalling(Parcel &parcel) const
sptr<GridItemInfoParcel> GridItemInfoParcel::Unmarshalling(Parcel& parcel)
{
HILOG_DEBUG();
sptr<GridItemInfoParcel> gridItem = new GridItemInfoParcel();
sptr<GridItemInfoParcel> gridItem = new(std::nothrow) GridItemInfoParcel();
if (!gridItem) {
HILOG_ERROR("Failed to create gridItem.");
return nullptr;
}
if (!gridItem->ReadFromParcel(parcel)) {
HILOG_ERROR("read from parcel failed");
return nullptr;
@ -384,7 +404,11 @@ bool RectParcel::Marshalling(Parcel &parcel) const
sptr<RectParcel> RectParcel::Unmarshalling(Parcel& parcel)
{
HILOG_DEBUG();
sptr<RectParcel> rect = new RectParcel();
sptr<RectParcel> rect = new(std::nothrow) RectParcel();
if (!rect) {
HILOG_ERROR("Failed to create rect.");
return nullptr;
}
if (!rect->ReadFromParcel(parcel)) {
HILOG_ERROR("read from parcel failed");
return nullptr;

View File

@ -156,7 +156,11 @@ bool AccessibilityEventInfoParcel::Marshalling(Parcel &parcel) const
sptr<AccessibilityEventInfoParcel> AccessibilityEventInfoParcel::Unmarshalling(Parcel& parcel)
{
HILOG_DEBUG();
sptr<AccessibilityEventInfoParcel> accessibilityEventInfo = new AccessibilityEventInfoParcel();
sptr<AccessibilityEventInfoParcel> accessibilityEventInfo = new(std::nothrow) AccessibilityEventInfoParcel();
if (!accessibilityEventInfo) {
HILOG_ERROR("Failed to create accessibilityEventInfo.");
return nullptr;
}
if (!accessibilityEventInfo->ReadFromParcel(parcel)) {
HILOG_ERROR("read from parcel failed");
return nullptr;

View File

@ -60,7 +60,11 @@ bool AccessibilityGestureInjectPathParcel::Marshalling(Parcel &parcel) const
sptr<AccessibilityGestureInjectPathParcel> AccessibilityGestureInjectPathParcel::Unmarshalling(Parcel &parcel)
{
HILOG_DEBUG();
sptr<AccessibilityGestureInjectPathParcel> path = new AccessibilityGestureInjectPathParcel();
sptr<AccessibilityGestureInjectPathParcel> path = new(std::nothrow) AccessibilityGestureInjectPathParcel();
if (!path) {
HILOG_ERROR("Failed to create path.");
return nullptr;
}
if (!path || !path->ReadFromParcel(parcel)) {
HILOG_ERROR("ReadFromParcel AccessibilityGestureInjectPathParcel failed.");
path = nullptr;

View File

@ -74,7 +74,11 @@ bool AccessibilityWindowInfoParcel::Marshalling(Parcel &parcel) const
sptr<AccessibilityWindowInfoParcel> AccessibilityWindowInfoParcel::Unmarshalling(Parcel &parcel)
{
HILOG_DEBUG();
sptr<AccessibilityWindowInfoParcel> info = new AccessibilityWindowInfoParcel();
sptr<AccessibilityWindowInfoParcel> info = new(std::nothrow) AccessibilityWindowInfoParcel();
if (!info) {
HILOG_ERROR("Failed to create info.");
return nullptr;
}
if (!info->ReadFromParcel(parcel)) {
HILOG_ERROR("ReadFromParcel failed.");
info = nullptr;