From 32a3538bcb63d3accd06f89c4e87fa6d59f31a5a Mon Sep 17 00:00:00 2001 From: Ronja Date: Fri, 16 Dec 2022 12:46:08 +0100 Subject: [PATCH] Concatinate String fuer String Repository --- app/src/main/cpp/StringRepository.cpp | 14 ++++++++++++++ app/src/main/cpp/StringRepository.h | 5 +++++ 2 files changed, 19 insertions(+) diff --git a/app/src/main/cpp/StringRepository.cpp b/app/src/main/cpp/StringRepository.cpp index c372323..7fc89c1 100644 --- a/app/src/main/cpp/StringRepository.cpp +++ b/app/src/main/cpp/StringRepository.cpp @@ -84,6 +84,20 @@ void StringRepository::releaseString(StringHandle) // do nothing } + +StringHandle StringRepository::concatenateString(StringHandle a, StringHandle b) +{ + ZoneScoped; + const char* texta = getString(a); + const char* textb = getString(b); + size_t length = strlen(texta) + strlen(textb); + char* textc = (char*)malloc(sizeof(char)*(length+1)); + snprintf(textc, length + 1, "%s%s", texta, textb); + nt_string_handle c = internString(textc); + free(textc); + return c; +} + void StringRepository::freeAll() { ZoneScoped; diff --git a/app/src/main/cpp/StringRepository.h b/app/src/main/cpp/StringRepository.h index 2365c0e..87d00df 100644 --- a/app/src/main/cpp/StringRepository.h +++ b/app/src/main/cpp/StringRepository.h @@ -41,6 +41,11 @@ public: /// @brief Frees a string void releaseString(StringHandle handle); + /// @brief Adds a string to the string repository + /// @param a the first string + /// @param b the second string + StringHandle concatenateString(StringHandle a, StringHandle b); + /// @brief Frees all strings inside the repository void freeAll();