From 39dc4ee23781bf050ee8be5df1dc3bdbc0e2a432 Mon Sep 17 00:00:00 2001 From: qq_35037212 Date: Thu, 21 Aug 2025 11:22:18 +0800 Subject: [PATCH] string malloc --- .../kits/cj/work_scheduler/work_scheduler_ffi.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/interfaces/kits/cj/work_scheduler/work_scheduler_ffi.cpp b/interfaces/kits/cj/work_scheduler/work_scheduler_ffi.cpp index efbf026..9cbb7b6 100644 --- a/interfaces/kits/cj/work_scheduler/work_scheduler_ffi.cpp +++ b/interfaces/kits/cj/work_scheduler/work_scheduler_ffi.cpp @@ -26,6 +26,19 @@ namespace OHOS { namespace WorkScheduler { +int32_t InnerWrapWantParamsString(const sptr iIt, CParameters *p) +{ + AAFwk::IString *ao = AAFwk::IString::Query(iIt); + if (ao == nullptr) { + LOGE("ao is nullptr, no memory."); + return ERR_NO_MEMORY; + } + std::string natValue = OHOS::AAFwk::String::Unbox(ao); + p->value = MallocCString(natValue); + p->size = static_cast(natValue.length()) + 1; + p->valueType = STRING_TYPE; + return 0; +} template int32_t InnerWrapWantParamsT(const sptr iIt, CParameters *p) { @@ -462,7 +475,7 @@ extern "C" { } case VALUE_TYPE_STRING: { arrParam.head[i].valueType = STRING_TYPE; - InnerWrapWantParamsT(it.second, &arrParam.head[i]); + InnerWrapWantParamsString(it.second, &arrParam.head[i]); break; } default: { -- Gitee