diff options
| -rw-r--r-- | src/libraries/qmfclient/qmailmessage.cpp | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/src/libraries/qmfclient/qmailmessage.cpp b/src/libraries/qmfclient/qmailmessage.cpp index 5ec19014..0089244a 100644 --- a/src/libraries/qmfclient/qmailmessage.cpp +++ b/src/libraries/qmfclient/qmailmessage.cpp @@ -1689,8 +1689,7 @@ void QMailMessageHeaderFieldPrivate::parse(const QByteArray& text, bool structur if (_id.isEmpty()) { _id = QByteArray(token, (it - token)).trimmed(); token = (it + 1); - } - else if (_structured) { + } else if (_structured) { // If this is a structured header, there can be only one colon token = (it + 1); } @@ -1733,8 +1732,6 @@ void QMailMessageHeaderFieldPrivate::parse(const QByteArray& text, bool structur if (!name.isEmpty() && !value.isEmpty()) addParameter(name, value); - } else if (_structured) { - malformed = true; } } } @@ -4012,6 +4009,12 @@ const QMailMessagePart& QMailMessagePartContainerPrivate::partAt(const QMailMess } Q_ASSERT(part); + if (!part) { + qCWarning(lcMessaging) << Q_FUNC_INFO << "No QMailMessagePart found, this shouldn't happen"; + static QMailMessagePart errorPart; + return errorPart; + } + return *part; } @@ -4030,6 +4033,12 @@ QMailMessagePart& QMailMessagePartContainerPrivate::partAt(const QMailMessagePar } } + if (!part) { + qCWarning(lcMessaging) << Q_FUNC_INFO << "No QMailMessagePart found, this shouldn't happen"; + static QMailMessagePart errorPart; + return errorPart; + } + return *part; } @@ -8509,10 +8518,10 @@ struct ChunkStore { QList<QMailMessage::MessageChunk> chunks; QByteArray chunk; - QDataStream *ds; + QDataStream ds; ChunkStore() - : ds(new QDataStream(&chunk, QIODevice::WriteOnly | QIODevice::Unbuffered)) + : ds(&chunk, QIODevice::WriteOnly | QIODevice::Unbuffered) { } @@ -8523,24 +8532,16 @@ struct ChunkStore void close() { - if (ds) { - delete ds; - ds = nullptr; - - if (!chunk.isEmpty()) { - chunks.append(qMakePair(QMailMessage::Text, chunk)); - } + if (!chunk.isEmpty()) { + chunks.append(qMakePair(QMailMessage::Text, chunk)); } } void operator()(QMailMessage::ChunkType type) { // This chunk is now complete - delete ds; chunks.append(qMakePair(type, chunk)); - chunk.clear(); - ds = new QDataStream(&chunk, QIODevice::WriteOnly | QIODevice::Unbuffered); } }; @@ -8553,7 +8554,7 @@ QList<QMailMessage::MessageChunk> QMailMessage::toRfc2822Chunks(EncodingFormat f { ChunkStore store; - partContainerImpl()->toRfc2822<ChunkStore>(store.ds, format, status(), &store); + partContainerImpl()->toRfc2822<ChunkStore>(&store.ds, format, status(), &store); store.close(); return store.chunks; |
