summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-07-02 18:08:58 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-07-02 18:08:58 (GMT)
commit0eee17b5d789c2314f582e363e377809ef6dea7c (patch)
treec65dcd250ac022ac77615780ad1a7ebbbeef70ac
parente720c269b5f98da6c2b430df84cd86c3aede3d81 (diff)
parent6a405778ca053d05d32ea8e0949bee917c0316e2 (diff)
downloadQt-0eee17b5d789c2314f582e363e377809ef6dea7c.zip
Qt-0eee17b5d789c2314f582e363e377809ef6dea7c.tar.gz
Qt-0eee17b5d789c2314f582e363e377809ef6dea7c.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: Crash when dragging with mingw Don't do alpha/opaque check which might cause a conversion and later pointer not-matching.
-rw-r--r--src/corelib/global/qglobal.h5
-rw-r--r--src/corelib/kernel/qeventdispatcher_win_p.h2
-rw-r--r--src/gui/painting/qgraphicssystem_runtime.cpp2
3 files changed, 5 insertions, 4 deletions
diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h
index 76f35ac..8a3166d 100644
--- a/src/corelib/global/qglobal.h
+++ b/src/corelib/global/qglobal.h
@@ -1066,10 +1066,11 @@ redefine to built-in booleans to make autotests work properly */
//the alignment needs to be forced for sse2 to not crash with mingw
#if defined(Q_WS_WIN)
# if defined(Q_CC_MINGW)
-# define QT_WIN_CALLBACK CALLBACK __attribute__ ((force_align_arg_pointer))
+# define QT_ENSURE_STACK_ALIGNED_FOR_SSE __attribute__ ((force_align_arg_pointer))
# else
-# define QT_WIN_CALLBACK CALLBACK
+# define QT_ENSURE_STACK_ALIGNED_FOR_SSE
# endif
+# define QT_WIN_CALLBACK CALLBACK QT_ENSURE_STACK_ALIGNED_FOR_SSE
#endif
typedef int QNoImplicitBoolCast;
diff --git a/src/corelib/kernel/qeventdispatcher_win_p.h b/src/corelib/kernel/qeventdispatcher_win_p.h
index 788cc44..b219841 100644
--- a/src/corelib/kernel/qeventdispatcher_win_p.h
+++ b/src/corelib/kernel/qeventdispatcher_win_p.h
@@ -76,7 +76,7 @@ public:
explicit QEventDispatcherWin32(QObject *parent = 0);
~QEventDispatcherWin32();
- bool processEvents(QEventLoop::ProcessEventsFlags flags);
+ bool QT_ENSURE_STACK_ALIGNED_FOR_SSE processEvents(QEventLoop::ProcessEventsFlags flags);
bool hasPendingEvents();
void registerSocketNotifier(QSocketNotifier *notifier);
diff --git a/src/gui/painting/qgraphicssystem_runtime.cpp b/src/gui/painting/qgraphicssystem_runtime.cpp
index 1c3ae10..3438137 100644
--- a/src/gui/painting/qgraphicssystem_runtime.cpp
+++ b/src/gui/painting/qgraphicssystem_runtime.cpp
@@ -418,7 +418,7 @@ void QRuntimeGraphicsSystem::setGraphicsSystem(const QString &name)
QRuntimePixmapData *proxy = m_pixmapDatas.at(i);
QPixmapData *newData = m_graphicsSystem->createPixmapData(proxy->m_data);
// ### TODO Optimize. Openvg and s60raster graphics systems could switch internal ARGB32_PRE QImage buffers.
- newData->fromImage(proxy->m_data->toImage(), Qt::AutoColor | Qt::OrderedAlphaDither);
+ newData->fromImage(proxy->m_data->toImage(), Qt::NoOpaqueDetection);
delete proxy->m_data;
proxy->m_data = newData;
proxy->readBackInfo();