From f4a09a772947435a7ae04b73504e42d5ae4bc060 Mon Sep 17 00:00:00 2001 From: "evgeniy.generalov" Date: Thu, 7 Aug 2025 14:17:41 +0300 Subject: [PATCH] Add strdup overload --- ui2abc/libarkts/native/src/common.cc | 7 ++++++- ui2abc/libarkts/native/src/common.h | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ui2abc/libarkts/native/src/common.cc b/ui2abc/libarkts/native/src/common.cc index 8f90679c07..c484330b6d 100644 --- a/ui2abc/libarkts/native/src/common.cc +++ b/ui2abc/libarkts/native/src/common.cc @@ -56,8 +56,13 @@ StageArena::~StageArena() char* StageArena::strdup(const char* string) { - auto* arena = StageArena::instance(); auto size = strlen(string) + 1; + return strdup(string, size); +} + +char* strdup(const char* string, size_t size) +{ + auto* arena = StageArena::instance(); char* memory = (char*)arena->alloc(size); interop_memcpy(memory, size, string, size); return memory; diff --git a/ui2abc/libarkts/native/src/common.h b/ui2abc/libarkts/native/src/common.h index 0ee7cd1d76..c26438256d 100644 --- a/ui2abc/libarkts/native/src/common.h +++ b/ui2abc/libarkts/native/src/common.h @@ -126,8 +126,9 @@ class StageArena { } void* alloc(size_t size); static char* strdup(const char* original); + static char* strdup(const char* original, size_t size); void add(void* pointer); void cleanup(); }; -#endif // COMMON_H \ No newline at end of file +#endif // COMMON_H -- Gitee