summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/corelib/serialization/qtextstream.cpp29
-rw-r--r--src/corelib/serialization/qtextstream_p.h2
2 files changed, 14 insertions, 17 deletions
diff --git a/src/corelib/serialization/qtextstream.cpp b/src/corelib/serialization/qtextstream.cpp
index 061b39d1fb8..44eb86fad84 100644
--- a/src/corelib/serialization/qtextstream.cpp
+++ b/src/corelib/serialization/qtextstream.cpp
@@ -696,7 +696,8 @@ inline void QTextStreamPrivate::restoreToSavedConverterState()
/*!
\internal
*/
-void QTextStreamPrivate::write(QStringView s)
+template <typename Appendable>
+void QTextStreamPrivate::writeImpl(Appendable s)
{
if (string) {
// ### What about seek()??
@@ -711,16 +712,17 @@ void QTextStreamPrivate::write(QStringView s)
/*!
\internal
*/
+void QTextStreamPrivate::write(QStringView s)
+{
+ writeImpl(s);
+}
+
+/*!
+ \internal
+*/
void QTextStreamPrivate::write(QChar ch)
{
- if (string) {
- // ### What about seek()??
- string->append(ch);
- } else {
- writeBuffer += ch;
- if (writeBuffer.size() > QTEXTSTREAM_BUFFERSIZE)
- flushWriteBuffer();
- }
+ writeImpl(ch);
}
/*!
@@ -728,14 +730,7 @@ void QTextStreamPrivate::write(QChar ch)
*/
void QTextStreamPrivate::write(QLatin1StringView data)
{
- if (string) {
- // ### What about seek()??
- string->append(data);
- } else {
- writeBuffer += data;
- if (writeBuffer.size() > QTEXTSTREAM_BUFFERSIZE)
- flushWriteBuffer();
- }
+ writeImpl(data);
}
/*!
diff --git a/src/corelib/serialization/qtextstream_p.h b/src/corelib/serialization/qtextstream_p.h
index 38947dadeda..41d74ddcda0 100644
--- a/src/corelib/serialization/qtextstream_p.h
+++ b/src/corelib/serialization/qtextstream_p.h
@@ -167,6 +167,8 @@ public:
void flushWriteBuffer();
private:
+ template <typename Appendable>
+ void writeImpl(Appendable data);
template <typename StringView>
void putStringImpl(StringView view, bool number);
};