diff options
Diffstat (limited to 'storage/innobase/mem/mem0mem.c')
-rw-r--r-- | storage/innobase/mem/mem0mem.c | 25 |
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. */ |