summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2015-06-25 08:52:08 +0200
committerCaolán McNamara <caolanm@redhat.com>2015-06-25 09:53:57 +0000
commit24bc22fcb0550c3ebf74db3642ab32b8e818205c (patch)
tree40ef68d12ba88f6d0c2d394bad49e5b247ad685b
parent4a7932b9a1490a76928abf87b4addeaa7dbca1e5 (diff)
Do not forget to actually set newStr to an empty string
(cherry picked from commit f7a7a9dd84d1cd8b49d59e1fb1853ea7e9f40edf) Conflicts: sal/qa/rtl/strings/test_strings_replace.cxx sal/rtl/ustring.cxx (cherry picked from commit e36ca8d3c69d0c08ad28ceea278b05a0af81e102) Conflicts: sal/qa/rtl/strings/test_strings_replace.cxx Change-Id: I745b09d8a248f08afdd3387f4cfcf69d71ec3c39 Reviewed-on: https://gerrit.libreoffice.org/16465 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--sal/qa/rtl/strings/test_strings_replace.cxx13
-rw-r--r--sal/rtl/ustring.cxx4
2 files changed, 15 insertions, 2 deletions
diff --git a/sal/qa/rtl/strings/test_strings_replace.cxx b/sal/qa/rtl/strings/test_strings_replace.cxx
index 2065078489ed..d26c30800c07 100644
--- a/sal/qa/rtl/strings/test_strings_replace.cxx
+++ b/sal/qa/rtl/strings/test_strings_replace.cxx
@@ -186,6 +186,10 @@ void Test::ustringReplaceFirstAsciiL() {
rtl::OUString("other"), &n)));
CPPUNIT_ASSERT_EQUAL(sal_Int32(-1), n);
}
+
+ CPPUNIT_ASSERT_EQUAL(
+ rtl::OUString(),
+ rtl::OUString("xa").replaceFirst("xa", rtl::OUString()));
}
void Test::ustringReplaceFirstAsciiLAsciiL() {
@@ -225,6 +229,9 @@ void Test::ustringReplaceFirstAsciiLAsciiL() {
replaceFirst("bar", "other", &n)));
CPPUNIT_ASSERT_EQUAL(sal_Int32(-1), n);
}
+
+ CPPUNIT_ASSERT_EQUAL(
+ rtl::OUString(), rtl::OUString("xa").replaceFirst("xa", ""));
}
void Test::ustringReplaceAll() {
@@ -265,6 +272,9 @@ void Test::ustringReplaceAllAsciiL() {
rtl::OUString("xaa").replaceAll(
"xa",
rtl::OUString("xx")));
+
+ CPPUNIT_ASSERT_EQUAL(
+ rtl::OUString(), rtl::OUString("xa").replaceAll("xa", rtl::OUString()));
}
void Test::ustringReplaceAllAsciiLAsciiL() {
@@ -282,6 +292,9 @@ void Test::ustringReplaceAllAsciiLAsciiL() {
rtl::OUString("xxa"),
(rtl::OUString("xaa").
replaceAll("xa", "xx")));
+
+ CPPUNIT_ASSERT_EQUAL(
+ rtl::OUString(), rtl::OUString("xa").replaceAll("xa", ""));
}
}
diff --git a/sal/rtl/ustring.cxx b/sal/rtl/ustring.cxx
index 5f1c12a02061..2df10fc18f30 100644
--- a/sal/rtl/ustring.cxx
+++ b/sal/rtl/ustring.cxx
@@ -1118,8 +1118,8 @@ void rtl_uString_newReplaceFirstAsciiL(
}
sal_Int32 n = str->length - fromLength + to->length;
rtl_uString_acquire(str); // in case *newStr == str
+ rtl_uString_new_WithLength(newStr, n);
if (n != 0) {
- rtl_uString_new_WithLength(newStr, n);
(*newStr)->length = n;
assert(i >= 0 && i < str->length);
memcpy(
@@ -1161,8 +1161,8 @@ void rtl_uString_newReplaceFirstAsciiLAsciiL(
}
sal_Int32 n = str->length - fromLength + toLength;
rtl_uString_acquire(str); // in case *newStr == str
+ rtl_uString_new_WithLength(newStr, n);
if (n != 0) {
- rtl_uString_new_WithLength(newStr, n);
(*newStr)->length = n;
assert(i >= 0 && i < str->length);
memcpy(