From 88d90b3d2bafa2f6fb054c020674312f0f2860c7 Mon Sep 17 00:00:00 2001 From: LeechyLiang Date: Sun, 17 Aug 2025 17:34:19 +0800 Subject: [PATCH] remove Deprecated Array APIs Signed-off-by: LeechyLiang Change-Id: Ia4f3d16dff19d6369d40c49677b4875ffc8677d8 --- .../ets/ani/hidebug/src/ani_hidebug.cpp | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/hidebug/interfaces/ets/ani/hidebug/src/ani_hidebug.cpp b/hidebug/interfaces/ets/ani/hidebug/src/ani_hidebug.cpp index 96b10267a..8165b24ca 100644 --- a/hidebug/interfaces/ets/ani/hidebug/src/ani_hidebug.cpp +++ b/hidebug/interfaces/ets/ani/hidebug/src/ani_hidebug.cpp @@ -119,7 +119,7 @@ static bool GetDumpParam(ani_env *env, ani_object argsAni, std::vector &tags) +static bool GetTraceParam(ani_env *env, ani_array tagsAni, std::vector &tags) { ani_size arraySize = 0; if (env->Array_GetLength(static_cast(tagsAni), &arraySize) != ANI_OK) { @@ -130,14 +130,23 @@ static bool GetTraceParam(ani_env *env, ani_array_long tagsAni, std::vectorArray_GetRegion_Long(tagsAni, 0, arraySize, aniValues) != ANI_OK) { - HILOG_ERROR(LOG_CORE, "Get input tags value failed."); - delete []aniValues; + + ani_ref longRef {}; + ani_class longClass {}; + ani_mehtod toLong {}; + ani_long longValue {}; + if (env->FindClass("std.core.Long", &longClass) != ANI_OK) { + HILOG_ERROR(LOG_CORE, "Get Long class Failed."); + return false; + } + if (env->Class_FindMethod(longClass, "toLong", ":l", &toLong) != ANI_OK) { + HILOG_ERROR(LOG_CORE, "Get toLong Method Failed."); return false; } for (ani_size i = 0; i < arraySize; i++) { - tags.push_back(static_cast(aniValues[i])); + env->Array_Get(tagsAni, i, &longRef); + env->Object_CallMethod_Long(static_cast(longRef), toLong, &longValue); + tags.push_back(static_cast(longValue)); } delete []aniValues; return true; @@ -294,19 +303,18 @@ static ani_object ConvertThreadCpuUsageToEts(ani_env *env, ani_class cls, uint32 return obj; } -static ani_array_ref ConvertThreadCpuUsageMapToEts(ani_env *env, const std::map &threadMap) +static ani_array ConvertThreadCpuUsageMapToEts(ani_env *env, const std::map &threadMap) { - ani_class cls = nullptr; ani_size aniSize = static_cast(threadMap.size()); - ani_array_ref result = nullptr; - if (env->FindClass("@ohos.hidebug.hidebug.ThreadCpuUsageImpl", &cls) != ANI_OK || - env->Array_New_Ref(static_cast(cls), aniSize, nullptr, &result) != ANI_OK) { + ani_array result = nullptr; + ani_ref undefinedRef = AniUtil::CreateUndefined(env); + if (env->Array_New(aniSize, undefinedRef, &result) != ANI_OK) { return result; } ani_size idx = 0; for (const auto[threadId, cpuUsage] : threadMap) { ani_object obj = ConvertThreadCpuUsageToEts(env, cls, threadId, cpuUsage); - env->Array_Set_Ref(result, idx, static_cast(obj)); + env->Array_Set(result, idx, static_cast(obj)); idx++; } return result; @@ -372,7 +380,7 @@ ani_object GetSystemMemInfo(ani_env *env) } ani_string StartAppTraceCapture(ani_env *env, - ani_array_long tagsAni, ani_enum_item flagAni, ani_int limitSizeAni) + ani_array tagsAni, ani_enum_item flagAni, ani_int limitSizeAni) { ApiInvokeRecorder apiInvokeRecorder("startAppTraceCapture"); ani_string result = nullptr; -- Gitee