From 9bfc57ddc3f922cb006d57bbf8839866ec6957cb Mon Sep 17 00:00:00 2001 From: Roman Sedaikin Date: Thu, 23 Jan 2025 15:52:33 +0300 Subject: [PATCH] Fix KLength converter. Signed-off-by: Roman Sedaikin --- interop/src/cpp/ets/convertors-ets.h | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/interop/src/cpp/ets/convertors-ets.h b/interop/src/cpp/ets/convertors-ets.h index 767b2d3e1..e05b89c70 100644 --- a/interop/src/cpp/ets/convertors-ets.h +++ b/interop/src/cpp/ets/convertors-ets.h @@ -124,15 +124,17 @@ template<> struct InteropTypeConverter { using InteropType = ets_object; static KLength convertFrom(EtsEnv* env, InteropType value) { - const static ets_class double_class = env->FindClass("std/core/Double"); - const static ets_class int_class = env->FindClass("std/core/Int"); - const static ets_class string_class = env->FindClass("std/core/String"); - const static ets_class resource_class = env->FindClass("@koalaui/arkts-arkui/generated/ArkResourceInterfaces/Resource"); + // TODO: add [static], + // see: https://rnd-gitlab-msc.huawei.com/rus-os-team/virtual-machines-and-tools/panda/-/issues/22142 + const ets_class double_class = env->FindClass("std/core/Double"); + const ets_class int_class = env->FindClass("std/core/Int"); + const ets_class string_class = env->FindClass("std/core/String"); + const ets_class resource_class = env->FindClass("@koalaui/arkts-arkui/generated/ArkResourceInterfaces/Resource"); if (env->IsInstanceOf(value, double_class)) { const static ets_method double_p = env->Getp_method(double_class, "unboxed", ":D"); return KLength{ 1, (KFloat)env->CallDoubleMethod(value, double_p), 1, 0 }; - } if (env->IsInstanceOf(value, int_class)) { + } else if (env->IsInstanceOf(value, int_class)) { const static ets_method int_p = env->Getp_method(int_class, "unboxed", ":I"); return KLength{ 1, (KFloat)env->CallIntMethod(value, int_p), 1, 0 }; } else if (env->IsInstanceOf(value, string_class)) { -- Gitee