From e857b2467b48660c16dab1d10fb0c45de7632abe Mon Sep 17 00:00:00 2001 From: wangyuxin Date: Mon, 10 Mar 2025 21:53:18 +0800 Subject: [PATCH] Fix enum error Issue:https://gitee.com/openharmony/arkcompiler_ets_frontend/issues/IBMEXA Signed-off-by: wangyuxin --- interfaces/ani/hilog_ani.cpp | 18 +++++------------- interfaces/ani/hilog_ani.h | 3 ++- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/interfaces/ani/hilog_ani.cpp b/interfaces/ani/hilog_ani.cpp index 7980b0e..4e9af70 100644 --- a/interfaces/ani/hilog_ani.cpp +++ b/interfaces/ani/hilog_ani.cpp @@ -46,21 +46,12 @@ static const std::string FUNC_NAME_GETLONG = "getLong"; static const std::string FUNC_NAME_OBJECT_REF = "$_get"; static const std::string PROP_NAME_LENGTH = "length"; -static ani_status EnumGetValueInt32(ani_env *env, ani_int enumIndex, int32_t &value) +static ani_status EnumGetValueInt32(ani_env *env, ani_enum_item enumItem, int32_t &value) { - ani_enum aniEnum {}; - if (ANI_OK != env->FindEnum(CLASS_NAME_HILOGANI.c_str(), &aniEnum)) { - HiLog::Info(LABEL, "FindEnum failed %{public}s", CLASS_NAME_HILOGANI.c_str()); - return ANI_ERROR; - } - ani_enum_item enumItem {}; - if (ANI_OK != env->Enum_GetEnumItemByIndex(aniEnum, static_cast(enumIndex), &enumItem)) { - HiLog::Info(LABEL, "Enum_GetEnumItemByIndex failed %{public}d", static_cast(enumIndex)); - return ANI_ERROR; - } ani_int aniInt {}; if (ANI_OK != env->EnumItem_GetValue_Int(enumItem, &aniInt)) { - HiLog::Info(LABEL, "Enum_GetEnumItemByIndex failed %{public}d", static_cast(enumIndex)); + ani_size aniInt = 0; + HiLog::Info(LABEL, "EnumItem_GetValue_Int failed %{public}d", env->EnumItem_GetIndex(enumItem, &aniInt)); return ANI_ERROR; } value = static_cast(aniInt); @@ -442,7 +433,8 @@ void HilogAni::Fatal(ani_env *env, ani_object object, ani_double domain, ani_str return HilogImpl(env, domain, tag, format, args, LOG_FATAL, true); } -ani_boolean HilogAni::IsLoggable(ani_env *env, ani_object object, ani_double domain, ani_string tag, ani_int level) +ani_boolean HilogAni::IsLoggable(ani_env *env, ani_object object, ani_double domain, ani_string tag, + ani_enum_item level) { int32_t domainVal = static_cast(domain); if (domainVal < static_cast(DOMAIN_APP_MIN) || (domainVal > static_cast(DOMAIN_APP_MAX))) { diff --git a/interfaces/ani/hilog_ani.h b/interfaces/ani/hilog_ani.h index 4cf0e08..1f3f936 100644 --- a/interfaces/ani/hilog_ani.h +++ b/interfaces/ani/hilog_ani.h @@ -45,7 +45,8 @@ public: ani_string format, ani_object args); static void Fatal(ani_env *env, ani_object object, ani_double domain, ani_string tag, ani_string format, ani_object args); - static ani_boolean IsLoggable(ani_env *env, ani_object object, ani_double domain, ani_string tag, ani_int level); + static ani_boolean IsLoggable(ani_env *env, ani_object object, ani_double domain, ani_string tag, + ani_enum_item level); private: static void HilogImpl(ani_env *env, ani_double domain, ani_string tag, ani_string format, ani_object args, -- Gitee