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>
This commit is contained in:
parent
b838170ceb
commit
543d994967
@ -326,13 +326,16 @@ void QWindowsClipboard::setMimeData(QMimeData *mimeData, QClipboard::Mode mode)
|
|||||||
const bool newData = !m_data || m_data->mimeData() != mimeData;
|
const bool newData = !m_data || m_data->mimeData() != mimeData;
|
||||||
if (newData) {
|
if (newData) {
|
||||||
releaseIData();
|
releaseIData();
|
||||||
|
if (mimeData)
|
||||||
m_data = new QWindowsOleDataObject(mimeData);
|
m_data = new QWindowsOleDataObject(mimeData);
|
||||||
}
|
}
|
||||||
|
|
||||||
const HRESULT src = OleSetClipboard(m_data);
|
const HRESULT src = OleSetClipboard(m_data);
|
||||||
if (src != S_OK) {
|
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",
|
qErrnoWarning("OleSetClipboard: Failed to set mime data (%s) on clipboard: %s",
|
||||||
qPrintable(mimeData->formats().join(QStringLiteral(", "))),
|
qPrintable(mimeDataFormats),
|
||||||
QWindowsContext::comErrorString(src).constData());
|
QWindowsContext::comErrorString(src).constData());
|
||||||
releaseIData();
|
releaseIData();
|
||||||
return;
|
return;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user