From 5cc02b2ffb5351fba06f9f0e680bcaff6cdb6f10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20D=C3=BCsterhus?= Date: Fri, 27 Mar 2026 18:06:53 +0100 Subject: [PATCH] zend_string: Simplify `zend_string_concat[23]` with `zend_mempcpy` --- Zend/zend_string.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Zend/zend_string.c b/Zend/zend_string.c index ad4b9d2d6cde..348f37999efd 100644 --- a/Zend/zend_string.c +++ b/Zend/zend_string.c @@ -477,9 +477,10 @@ ZEND_API zend_string *zend_string_concat2( size_t len = str1_len + str2_len; zend_string *res = zend_string_alloc(len, 0); - memcpy(ZSTR_VAL(res), str1, str1_len); - memcpy(ZSTR_VAL(res) + str1_len, str2, str2_len); - ZSTR_VAL(res)[len] = '\0'; + char *p = ZSTR_VAL(res); + p = zend_mempcpy(p, str1, str1_len); + p = zend_mempcpy(p, str2, str2_len); + *p++ = '\0'; return res; } @@ -492,10 +493,11 @@ ZEND_API zend_string *zend_string_concat3( size_t len = str1_len + str2_len + str3_len; zend_string *res = zend_string_alloc(len, 0); - memcpy(ZSTR_VAL(res), str1, str1_len); - memcpy(ZSTR_VAL(res) + str1_len, str2, str2_len); - memcpy(ZSTR_VAL(res) + str1_len + str2_len, str3, str3_len); - ZSTR_VAL(res)[len] = '\0'; + char *p = ZSTR_VAL(res); + p = zend_mempcpy(p, str1, str1_len); + p = zend_mempcpy(p, str2, str2_len); + p = zend_mempcpy(p, str3, str3_len); + *p++ = '\0'; return res; }