summaryrefslogtreecommitdiff
path: root/storage/innobase/mem/mem0mem.c
diff options
context:
space:
mode:
Diffstat (limited to 'storage/innobase/mem/mem0mem.c')
-rw-r--r--storage/innobase/mem/mem0mem.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/storage/innobase/mem/mem0mem.c b/storage/innobase/mem/mem0mem.c
index 90d3f4fa6b1..5e7c48d3d3d 100644
--- a/storage/innobase/mem/mem0mem.c
+++ b/storage/innobase/mem/mem0mem.c
@@ -114,6 +114,31 @@ mem_heap_strdup(
return(memcpy(mem_heap_alloc(heap, len), str, len));
}
+/**************************************************************************
+Concatenate two strings and return the result, using a memory heap. */
+
+char*
+mem_heap_strcat(
+/*============*/
+ /* out, own: the result */
+ mem_heap_t* heap, /* in: memory heap where string is allocated */
+ const char* s1, /* in: string 1 */
+ const char* s2) /* in: string 2 */
+{
+ char* s;
+ ulint s1_len = strlen(s1);
+ ulint s2_len = strlen(s2);
+
+ s = mem_heap_alloc(heap, s1_len + s2_len + 1);
+
+ memcpy(s, s1, s1_len);
+ memcpy(s + s1_len, s2, s2_len);
+
+ s[s1_len + s2_len] = '\0';
+
+ return(s);
+}
+
/*******************************************************************
Creates a memory heap block where data can be allocated. */