aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlvmemetaobject.cpp
diff options
context:
space:
mode:
authorMaurice Kalinowski <maurice.kalinowski@qt.io>2016-09-27 10:31:31 +0200
committerMaurice Kalinowski <maurice.kalinowski@qt.io>2016-09-28 11:21:23 +0000
commitcc5e3da2cf524e88052620eed6b9cfc9c48b8ad4 (patch)
tree18e2126f647031f38e58ad33310c57258c153578 /src/qml/qml/qqmlvmemetaobject.cpp
parent53ef0406b70e57c451e89c4bb9a6dcb4c438af86 (diff)
winrt: Fix crash on ARM in release mode
The compiler seems to mis-optimize the switch/case statements causing a QString construction to end up in handling a QUrl and behaving unpredictable from there (crashes for some example). Change-Id: Idd2b6b64f1f41d0aa9204dd73dfdf7f5d0541798 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml/qml/qqmlvmemetaobject.cpp')
-rw-r--r--src/qml/qml/qqmlvmemetaobject.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/qml/qml/qqmlvmemetaobject.cpp b/src/qml/qml/qqmlvmemetaobject.cpp
index c8281f02c0..4f13b44fc0 100644
--- a/src/qml/qml/qqmlvmemetaobject.cpp
+++ b/src/qml/qml/qqmlvmemetaobject.cpp
@@ -608,6 +608,9 @@ QRectF QQmlVMEMetaObject::readPropertyAsRectF(int id)
return v->d()->data.value<QRectF>();
}
+#if defined(Q_OS_WINRT) && defined(_M_ARM)
+#pragma optimize("", off)
+#endif
int QQmlVMEMetaObject::metaCall(QObject *o, QMetaObject::Call c, int _id, void **a)
{
Q_ASSERT(o == object);
@@ -969,6 +972,9 @@ int QQmlVMEMetaObject::metaCall(QObject *o, QMetaObject::Call c, int _id, void *
else
return object->qt_metacall(c, _id, a);
}
+#if defined(Q_OS_WINRT) && defined(_M_ARM)
+#pragma optimize("", on)
+#endif
QV4::ReturnedValue QQmlVMEMetaObject::method(int index)
{