Commit 088eef57 authored by Marc Mutz's avatar Marc Mutz
Browse files

QStringBuilder: fix appending QLatin1String to QByteArray

The old code did the equivalent of strcpy(), thus stopping
at the first NUL byte, ignoring the QLatin1String's size().

That is not acceptable, for two reasons:

1. Appending QLatin1String to a QString uses the size(), too.

2. The QConcatenable claims an ExactSize = true, so
   it cannot go and write less data than it's own
   size() said it would. Even worse, it will happily
   write _more_ data, too, if the QLatin1String is
   not properly zero-terminated.

This change has low risk, because the equivalent change
to the QString branch has been applied between 5.2 and
5.3 (in fd0f1bc3

), with no complaints from the user base.

It is also in a branch that is very unlikely to be taken:
Since QConcatenable<QLatin1String> is setting ConvertTo
to QString, any QStringBuilder expression containing it
will only implicitly convert to QString, not QByteArray.
In fact, I don't even know how to make it invoke the
changed code in normal operation...

Change-Id: I486a76352af7f318ba05da845d3afee7d826c92a
Reviewed-by: default avatarOlivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: default avatarLars Knoll <lars.knoll@theqtcompany.com>
parent 5dbf8756
No related merge requests found
Showing with 3 additions and 3 deletions
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment