summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@qt.io>2018-08-30 17:37:12 +0200
committerMarco Bubke <marco.bubke@qt.io>2018-09-03 14:26:05 +0000
commit3d9974db95a78d3a023abf37d4c1b180430c6fb7 (patch)
tree4a66503037202bea5abbdf61e216054d63d23303
parent4c88c1808cddc2f134203e62b276f2f413e455c6 (diff)
downloadqt-creator-3d9974db95a78d3a023abf37d4c1b180430c6fb7.tar.gz
Utils: Fix small string
Change-Id: I6a746eb28c6c803b9ade9f626a950cf93ba6fe99 Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
-rw-r--r--src/libs/utils/smallstring.h8
-rw-r--r--tests/unit/unittest/smallstring-test.cpp18
2 files changed, 25 insertions, 1 deletions
diff --git a/src/libs/utils/smallstring.h b/src/libs/utils/smallstring.h
index dce302594b..58589cb088 100644
--- a/src/libs/utils/smallstring.h
+++ b/src/libs/utils/smallstring.h
@@ -615,7 +615,13 @@ public:
friend BasicSmallString operator+(SmallStringView first, const BasicSmallString &second)
{
- return operator+(second, first);
+ BasicSmallString text;
+ text.reserve(first.size() + second.size());
+
+ text.append(first);
+ text.append(second);
+
+ return text;
}
template<size_type ArraySize>
diff --git a/tests/unit/unittest/smallstring-test.cpp b/tests/unit/unittest/smallstring-test.cpp
index ee55d875a7..1f1e704d88 100644
--- a/tests/unit/unittest/smallstring-test.cpp
+++ b/tests/unit/unittest/smallstring-test.cpp
@@ -1657,6 +1657,15 @@ TEST(SmallString, StringViewPlusOperator)
ASSERT_THAT(result, "text and more text");
}
+TEST(SmallString, StringViewPlusOperatorReverseOrder)
+{
+ SmallStringView text = " and more text";
+
+ auto result = "text" + text;
+
+ ASSERT_THAT(result, "text and more text");
+}
+
TEST(SmallString, StringPlusOperator)
{
SmallString text = "text";
@@ -1666,6 +1675,15 @@ TEST(SmallString, StringPlusOperator)
ASSERT_THAT(result, "text and more text");
}
+TEST(SmallString, StringPlusOperatorReverseOrder)
+{
+ SmallString text = " and more text";
+
+ auto result = "text" + text;
+
+ ASSERT_THAT(result, "text and more text");
+}
+
TEST(SmallString, ShortStringCapacity)
{
ASSERT_THAT(SmallString().shortStringCapacity(), 30);