From 98a439cd2285aad42fcc73822e237bc04d120295 Mon Sep 17 00:00:00 2001 From: heguokai <275503077@qq.com> Date: Thu, 28 Aug 2025 14:41:22 +0800 Subject: [PATCH] =?UTF-8?q?CreateNewObjectByClass=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: heguokai <275503077@qq.com> --- .../include/ani/ani_common_event_utils.h | 2 +- .../src/ani/ani_common_event_utils.cpp | 23 +++++++------------ 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/frameworks/extension/include/ani/ani_common_event_utils.h b/frameworks/extension/include/ani/ani_common_event_utils.h index d06fcbda..c49d0887 100644 --- a/frameworks/extension/include/ani/ani_common_event_utils.h +++ b/frameworks/extension/include/ani/ani_common_event_utils.h @@ -29,7 +29,7 @@ using CommonEventData = OHOS::EventFwk::CommonEventData; class AniCommonEventUtils { public: static void ConvertCommonEventDataToEts(ani_env* env, ani_object& ani_data, const CommonEventData& commonEventData); - static void CreateNewObjectByClass(ani_env* env, const char* className, ani_class &cls, ani_object& ani_data); + static int32_t CreateNewObjectByClass(ani_env* env, const char* className, ani_class &cls, ani_object& ani_data); template static void CallSetter(ani_env* env, ani_class cls, ani_object object, const char* setterName, valueType value); static void CreateAniIntObject(ani_env* env, ani_object &object, ani_int value); diff --git a/frameworks/extension/src/ani/ani_common_event_utils.cpp b/frameworks/extension/src/ani/ani_common_event_utils.cpp index 3344096a..8d208ba4 100644 --- a/frameworks/extension/src/ani/ani_common_event_utils.cpp +++ b/frameworks/extension/src/ani/ani_common_event_utils.cpp @@ -26,7 +26,7 @@ using namespace OHOS::EventFwk; using namespace OHOS::AppExecFwk; using namespace arkts::ani_signature; -void AniCommonEventUtils::CreateNewObjectByClass( +int32_t AniCommonEventUtils::CreateNewObjectByClass( ani_env* env, const char* className, ani_class& cls, ani_object& ani_data) { auto aniResult = ANI_ERROR; @@ -34,22 +34,22 @@ void AniCommonEventUtils::CreateNewObjectByClass( aniResult = env->FindClass(className, &cls); if (aniResult != ANI_OK) { EVENT_LOGE("CreateNewObjectByClass findClass error. result: %{public}d.", aniResult); - return; + return aniResult; } if (cls == nullptr) { EVENT_LOGE("CreateNewObjectByClass cls is null."); - return; + return ANI_ERROR; } aniResult = env->Class_FindMethod(cls, "", ":", &ctor); if (aniResult != ANI_OK) { EVENT_LOGE("CreateNewObjectByClass Class_FindMethod error. result: %{public}d.", aniResult); - return; + return aniResult; } aniResult = env->Object_New(cls, ctor, &ani_data); if (aniResult != ANI_OK) { EVENT_LOGE("CreateNewObjectByClass Object_New error. result: %{public}d.", aniResult); } - return; + return aniResult; } template @@ -96,38 +96,31 @@ void AniCommonEventUtils::ConvertCommonEventDataToEts( ani_env* env, ani_object& ani_data, const CommonEventData& commonEventData) { EVENT_LOGD("called"); - ani_class cls = nullptr; - CreateNewObjectByClass(env, "commonEvent.commonEventData.CommonEventDataImpl", cls, ani_data); - if ((ani_data == nullptr) || (cls == nullptr)) { - EVENT_LOGE("ConvertCommonEventDataToEts ani_data or cls is null."); + int32_t result = CreateNewObjectByClass(env, "commonEvent.commonEventData.CommonEventDataImpl", cls, ani_data); + if ((result != ERR_OK) || (ani_data == nullptr) || (cls == nullptr)) { + EVENT_LOGE("ConvertCommonEventDataToEts:CreateNewObjectByClass failed,result = %{public}d", result); return; } - ani_string string = nullptr; // set event [string] env->String_NewUTF8( commonEventData.GetWant().GetAction().c_str(), commonEventData.GetWant().GetAction().size(), &string); CallSetter(env, cls, ani_data, Builder::BuildSetterName("event").c_str(), string); - // set bundleName [string] env->String_NewUTF8( commonEventData.GetWant().GetBundle().c_str(), commonEventData.GetWant().GetBundle().size(), &string); CallSetter(env, cls, ani_data, Builder::BuildSetterName("bundleName").c_str(), string); - // set data [string] env->String_NewUTF8(commonEventData.GetData().c_str(), commonEventData.GetData().size(), &string); CallSetter(env, cls, ani_data, Builder::BuildSetterName("data").c_str(), string); - // set code [number] ani_object codeObject; CreateAniIntObject(env, codeObject, commonEventData.GetCode()); CallSetter(env, cls, ani_data, Builder::BuildSetterName("code").c_str(), codeObject); - // set parameters [Record] ani_ref wantParamRef = WrapWantParams(env, commonEventData.GetWant().GetParams()); CallSetter(env, cls, ani_data, Builder::BuildSetterName("parameters").c_str(), wantParamRef); } - } // namespace EventManagerFwkAni } // namespace OHOS -- Gitee