Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.0.0
-
Mac OS X 10.8.2, Apple clang version 4.0 (tags/Apple/clang-421.0.57) (based on LLVM 3.1svn)
http://releases.qt-project.org/qt5/5.0.0/qt-mac-opensource-5.0.0-clang-offline.dmg
-
a48ae1d629f4c7939f3421db969f43db6bab8e11
Description
Attached is a simple Qt Quick 2 application with empty window and a mouse area. The mouse area has positionChanged handler which assigns a point property multiple times in a loop. When the application is compiled with clang 64bit, mkspec macx-clang-libc++, it crashes every time in QtV8 when you move the mouse cursor around the window for a few seconds. It does not seem to happen if using mkspec macx-clang. Here's the stack trace:
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 QtV8 0x000000010f11b185 v8::internal::JSObject::SetExternalResourceObject(v8::internal::Object*) + 149 1 QtV8 0x000000010f10ebd0 v8::Object::SetExternalResource(v8::Object::ExternalResource*) + 144 2 QtQml 0x000000010e5297e3 QV8ValueTypeWrapper::newValueType(QVariant const&, QQmlValueType*) + 115 3 QtQml 0x000000010e508b40 QV8Engine::fromVariant(QVariant const&) + 1152 4 QtQml 0x000000010e5305ec QQmlBuiltinFunctions::point(v8::Arguments const&) + 204 5 QtV8 0x000000010f132c6b v8::internal::Builtin_HandleApiCall(v8::internal::(anonymous namespace)::BuiltinArguments<(v8::internal::BuiltinExtraArguments)1>, v8::internal::Isolate*) + 459 6 ??? 0x00003f288480618e 0 + 69443254247822 7 ??? 0x00003f2884838327 0 + 69443254453031 8 ??? 0x00003f28848249e7 0 + 69443254372839 9 ??? 0x00003f2884811477 0 + 69443254293623 10 QtV8 0x000000010f15a4f9 v8::internal::Invoke(bool, v8::internal::Handle<v8::internal::JSFunction>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*, bool*, v8::internal::Handle<v8::internal::Object>) + 537 11 QtV8 0x000000010f15a03c v8::internal::Execution::Call(v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*, bool*, bool, v8::internal::Handle<v8::internal::Object>) + 364 12 QtV8 0x000000010f159ec1 v8::internal::Execution::Call(v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*, bool*, bool) + 33 13 QtV8 0x000000010f10caf5 v8::Function::Call(v8::Handle<v8::Object>, int, v8::Handle<v8::Value>*) + 325 14 QtQml 0x000000010e4ac001 QQmlJavaScriptExpression::evaluate(QQmlContextData*, v8::Handle<v8::Function>, int, v8::Handle<v8::Value>*, bool*) + 673 15 QtQml 0x000000010e45127d QQmlBoundSignalExpression::evaluate(void**) + 1597 16 QtQml 0x000000010e451ebc QQmlBoundSignal_callback(QQmlNotifierEndpoint*, void**) + 380 17 QtQml 0x000000010e490a7c QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) + 92 18 QtQml 0x000000010e401d4f QQmlData::signalEmitted(QAbstractDeclarativeData*, QObject*, int, void**) + 703 19 QtCore 0x000000010e9887ad QMetaObject::activate(QObject*, int, int, void**) + 221 20 QtQuick 0x000000010e1ca680 QQuickMouseArea::positionChanged(QQuickMouseEvent*) + 64 21 QtQuick 0x000000010e1129d7 QQuickMouseArea::hoverMoveEvent(QHoverEvent*) + 279 22 QtQuick 0x000000010e0a877c QQuickWindow::sendEvent(QQuickItem*, QEvent*) + 268 23 QtQuick 0x000000010e0a8b39 QQuickWindowPrivate::deliverHoverEvent(QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, bool&) + 633 24 QtQuick 0x000000010e0a89cf QQuickWindowPrivate::deliverHoverEvent(QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, bool&) + 271 25 QtQuick 0x000000010e0a89cf QQuickWindowPrivate::deliverHoverEvent(QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, bool&) + 271 26 QtQuick 0x000000010e0ac3e6 QQuickWindow::mouseMoveEvent(QMouseEvent*) + 166 27 QtGui 0x000000010ed0b032 QWindow::event(QEvent*) + 178 28 QtQuick 0x000000010e0aaf3a QQuickWindow::event(QEvent*) + 266 29 QtCore 0x000000010e95b324 QCoreApplication::notify(QObject*, QEvent*) + 180 30 QtGui 0x000000010ed008c5 QGuiApplication::notify(QObject*, QEvent*) + 165 31 QtCore 0x000000010e95b23e QCoreApplication::notifyInternal(QObject*, QEvent*) + 110 32 QtGui 0x000000010ed01609 QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) + 1961 33 QtGui 0x000000010ed00a6c QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) + 92 34 QtGui 0x000000010ecf5028 QWindowSystemInterface::sendWindowSystemEventsImplementation(QFlags<QEventLoop::ProcessEventsFlag>) + 56 35 QtGui 0x000000010ecf50b8 QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 24 36 libqcocoa.dylib 0x0000000110b07df5 QCocoaEventDispatcherPrivate::processPostedEvents() + 149 37 libqcocoa.dylib 0x0000000110b086fb QCocoaEventDispatcherPrivate::postedEventsSourceCallback(void*) + 43 38 com.apple.CoreFoundation 0x00007fff8e1c7101 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 39 com.apple.CoreFoundation 0x00007fff8e1c6a25 __CFRunLoopDoSources0 + 245 40 com.apple.CoreFoundation 0x00007fff8e1e9dc5 __CFRunLoopRun + 789 41 com.apple.CoreFoundation 0x00007fff8e1e96b2 CFRunLoopRunSpecific + 290 42 com.apple.HIToolbox 0x00007fff882810a4 RunCurrentEventLoopInMode + 209 43 com.apple.HIToolbox 0x00007fff88280e42 ReceiveNextEventCommon + 356 44 com.apple.HIToolbox 0x00007fff88280cd3 BlockUntilNextEventMatchingListInMode + 62 45 com.apple.AppKit 0x00007fff894ed613 _DPSNextEvent + 685 46 com.apple.AppKit 0x00007fff894eced2 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 128 47 com.apple.AppKit 0x00007fff894e4283 -[NSApplication run] + 517 48 libqcocoa.dylib 0x0000000110b073fb QCocoaEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 1307 49 QtCore 0x000000010e958a43 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 371 50 QtCore 0x000000010e95b7c5 QCoreApplication::exec() + 357 51 com.yourcompany.qtq2test 0x000000010dffbe23 main + 147 (main.cpp:12) 52 com.yourcompany.qtq2test 0x000000010dffbd84 start + 52