From 4e94a2d38209636f2aa7baa7ef6cc2b600913ef9 Mon Sep 17 00:00:00 2001 From: mtardy Date: Wed, 19 Aug 2020 10:09:53 +0200 Subject: [PATCH] Fix string_concat --- object.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/object.c b/object.c index ba97c0c..c45339f 100644 --- a/object.c +++ b/object.c @@ -219,11 +219,15 @@ size_t string_size(oop s) oop string_concat(oop str1, oop str2) { size_t len = string_size(str1) + string_size(str2); - char *concat = memcheck(malloc(sizeof(char) * len)); + char *concat = memcheck(malloc(sizeof(char) * len + 1)); memcpy(concat, get(str1, String, value), string_size(str1)); memcpy(concat + string_size(str1), get(str2, String, value), string_size(str2)); - // it will strdup concat, is it bad? - return makeString(concat); + concat[len]= '\0'; + oop newString = memcheck(malloc(sizeof(union object))); + newString->type = String; + newString->String.value = concat; + newString->String.size = len; + return newString; } oop makeSymbol(char *name)