sal/rtl/string.cxx | 14 +------------- sal/rtl/strtmpl.hxx | 2 +- sal/rtl/ustring.cxx | 38 ++------------------------------------ 3 files changed, 4 insertions(+), 50 deletions(-)
New commits: commit 01645b021c3609f86b8ebca100f54006f467573f Author: Mike Kaganski <mike.kagan...@collabora.com> AuthorDate: Thu Feb 17 08:50:12 2022 +0100 Commit: Mike Kaganski <mike.kagan...@collabora.com> CommitDate: Thu Feb 17 21:19:25 2022 +0100 Deduplicate some code Change-Id: Ib05624739cce31b08fc409f238d447ed8d99bad9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130016 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> diff --git a/sal/rtl/string.cxx b/sal/rtl/string.cxx index a2020561a7c7..3c8c01e98b52 100644 --- a/sal/rtl/string.cxx +++ b/sal/rtl/string.cxx @@ -339,19 +339,7 @@ void rtl_string_newReplaceFirst( if (str->length - fromLength > SAL_MAX_INT32 - toLength) { std::abort(); } - sal_Int32 n = str->length - fromLength + toLength; - rtl_string_acquire(str); // in case *newStr == str - rtl_string_new_WithLength(newStr, n); - if (n != 0) { - (*newStr)->length = n; - assert(i >= 0 && i < str->length); - memcpy((*newStr)->buffer, str->buffer, i); - memcpy((*newStr)->buffer + i, to, toLength); - memcpy( - (*newStr)->buffer + i + toLength, str->buffer + i + fromLength, - str->length - i - fromLength); - } - rtl_string_release(str); + rtl::str::newReplaceStrAt(newStr, str, i, fromLength, to, toLength); } *index = i; } diff --git a/sal/rtl/strtmpl.hxx b/sal/rtl/strtmpl.hxx index 4f04cc404ee5..51dd4d0e191b 100644 --- a/sal/rtl/strtmpl.hxx +++ b/sal/rtl/strtmpl.hxx @@ -1481,7 +1481,7 @@ void newReplaceStrAt ( IMPL_RTL_STRINGDATA** ppTh assert(nIndex >= 0 && nIndex <= pStr->length); assert(nCount >= 0); assert(nCount <= pStr->length - nIndex); - assert(pNewSubStr); + assert(pNewSubStr != nullptr || nNewSubStrLen == 0); assert(nNewSubStrLen >= 0); /* Append? */ if ( nIndex >= pStr->length ) diff --git a/sal/rtl/ustring.cxx b/sal/rtl/ustring.cxx index 70048db58f6e..5a4f16b88fcb 100644 --- a/sal/rtl/ustring.cxx +++ b/sal/rtl/ustring.cxx @@ -1213,24 +1213,7 @@ void rtl_uString_newReplaceFirstAsciiLUtf16L( rtl_uString_release(*newStr); *newStr = nullptr; } else { - sal_Int32 n = str->length - fromLength + toLength; - rtl_uString_acquire(str); // in case *newStr == str - rtl_uString_new_WithLength(newStr, n); - if (n != 0 && /*TODO:*/ *newStr != nullptr) { - (*newStr)->length = n; - assert(i >= 0 && i < str->length); - memcpy( - (*newStr)->buffer, str->buffer, i * sizeof (sal_Unicode)); - if (toLength != 0) { - memcpy( - (*newStr)->buffer + i, to, toLength * sizeof (sal_Unicode)); - } - memcpy( - (*newStr)->buffer + i + toLength, - str->buffer + i + fromLength, - (str->length - i - fromLength) * sizeof (sal_Unicode)); - } - rtl_uString_release(str); + rtl::str::newReplaceStrAt(newStr, str, i, fromLength, to, toLength); } } *index = i; @@ -1306,24 +1289,7 @@ void rtl_uString_newReplaceFirstUtf16LUtf16L( rtl_uString_release(*newStr); *newStr = nullptr; } else { - sal_Int32 n = str->length - fromLength + toLength; - rtl_uString_acquire(str); // in case *newStr == str - rtl_uString_new_WithLength(newStr, n); - if (n != 0 && /*TODO:*/ *newStr != nullptr) { - (*newStr)->length = n; - assert(i >= 0 && i < str->length); - memcpy( - (*newStr)->buffer, str->buffer, i * sizeof (sal_Unicode)); - if (toLength != 0) { - memcpy( - (*newStr)->buffer + i, to, toLength * sizeof (sal_Unicode)); - } - memcpy( - (*newStr)->buffer + i + toLength, - str->buffer + i + fromLength, - (str->length - i - fromLength) * sizeof (sal_Unicode)); - } - rtl_uString_release(str); + rtl::str::newReplaceStrAt(newStr, str, i, fromLength, to, toLength); } } *index = i;