summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2012-02-16 12:27:46 +0200
committerQt by Nokia <qt-info@nokia.com>2012-02-17 05:25:59 +0100
commit543d994967628f580eb34d4d0241846eaef3bd7d (patch)
tree48706841ef2a7f4cbc7292835548f13fee645842 /src/plugins
parentb838170cebc8d1adefc6c8de34e6a39494ffd75e (diff)
Fix QWindowsClipboard crash when mimeData is NULL.
When setting NULL mimeData in QWindowsClipboard::setMimeData, and the OleSetClipboard call failed, the warning print crashed because it tried to access mimeData. Task-number: QTBUG-24327 Change-Id: I1f56fd28c9191a330e14a93b4b11ac9c89db6985 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/platforms/windows/qwindowsclipboard.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/plugins/platforms/windows/qwindowsclipboard.cpp b/src/plugins/platforms/windows/qwindowsclipboard.cpp
index 521ca3dc07..c1167ccf3a 100644
--- a/src/plugins/platforms/windows/qwindowsclipboard.cpp
+++ b/src/plugins/platforms/windows/qwindowsclipboard.cpp
@@ -326,13 +326,16 @@ void QWindowsClipboard::setMimeData(QMimeData *mimeData, QClipboard::Mode mode)
const bool newData = !m_data || m_data->mimeData() != mimeData;
if (newData) {
releaseIData();
- m_data = new QWindowsOleDataObject(mimeData);
+ if (mimeData)
+ m_data = new QWindowsOleDataObject(mimeData);
}
const HRESULT src = OleSetClipboard(m_data);
if (src != S_OK) {
+ QString mimeDataFormats = mimeData ?
+ mimeData->formats().join(QStringLiteral(", ")) : QString(QStringLiteral("NULL"));
qErrnoWarning("OleSetClipboard: Failed to set mime data (%s) on clipboard: %s",
- qPrintable(mimeData->formats().join(QStringLiteral(", "))),
+ qPrintable(mimeDataFormats),
QWindowsContext::comErrorString(src).constData());
releaseIData();
return;