mirror of
https://github.com/openharmony/ability_ability_runtime.git
synced 2026-08-25 12:23:20 -04:00
merge master into master
fix code Created-by: littlejerry1 Commit-by: unknown Merged-by: openharmony_ci Description: **IssueNo**:https://gitcode.com/openharmony/ability_ability_runtime/issues/13064?ref=&did=3298889#tid-3298889 **Description**:napi返回值处理 **稳定性自检:** NA **安全编码自检:** NA **TDD Result**: NA **XTS Result**: NA ### 是否已执行L0用例 - [ ] 已验证 - [ NA ] 不涉及。如不涉及,请写明理由 See merge request: openharmony/ability_ability_runtime!16615
This commit is contained in:
+5
-1
@@ -54,7 +54,11 @@ void JsAbilityAutoStartupCallBack::Register(napi_value value)
|
||||
}
|
||||
|
||||
napi_ref ref = nullptr;
|
||||
napi_create_reference(env_, value, 1, &ref);
|
||||
napi_status createStatus = napi_create_reference(env_, value, 1, &ref);
|
||||
if (createStatus != napi_ok || ref == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::AUTO_STARTUP, "napi_create_reference failed, %{public}d", createStatus);
|
||||
return;
|
||||
}
|
||||
callbacks_.emplace_back(std::unique_ptr<NativeReference>(reinterpret_cast<NativeReference *>(ref)));
|
||||
}
|
||||
|
||||
|
||||
+5
-1
@@ -71,7 +71,11 @@ bool IsNormalObject(napi_env env, napi_value value)
|
||||
napi_value CreateJsAutoStartupInfoArray(napi_env env, const std::vector<AutoStartupInfo> &infoList)
|
||||
{
|
||||
napi_value arrayObj = nullptr;
|
||||
napi_create_array(env, &arrayObj);
|
||||
napi_status createStatus = napi_create_array(env, &arrayObj);
|
||||
if (createStatus != napi_ok || arrayObj == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::AUTO_STARTUP, "napi_create_reference failed, %{public}d", createStatus);
|
||||
return nullptr;
|
||||
}
|
||||
for (size_t i = 0; i < infoList.size(); ++i) {
|
||||
auto object = CreateJsAutoStartupInfo(env, infoList.at(i));
|
||||
if (object == nullptr) {
|
||||
|
||||
@@ -126,7 +126,11 @@ void JSAbilityForegroundStateObserver::AddJsObserverObject(const napi_value &jsO
|
||||
return;
|
||||
}
|
||||
napi_ref ref = nullptr;
|
||||
napi_create_reference(env_, jsObserverObject, 1, &ref);
|
||||
napi_status createStatus = napi_create_reference(env_, jsObserverObject, 1, &ref);
|
||||
if (createStatus != napi_ok || ref == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::UIABILITY, "napi_create_reference failed, %{public}d", createStatus);
|
||||
return;
|
||||
}
|
||||
jsObserverObjectSet_.emplace(std::shared_ptr<NativeReference>(reinterpret_cast<NativeReference *>(ref)));
|
||||
}
|
||||
|
||||
|
||||
@@ -46,7 +46,11 @@ napi_value CreateJSToken(napi_env env, const sptr<IRemoteObject> target)
|
||||
napi_value CreateJsAbilityRunningInfoArray(napi_env env, const std::vector<AAFwk::AbilityRunningInfo> &infos)
|
||||
{
|
||||
napi_value arrayValue = nullptr;
|
||||
napi_create_array_with_length(env, infos.size(), &arrayValue);
|
||||
napi_status createStatus = napi_create_array_with_length(env, infos.size(), &arrayValue);
|
||||
if (createStatus != napi_ok || arrayValue == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::ABILITYMGR, "napi_create_reference failed, %{public}d", createStatus);
|
||||
return nullptr;
|
||||
}
|
||||
uint32_t index = 0;
|
||||
for (const auto &runningInfo : infos) {
|
||||
napi_set_element(env, arrayValue, index++, CreateJsAbilityRunningInfo(env, runningInfo));
|
||||
@@ -62,7 +66,11 @@ napi_value CreateJsElementName(napi_env env, const AppExecFwk::ElementName &elem
|
||||
napi_value CreateJsExtensionRunningInfoArray(napi_env env, const std::vector<AAFwk::ExtensionRunningInfo> &infos)
|
||||
{
|
||||
napi_value arrayValue = nullptr;
|
||||
napi_create_array_with_length(env, infos.size(), &arrayValue);
|
||||
napi_status createStatus = napi_create_array_with_length(env, infos.size(), &arrayValue);
|
||||
if (createStatus != napi_ok || arrayValue == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::ABILITYMGR, "null arrayValue");
|
||||
return nullptr;
|
||||
}
|
||||
uint32_t index = 0;
|
||||
for (const auto &runningInfo : infos) {
|
||||
napi_set_element(env, arrayValue, index++, CreateJsExtensionRunningInfo(env, runningInfo));
|
||||
@@ -73,7 +81,11 @@ napi_value CreateJsExtensionRunningInfoArray(napi_env env, const std::vector<AAF
|
||||
napi_value CreateJsAbilityRunningInfo(napi_env env, const AAFwk::AbilityRunningInfo &info)
|
||||
{
|
||||
napi_value objValue = nullptr;
|
||||
napi_create_object(env, &objValue);
|
||||
napi_status createStatus = napi_create_object(env, &objValue);
|
||||
if (createStatus != napi_ok || objValue == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::ABILITYMGR, "null ObjValue");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
napi_value napiElementName = OHOS::AppExecFwk::WrapElementName(env, info.ability);
|
||||
napi_set_named_property(env, objValue, "ability", napiElementName);
|
||||
@@ -88,7 +100,11 @@ napi_value CreateJsAbilityRunningInfo(napi_env env, const AAFwk::AbilityRunningI
|
||||
napi_value CreateJsExtensionRunningInfo(napi_env env, const AAFwk::ExtensionRunningInfo &info)
|
||||
{
|
||||
napi_value objValue = nullptr;
|
||||
napi_create_object(env, &objValue);
|
||||
napi_status createStatus = napi_create_object(env, &objValue);
|
||||
if (createStatus != napi_ok || objValue == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::ABILITYMGR, "null ObjValue");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
napi_value napiElementName = OHOS::AppExecFwk::WrapElementName(env, info.extension);
|
||||
napi_set_named_property(env, objValue, "extension", napiElementName);
|
||||
@@ -105,7 +121,11 @@ napi_value AbilityStateInit(napi_env env)
|
||||
{
|
||||
TAG_LOGD(AAFwkTag::ABILITYMGR, "called");
|
||||
napi_value objValue = nullptr;
|
||||
napi_create_object(env, &objValue);
|
||||
napi_status createStatus = napi_create_object(env, &objValue);
|
||||
if (createStatus != napi_ok || objValue == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::ABILITYMGR, "null ObjValue");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
napi_set_named_property(env, objValue, "INITIAL", CreateJsValue(env, AAFwk::AbilityState::INITIAL));
|
||||
napi_set_named_property(env, objValue, "FOCUS", CreateJsValue(env, AAFwk::AbilityState::ACTIVE));
|
||||
@@ -120,7 +140,11 @@ napi_value UserStatusInit(napi_env env)
|
||||
{
|
||||
TAG_LOGD(AAFwkTag::ABILITYMGR, "called");
|
||||
napi_value objValue = nullptr;
|
||||
napi_create_object(env, &objValue);
|
||||
napi_status createStatus = napi_create_object(env, &objValue);
|
||||
if (createStatus != napi_ok || objValue == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::ABILITYMGR, "null ObjValue");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
napi_set_named_property(
|
||||
env, objValue, "ASSERT_TERMINATE", CreateJsValue(env, AAFwk::UserStatus::ASSERT_TERMINATE));
|
||||
@@ -133,8 +157,8 @@ napi_value CreateJsAbilityStateData(napi_env env, const AbilityStateData &abilit
|
||||
{
|
||||
TAG_LOGD(AAFwkTag::ABILITYMGR, "called");
|
||||
napi_value object = nullptr;
|
||||
napi_create_object(env, &object);
|
||||
if (object == nullptr) {
|
||||
napi_status createStatus = napi_create_object(env, &object);
|
||||
if (createStatus != napi_ok || object == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::ABILITYMGR, "null ObjValue");
|
||||
return nullptr;
|
||||
}
|
||||
@@ -156,7 +180,11 @@ napi_value CreateJsAbilityStateDataArray(
|
||||
napi_env env, const std::vector<AppExecFwk::AbilityStateData> &abilityStateDatas)
|
||||
{
|
||||
napi_value arrayValue = nullptr;
|
||||
napi_create_array_with_length(env, abilityStateDatas.size(), &arrayValue);
|
||||
napi_status createStatus = napi_create_array_with_length(env, abilityStateDatas.size(), &arrayValue);
|
||||
if (createStatus != napi_ok || arrayValue == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::ABILITYMGR, "napi_create_reference failed, %{public}d", createStatus);
|
||||
return nullptr;
|
||||
}
|
||||
uint32_t index = 0;
|
||||
for (const auto &abilityStateData : abilityStateDatas) {
|
||||
napi_set_element(env, arrayValue, index++, CreateJsAbilityStateData(env, abilityStateData));
|
||||
|
||||
@@ -83,7 +83,11 @@ void JSAbilityFirstFrameStateObserver::SetJsObserverObject(const napi_value &jsO
|
||||
return;
|
||||
}
|
||||
napi_ref ref = nullptr;
|
||||
napi_create_reference(env_, jsObserverObject, 1, &ref);
|
||||
napi_status createStatus = napi_create_reference(env_, jsObserverObject, 1, &ref);
|
||||
if (createStatus != napi_ok || ref == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::ABILITYMGR, "napi_create_reference failed, %{public}d", createStatus);
|
||||
return;
|
||||
}
|
||||
jsObserverObject_ = std::shared_ptr<NativeReference>(reinterpret_cast<NativeReference *>(ref));
|
||||
}
|
||||
|
||||
|
||||
@@ -171,7 +171,11 @@ napi_value CreateJsAutoFillType(napi_env env)
|
||||
{
|
||||
TAG_LOGD(AAFwkTag::AUTOFILLMGR, "called");
|
||||
napi_value objValue = nullptr;
|
||||
napi_create_object(env, &objValue);
|
||||
napi_status createStatus = napi_create_object(env, &objValue);
|
||||
if (createStatus != napi_ok || objValue == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::AUTOFILLMGR, "napi_create_reference failed, %{public}d", createStatus);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
napi_set_named_property(env, objValue, "UNSPECIFIED", CreateJsValue(env, AbilityBase::AutoFillType::UNSPECIFIED));
|
||||
napi_set_named_property(env, objValue, "PASSWORD", CreateJsValue(env, AbilityBase::AutoFillType::PASSWORD));
|
||||
@@ -223,7 +227,11 @@ napi_value CreateJsPopupPlacement(napi_env env)
|
||||
{
|
||||
TAG_LOGD(AAFwkTag::AUTOFILLMGR, "called");
|
||||
napi_value objValue = nullptr;
|
||||
napi_create_object(env, &objValue);
|
||||
napi_status createStatus = napi_create_object(env, &objValue);
|
||||
if (createStatus != napi_ok || objValue == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::AUTOFILLMGR, "napi_create_reference failed, %{public}d", createStatus);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
napi_set_named_property(env, objValue, "LEFT", CreateJsValue(env, AbilityBase::PopupPlacement::LEFT));
|
||||
napi_set_named_property(env, objValue, "RIGHT", CreateJsValue(env, AbilityBase::PopupPlacement::RIGHT));
|
||||
|
||||
@@ -59,7 +59,11 @@ void JsAutoSaveRequestCallback::Register(napi_value value)
|
||||
}
|
||||
|
||||
napi_ref ref = nullptr;
|
||||
napi_create_reference(env_, value, 1, &ref);
|
||||
napi_status createStatus = napi_create_reference(env_, value, 1, &ref);
|
||||
if (createStatus != napi_ok || ref == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::AUTOFILLMGR, "napi_create_reference failed, %{public}d", createStatus);
|
||||
return;
|
||||
}
|
||||
callback_ = std::unique_ptr<NativeReference>(reinterpret_cast<NativeReference *>(ref));
|
||||
}
|
||||
|
||||
|
||||
@@ -119,9 +119,11 @@ napi_value JsFeatureAbilityInit(napi_env env, napi_value exports)
|
||||
napi_value contextValue = CreateNapiJSContext(env);
|
||||
if (contextValue != nullptr) {
|
||||
napi_ref contextRef = nullptr;
|
||||
napi_create_reference(env, contextValue, 1, &contextRef);
|
||||
jsFeatureAbility->SetFAContext(
|
||||
std::shared_ptr<NativeReference>(reinterpret_cast<NativeReference*>(contextRef)));
|
||||
napi_status createStatus = napi_create_reference(env, contextValue, 1, &contextRef);
|
||||
if (createStatus == napi_ok && contextRef != nullptr) {
|
||||
jsFeatureAbility->SetFAContext(
|
||||
std::shared_ptr<NativeReference>(reinterpret_cast<NativeReference*>(contextRef)));
|
||||
}
|
||||
}
|
||||
napi_wrap(env, exports, jsFeatureAbility.release(), JsFeatureAbility::Finalizer, nullptr, nullptr);
|
||||
|
||||
|
||||
@@ -446,14 +446,20 @@ bool JsFeatureAbility::UnWrapRequestParams(napi_env env, napi_value param, Distr
|
||||
napi_value JsFeatureAbility::CreateJsResult(napi_env env, int32_t errCode, const std::string &message)
|
||||
{
|
||||
napi_value jsResult = nullptr;
|
||||
napi_create_object(env, &jsResult);
|
||||
napi_status createStatus = napi_create_object(env, &jsResult);
|
||||
if (createStatus != napi_ok || jsResult == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::FA, "napi_create_reference failed, %{public}d", createStatus);
|
||||
return nullptr;
|
||||
}
|
||||
napi_set_named_property(env, jsResult, "code", CreateJsNumber(env, errCode));
|
||||
if (errCode == 0) {
|
||||
napi_set_named_property(env, jsResult, "data", CreateJsUndefined(env));
|
||||
} else {
|
||||
napi_value dataVal = nullptr;
|
||||
napi_create_string_utf8(env, message.c_str(), message.length(), &dataVal);
|
||||
napi_set_named_property(env, jsResult, "data", dataVal);
|
||||
napi_status createStatus = napi_create_string_utf8(env, message.c_str(), message.length(), &dataVal);
|
||||
if (createStatus == napi_ok) {
|
||||
napi_set_named_property(env, jsResult, "data", dataVal);
|
||||
}
|
||||
}
|
||||
|
||||
return jsResult;
|
||||
@@ -462,7 +468,11 @@ napi_value JsFeatureAbility::CreateJsResult(napi_env env, int32_t errCode, const
|
||||
napi_value JsFeatureAbility::CreateJsFeatureAbility(napi_env env)
|
||||
{
|
||||
napi_value object = nullptr;
|
||||
napi_create_object(env, &object);
|
||||
napi_status createStatus = napi_create_object(env, &object);
|
||||
if (createStatus != napi_ok || object == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::FA, "napi_create_reference failed, %{public}d", createStatus);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
std::unique_ptr<JsFeatureAbility> jsFeatureAbility = std::make_unique<JsFeatureAbility>();
|
||||
napi_wrap(env, object, jsFeatureAbility.release(), JsFeatureAbility::Finalizer, nullptr, nullptr);
|
||||
|
||||
@@ -267,7 +267,11 @@ public:
|
||||
return;
|
||||
}
|
||||
napi_ref ref = nullptr;
|
||||
napi_create_reference(env, value, 1, &ref);
|
||||
napi_status createStatus = napi_create_reference(env, value, 1, &ref);
|
||||
if (createStatus != napi_ok || ref == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::DEFAULT, "napi_create_reference failed, %{public}d", createStatus);
|
||||
return;
|
||||
}
|
||||
jsRemoteObj_.reset(reinterpret_cast<NativeReference*>(ref));
|
||||
jsRemoteObjEnv_ = env;
|
||||
}
|
||||
|
||||
@@ -222,13 +222,17 @@ void BindContext(napi_env env, std::unique_ptr<NativeReference> contextRef, JsRu
|
||||
return;
|
||||
}
|
||||
abilityContext->Bind(jsRuntime, contextRef.release());
|
||||
napi_wrap(
|
||||
napi_status wrapStatus = napi_wrap(
|
||||
env, contextObj, workContext,
|
||||
[](napi_env, void* data, void* hint) {
|
||||
TAG_LOGD(AAFwkTag::UIABILITY, "finalizer for weak_ptr ability context is called");
|
||||
delete static_cast<std::weak_ptr<AbilityRuntime::AbilityContext>*>(data);
|
||||
},
|
||||
nullptr, nullptr);
|
||||
if (wrapStatus != napi_ok) {
|
||||
TAG_LOGE(AAFwkTag::UIABILITY, "napi_wrap failed");
|
||||
delete workContext;
|
||||
}
|
||||
}
|
||||
} // namespace
|
||||
|
||||
@@ -1518,7 +1522,11 @@ int32_t JsUIAbility::OnContinue(WantParams &wantParams, bool &isAsyncOnContinue,
|
||||
}
|
||||
std::weak_ptr<UIAbility> weakPtr = shared_from_this();
|
||||
napi_ref jsWantParamsRef;
|
||||
napi_create_reference(env, jsWantParams, 1, &jsWantParamsRef);
|
||||
napi_status createStatus = napi_create_reference(env, jsWantParams, 1, &jsWantParamsRef);
|
||||
if (createStatus != napi_ok) {
|
||||
TAG_LOGE(AAFwkTag::UIABILITY, "napi_create_reference failed, %{public}d", createStatus);
|
||||
return AppExecFwk::ContinuationManagerStage::OnContinueResult::ON_CONTINUE_ERR;
|
||||
}
|
||||
ReleaseOnContinueAsset(env, result, jsWantParamsRef, callbackInfo);
|
||||
auto asyncCallback = [jsWantParamsRef, abilityWeakPtr = weakPtr, abilityInfo](int32_t status) {
|
||||
auto ability = abilityWeakPtr.lock();
|
||||
|
||||
+5
-1
@@ -356,8 +356,12 @@ bool JsAutoFillExtension::CallPromise(napi_value result, AppExecFwk::AbilityTran
|
||||
}
|
||||
HandleScope handleScope(jsRuntime_);
|
||||
napi_value promiseCallback = nullptr;
|
||||
napi_create_function(env, "promiseCallback", strlen("promiseCallback"), PromiseCallback,
|
||||
napi_status createStatus = napi_create_function(env, "promiseCallback", strlen("promiseCallback"), PromiseCallback,
|
||||
callbackInfo, &promiseCallback);
|
||||
if (createStatus != napi_ok || promiseCallback == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::AUTOFILL_EXT, "napi_create_reference failed, %{public}d", createStatus);
|
||||
return false;
|
||||
}
|
||||
napi_value argv[1] = { promiseCallback };
|
||||
napi_call_function(env, result, then, 1, argv, nullptr);
|
||||
return true;
|
||||
|
||||
@@ -306,7 +306,11 @@ napi_value DumpRuntimeHelper::GetJsLeakModule(napi_env env, napi_value global)
|
||||
return nullptr;
|
||||
}
|
||||
napi_value moduleName = nullptr;
|
||||
napi_create_string_utf8(env, MODULE_NAME, strlen(MODULE_NAME), &moduleName);
|
||||
status = napi_create_string_utf8(env, MODULE_NAME, strlen(MODULE_NAME), &moduleName);
|
||||
if (status != napi_ok) {
|
||||
TAG_LOGE(AAFwkTag::APPKIT, "fail, %{public}d", status);
|
||||
return nullptr;
|
||||
}
|
||||
napi_value param[1] = {moduleName};
|
||||
napi_value requireValue = nullptr;
|
||||
status = napi_call_function(env, global, napiFunc, 1, ¶m[0], &requireValue);
|
||||
|
||||
Reference in New Issue
Block a user