Skip to content

Commit e1e38e1

Browse files
authored
zend_string: Simplify zend_string_concat[23] with zend_mempcpy (php#21556)
1 parent 9f71d29 commit e1e38e1

1 file changed

Lines changed: 9 additions & 7 deletions

File tree

Zend/zend_string.c

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -477,9 +477,10 @@ ZEND_API zend_string *zend_string_concat2(
477477
size_t len = str1_len + str2_len;
478478
zend_string *res = zend_string_alloc(len, 0);
479479

480-
memcpy(ZSTR_VAL(res), str1, str1_len);
481-
memcpy(ZSTR_VAL(res) + str1_len, str2, str2_len);
482-
ZSTR_VAL(res)[len] = '\0';
480+
char *p = ZSTR_VAL(res);
481+
p = zend_mempcpy(p, str1, str1_len);
482+
p = zend_mempcpy(p, str2, str2_len);
483+
*p++ = '\0';
483484

484485
return res;
485486
}
@@ -492,10 +493,11 @@ ZEND_API zend_string *zend_string_concat3(
492493
size_t len = str1_len + str2_len + str3_len;
493494
zend_string *res = zend_string_alloc(len, 0);
494495

495-
memcpy(ZSTR_VAL(res), str1, str1_len);
496-
memcpy(ZSTR_VAL(res) + str1_len, str2, str2_len);
497-
memcpy(ZSTR_VAL(res) + str1_len + str2_len, str3, str3_len);
498-
ZSTR_VAL(res)[len] = '\0';
496+
char *p = ZSTR_VAL(res);
497+
p = zend_mempcpy(p, str1, str1_len);
498+
p = zend_mempcpy(p, str2, str2_len);
499+
p = zend_mempcpy(p, str3, str3_len);
500+
*p++ = '\0';
499501

500502
return res;
501503
}

0 commit comments

Comments
 (0)