Minor speed up
This commit is contained in:
1 parent
547c67b676
commit
eaf5a26157
1 file changed
+4
-1
+4
-1
@@ -661,10 +661,13 @@ string_replace_at (string_t v, size_t pos, size_t len, const char str2[])
|
|||||||
const size_t str1_l = len;
|
const size_t str1_l = len;
|
||||||
const size_t str2_l = strlen(str2);
|
const size_t str2_l = strlen(str2);
|
||||||
const size_t size = string_size(v);
|
const size_t size = string_size(v);
|
||||||
char *ptr = stringi_fit2size (v, size + str2_l - str1_l + 1);
|
char *ptr;
|
||||||
if (str1_l != str2_l) {
|
if (str1_l != str2_l) {
|
||||||
|
ptr = stringi_fit2size (v, size + str2_l - str1_l + 1);
|
||||||
memmove(&ptr[pos+str2_l], &ptr[pos+str1_l], size - pos - str1_l + 1);
|
memmove(&ptr[pos+str2_l], &ptr[pos+str1_l], size - pos - str1_l + 1);
|
||||||
stringi_set_size(v, size + str2_l - str1_l);
|
stringi_set_size(v, size + str2_l - str1_l);
|
||||||
|
} else {
|
||||||
|
ptr = stringi_get_str(v);
|
||||||
}
|
}
|
||||||
memcpy (&ptr[pos], str2, str2_l);
|
memcpy (&ptr[pos], str2, str2_l);
|
||||||
STRINGI_CONTRACT (v);
|
STRINGI_CONTRACT (v);
|
||||||
|
|||||||
Reference in new issue
Block a user