Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-136710

QML Image object causes a crash when it gets deleted while it's still loading

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P1: Critical
    • None
    • 6.7.3, 6.8.3, 6.9.0
    • None
    • WebAssembly

    Description

      QTBUG-77210 QML Image object causes a crash when it gets deleted while it's still loading - Qt Bug Tracker

      This bug seems to have been around since 6.7.3 and continues to this day.

      Simple demo

       

      // code placeholder
      import QtQuick
      import QtQuick.Controls
      ApplicationWindow{
          width: 640
          height: 480
          visible: true
          title: qsTr("Hello World")
          property var currentImageItem
          id:window
          
          Component {
                 id:imageCom
              Image {
                  anchors.fill: parent
                  source:"https://upload.wikimedia.org/wikipedia/commons/3/3f/Fronalpstock_big.jpg"
              }
          }
          footer: Row {
              Button{
                  text:"createImage"
                  onClicked: {
                      currentImageItem =  imageCom.createObject(window)
                  }
              }
              Button {
                  text:"destroy"
                  onClicked: {
                      if(currentImageItem) currentImageItem.destroy()
                  }
              }
          }
      } 

       

      Quickly click two buttons back and forth to trigger it. Loading pictures in TextArea, and other Views can be triggered.

      It is necessary to ensure that the Image object is destroyed before loading, otherwise it may be cached and cannot be triggered. It is recommended to test it in a poor network environment.

      Browser Trigger Probability: Edge/Chrome > Firefox

      console 

      Uncaught RuntimeError: memory access out of bounds
          at imagedemo.wasm.emscripten_builtin_malloc (imagedemo.wasm:0x143ef3d)
          at imagedemo.wasm.QArrayData::allocate1(QArrayData**, int, QArrayData::AllocationOption) (http://localhost:30000/imagedemo.wasm)
          at imagedemo.wasm.QByteArray::QByteArray(int, Qt::Initialization) (http://localhost:30000/imagedemo.wasm)
          at imagedemo.wasm.QNetworkReplyWasmImplPrivate::stateChange(emscripten_fetch_t*) (http://localhost:30000/imagedemo.wasm)
          at imagedemo.js:13246:68
          at callUserCallback (imagedemo.js:7730:5)
          at doCallback (imagedemo.js:13226:7)
          at reportReadyStateChange (imagedemo.js:13245:5)
          at xhr.onreadystatechange (imagedemo.js:13072:25)
      $emscripten_builtin_malloc @ imagedemo.wasm:0x143ef3d
      $QArrayData::allocate1(QArrayData**, int, QArrayData::AllocationOption) @ imagedemo.wasm:0x12d0cd0
      $QByteArray::QByteArray(int, Qt::Initialization) @ imagedemo.wasm:0x1272659
      $QNetworkReplyWasmImplPrivate::stateChange(emscripten_fetch_t*) @ imagedemo.wasm:0x11639a3
      (匿名) @ imagedemo.js:13246
      callUserCallback @ imagedemo.js:7730
      doCallback @ imagedemo.js:13226
      reportReadyStateChange @ imagedemo.js:13245
      xhr.onreadystatechange @ imagedemo.js:13072
      XMLHttpRequest.send
      fetchXHR @ imagedemo.js:13075
      performUncachedXhr @ imagedemo.js:13250
      getRequest.onsuccess @ imagedemo.js:13156
      IndexedDB
      fetchLoadCachedData @ imagedemo.js:13130
      _emscripten_start_fetch @ imagedemo.js:13280
      $emscripten_fetch @ imagedemo.wasm:0x1162939
      $QNetworkReplyWasmImplPrivate::doSendRequest()::$_0::operator()() @ imagedemo.wasm:0x1165414
      $std::_2::function::func<QNetworkReplyWasmImplPrivate::doSendRequest()::$_0, std::_2::allocator<QNetworkReplyWasmImplPrivate::doSendRequest()::$_0>, void ()>::operator()() @ imagedemo.wasm:0x1164b69
      invoke_vi @ imagedemo.js:14372
      $QEventDispatcherWasm::runOnMainThread(std::__2::function<void ()>) @ imagedemo.wasm:0x13fd036
      $QNetworkReplyWasmImplPrivate::doSendRequest() @ imagedemo.wasm:0x11638ea
      $QNetworkReplyWasmImplPrivate::setup(QNetworkAccessManager::Operation, QNetworkRequest const&, QIODevice*) @ imagedemo.wasm:0x116335e
      $QNetworkAccessManager::createRequest(QNetworkAccessManager::Operation, QNetworkRequest const&, QIODevice*) @ imagedemo.wasm:0x1127fed
      $QNetworkAccessManager::get(QNetworkRequest const&) @ imagedemo.wasm:0x112769f
      $QQuickPixmapReader::processJob(QQuickPixmapReply*, QUrl const&, QString const&, QQmlImageProviderBase::ImageType, QSharedPointer<QQuickImageProvider> const&) @ imagedemo.wasm:0x5c34ff
      $QQuickPixmapReader::processJobs() @ imagedemo.wasm:0x5c1008
      $ReaderThreadExecutionEnforcer::event(QEvent*) @ imagedemo.wasm:0x5c53d5
      $QCoreApplicationPrivate::notify_helper(QObject*, QEvent*) @ imagedemo.wasm:0x11cf996
      $QCoreApplication::notify(QObject*, QEvent*) @ imagedemo.wasm:0x11cfbcc
      $QGuiApplication::notify(QObject*, QEvent*) @ imagedemo.wasm:0x81f1e4
      invoke_iiii @ imagedemo.js:14394
      $QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) @ imagedemo.wasm:0x11d0313
      $QCoreApplication::sendPostedEvents(QObject*, int) @ imagedemo.wasm:0x11d04bc
      $QEventDispatcherWasm::processPostedEvents() @ imagedemo.wasm:0x13fd0fb
      $QWasmEventDispatcher::processPostedEvents() @ imagedemo.wasm:0x5329b
      $std::_2::function::func<QEventDispatcherWasm::wakeUp()::$_0, std::_2::allocator<QEventDispatcherWasm::wakeUp()::$_0>, void ()>::operator()() @ imagedemo.wasm:0x13fd399
      $(anonymous namespace)::trampoline(void*)::$0::_invoke(void*) @ imagedemo.wasm:0x13fa694
      wrapper @ imagedemo.js:8453
      callUserCallback @ imagedemo.js:7730
      (匿名) @ imagedemo.js:7738
      setTimeout
      safeSetTimeout @ imagedemo.js:7737
      _emscripten_async_call @ imagedemo.js:8457
      invoke_viii @ imagedemo.js:14361
      $QEventDispatcherWasm::wakeUp() @ imagedemo.wasm:0x13fcc45
      $QCoreApplication::postEvent(QObject*, QEvent*, int) @ imagedemo.wasm:0x11d0aba
      $QQuickPixmapReader::startJob(QQuickPixmapReply*) @ imagedemo.wasm:0x5c6543
      $QQuickPixmap::load(QQmlEngine*, QUrl const&, QRect const&, QSize const&, QFlags<QQuickPixmap::Option>, QQuickImageProviderOptions const&, int, int, double) @ imagedemo.wasm:0x5cc183
      $QQuickImageBase::loadPixmap(QUrl const&, QFlags<QQuickImageBase::LoadPixmapOption>) @ imagedemo.wasm:0x3fff83
      $QQuickImageBase::load() @ imagedemo.wasm:0x4003fa
      $non-virtual thunk to QQuickImageBase::componentComplete() @ imagedemo.wasm:0x400b1b
      $QQmlObjectCreator::finalize(QQmlInstantiationInterrupt&) @ imagedemo.wasm:0xfeb19d
      $QQmlComponentPrivate::complete(QQmlEnginePrivate*, QQmlComponentPrivate::ConstructionState*) @ imagedemo.wasm:0xf67ed0
      $QQmlComponentPrivate::completeCreate() @ imagedemo.wasm:0xf6758f
      $QQmlComponent::completeCreate() @ imagedemo.wasm:0xf6c7c2
      $QQmlComponentPrivate::createWithProperties(QObject*, QMap<QString, QVariant> const&, QQmlContext*, QQmlComponentPrivate::CreateBehavior, bool) @ imagedemo.wasm:0xf6a6aa
      $QQmlComponent::createObject(QObject*, QMap<QString, QVariant> const&) @ imagedemo.wasm:0xf6eb50
      $QQmlComponent::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) @ imagedemo.wasm:0xf70279
      $QQmlComponent::qt_metacall(QMetaObject::Call, int, void**) @ imagedemo.wasm:0xf70534
      $QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) @ imagedemo.wasm:0x11d9a8c
      $QQmlObjectOrGadget::metacall(QMetaObject::Call, int, void**) const @ imagedemo.wasm:0xfeed2e
      $QV4::CallMethod(QQmlObjectOrGadget const&, int, QMetaType, int, QMetaType const*, QV4::ExecutionEngine*, QV4::CallData*, QMetaObject::Call) @ imagedemo.wasm:0xe91610
      $QV4::QObjectMethod::callPrecise(QQmlObjectOrGadget const&, QQmlPropertyData const&, QV4::ExecutionEngine*, QV4::CallData*, QMetaObject::Call) @ imagedemo.wasm:0xe8ed65
      $QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const @ imagedemo.wasm:0xe96c47
      $QV4::QObjectMethod::virtualCall(QV4::FunctionObject const*, QV4::Value const*, QV4::Value const*, int) @ imagedemo.wasm:0xe962ae
      $QV4::Moth::VME::interpret(QV4::JSTypesStackFrame*, QV4::ExecutionEngine*, char const*) @ imagedemo.wasm:0xf11d13
      $QV4::Moth::VME::exec(QV4::JSTypesStackFrame*, QV4::ExecutionEngine*) @ imagedemo.wasm:0xf0d15f
      $QV4::doCall(QV4::Function*, QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext*) @ imagedemo.wasm:0xe3a795
      $QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext*) @ imagedemo.wasm:0xe39b69
      $QV4::Function::call(QObject*, void*, QMetaType const, int, QV4::ExecutionContext*) @ imagedemo.wasm:0xe39738
      $QQmlJavaScriptExpression::evaluate(void*, QMetaType const, int) @ imagedemo.wasm:0xfafcd3
      $QQmlBoundSignalExpression::evaluate(void**) @ imagedemo.wasm:0xf541ea
      $QQmlBoundSignal_callback(QQmlNotifierEndpoint*, void**) @ imagedemo.wasm:0xf5486f
      $QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) @ imagedemo.wasm:0xfdd25b
      $QQmlData::signalEmitted(QAbstractDeclarativeData*, QObject*, int, void**) @ imagedemo.wasm:0xf7dc03
      $void doActivate<false>(QObject*, int, void**) @ imagedemo.wasm:0x1215966
      $QMetaObject::activate(QObject*, QMetaObject const*, int, void**) @ imagedemo.wasm:0x121efc4
      $QQuickAbstractButtonPrivate::trigger(bool) @ imagedemo.wasm:0x2c5219
      $QQuickAbstractButtonPrivate::handleRelease(QPointF const&, unsigned long) @ imagedemo.wasm:0x2c507c
      $QQuickControl::touchEvent(QTouchEvent*) @ imagedemo.wasm:0x2e31db
      $QQuickItem::event(QEvent*) @ imagedemo.wasm:0x421933
      $QQuickAbstractButton::event(QEvent*) @ imagedemo.wasm:0x2c81de
      $QCoreApplicationPrivate::notify_helper(QObject*, QEvent*) @ imagedemo.wasm:0x11cf996
      $QCoreApplication::notify(QObject*, QEvent*) @ imagedemo.wasm:0x11cfbcc
      $QGuiApplication::notify(QObject*, QEvent*) @ imagedemo.wasm:0x81f1e4
      invoke_iiii @ imagedemo.js:14394
      $QCoreApplication::sendEvent(QObject*, QEvent*) @ imagedemo.wasm:0x11d06f2
      $QQuickDeliveryAgentPrivate::deliverMatchingPointsToItem(QQuickItem*, bool, QPointerEvent*, bool) @ imagedemo.wasm:0x5b589a
      $QQuickDeliveryAgentPrivate::deliverUpdatedPoints(QPointerEvent*) @ imagedemo.wasm:0x5b0255
      $QQuickDeliveryAgentPrivate::deliverPointerEvent(QPointerEvent*) @ imagedemo.wasm:0x5acf28
      $QQuickDeliveryAgentPrivate::handleTouchEvent(QTouchEvent*) @ imagedemo.wasm:0x5aae07
      $QQuickDeliveryAgent::event(QEvent*) @ imagedemo.wasm:0x5a9e3c
      $QQuickWindow::event(QEvent*) @ imagedemo.wasm:0x4a7b25
      $QQuickWindowQmlImpl::event(QEvent*) @ imagedemo.wasm:0x4b8072
      $QCoreApplicationPrivate::notify_helper(QObject*, QEvent*) @ imagedemo.wasm:0x11cf996
      $QCoreApplication::notify(QObject*, QEvent*) @ imagedemo.wasm:0x11cfbcc
      $QGuiApplication::notify(QObject*, QEvent*) @ imagedemo.wasm:0x81f1e4
      invoke_iiii @ imagedemo.js:14394
      $QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) @ imagedemo.wasm:0x11d0871
      $QGuiApplicationPrivate::processTouchEvent(QWindowSystemInterfacePrivate::TouchEvent*) @ imagedemo.wasm:0x822c2d
      $QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) @ imagedemo.wasm:0x81f83f
      $bool QWindowSystemHelper<QWindowSystemInterface::SynchronousDelivery>::handleEvent<QWindowSystemInterfacePrivate::TouchEvent, QWindow*, unsigned long, QEvent::Type, QPointingDevice const*, QList<QEventPoint>, QFlags<Qt::KeyboardModifier>>(QWindow*, unsigned long, QEvent::Type, QPointingDevice const*, QList<QEventPoint>, QFlags<Qt::KeyboardModifier>) @ imagedemo.wasm:0x8672ca
      $bool QWindowSystemHelper<QWindowSystemInterface::DefaultDelivery>::handleEvent<QWindowSystemInterfacePrivate::TouchEvent, QWindow*, unsigned long, QEvent::Type, QPointingDevice const*, QList<QEventPoint>, QFlags<Qt::KeyboardModifier>>(QWindow*, unsigned long, QEvent::Type, QPointingDevice const*, QList<QEventPoint>, QFlags<Qt::KeyboardModifier>) @ imagedemo.wasm:0x867078
      $bool QWindowSystemInterface::handleTouchEvent<QWindowSystemInterface::DefaultDelivery>(QWindow*, unsigned long, QPointingDevice const*, QList<QWindowSystemInterface::TouchPoint> const&, QFlags<Qt::KeyboardModifier>) @ imagedemo.wasm:0x866ede
      $ClientArea::deliverEvent(PointerEvent const&) @ imagedemo.wasm:0x6c4f7
      $ClientArea::processPointer(PointerEvent const&) @ imagedemo.wasm:0x6b9dd
      $std::_2::function::func<ClientArea::ClientArea(QWasmWindow*, QWasmScreen*, emscripten::val)::$_2, std::_2::allocator<ClientArea::ClientArea(QWasmWindow*, QWasmScreen*, emscripten::val)::$_2>, void (emscripten::val)>::operator()(emscripten::val&&) @ imagedemo.wasm:0x6da27
      invoke_vii @ imagedemo.js:14383
      $qstdweb::EventListener::handleEvent(emscripten::val) @ imagedemo.wasm:0x13f33ed
      invoke_vii @ imagedemo.js:14383
      $emscripten::internal::MethodInvoker<emscripten::internal::rvp::default_tag, void (qstdweb::EventListener::)(emscripten::val), void, qstdweb::EventListener, emscripten::val>::invoke(void (qstdweb::EventListener::* const&)(emscripten::val), qstdweb::EventListener*, emscripten::_EM_VAL*) @ imagedemo.wasm:0x13f34fe
      dynCall @ imagedemo.js:6328
      (匿名) @ imagedemo.js:6334
      QtEventListener.handleEvent @ VM218:8瞭解這個錯誤
      imagedemo.js:14386 Uncaught RuntimeError: memory access out of bounds
          at imagedemo.wasm.emscripten_builtin_malloc (http://localhost:30000/imagedemo.wasm:wasm-function[62446]:0x143ef3d)
          at imagedemo.wasm.QArrayData::allocate(QArrayData**, int, int, int, QArrayData::AllocationOption) (http://localhost:30000/imagedemo.wasm:wasm-function[59665]:0x12d0bf2)
          at imagedemo.wasm.QList<QWindowSystemInterface::TouchPoint>::reserve(int) (http://localhost:30000/imagedemo.wasm:wasm-function[1327]:0x6ca6a)
          at imagedemo.wasm.ClientArea::deliverEvent(PointerEvent const&) (http://localhost:30000/imagedemo.wasm:wasm-function[1323]:0x6c304)
          at imagedemo.wasm.ClientArea::processPointer(PointerEvent const&) (http://localhost:30000/imagedemo.wasm:wasm-function[1322]:0x6b9dd)
          at imagedemo.wasm.std::_2::function::func<ClientArea::ClientArea(QWasmWindow*, QWasmScreen*, emscripten::val)::$_0, std::_2::allocator<ClientArea::ClientArea(QWasmWindow*, QWasmScreen*, emscripten::val)::$_0>, void (emscripten::val)>::operator()(emscripten::val&&) (http://localhost:30000/imagedemo.wasm:wasm-function[1339]:0x6d763)
          at invoke_vii (http://localhost:30000/imagedemo.js:14383:29)
          at imagedemo.wasm.qstdweb::EventListener::handleEvent(emscripten::val) (http://localhost:30000/imagedemo.wasm:wasm-function[61765]:0x13f33ed)
          at invoke_vii (http://localhost:30000/imagedemo.js:14383:29)
          at imagedemo.wasm.emscripten::internal::MethodInvoker<emscripten::internal::rvp::default_tag, void (qstdweb::EventListener::)(emscripten::val), void, qstdweb::EventListener, emscripten::val>::invoke(void (qstdweb::EventListener::* const&)(emscripten::val), qstdweb::EventListener*, emscripten::_EM_VAL*) (http://localhost:30000/imagedemo.wasm:wasm-function[61766]:0x13f34fe)
      $emscripten_builtin_malloc @ imagedemo.wasm:0x143ef3d
      $QArrayData::allocate(QArrayData**, int, int, int, QArrayData::AllocationOption) @ imagedemo.wasm:0x12d0bf2
      $QList<QWindowSystemInterface::TouchPoint>::reserve(int) @ imagedemo.wasm:0x6ca6a
      $ClientArea::deliverEvent(PointerEvent const&) @ imagedemo.wasm:0x6c304
      $ClientArea::processPointer(PointerEvent const&) @ imagedemo.wasm:0x6b9dd
      $std::_2::function::func<ClientArea::ClientArea(QWasmWindow*, QWasmScreen*, emscripten::val)::$_0, std::_2::allocator<ClientArea::ClientArea(QWasmWindow*, QWasmScreen*, emscripten::val)::$_0>, void (emscripten::val)>::operator()(emscripten::val&&) @ imagedemo.wasm:0x6d763
      invoke_vii @ imagedemo.js:14383
      $qstdweb::EventListener::handleEvent(emscripten::val) @ imagedemo.wasm:0x13f33ed
      invoke_vii @ imagedemo.js:14383
      $emscripten::internal::MethodInvoker<emscripten::internal::rvp::default_tag, void (qstdweb::EventListener::)(emscripten::val), void, qstdweb::EventListener, emscripten::val>::invoke(void (qstdweb::EventListener::* const&)(emscripten::val), qstdweb::EventListener*, emscripten::_EM_VAL*) @ imagedemo.wasm:0x13f34fe
      dynCall @ imagedemo.js:6328
      (匿名) @ imagedemo.js:6334
      QtEventListener.handleEvent @ VM218:8瞭解這個錯誤
      imagedemo.wasm:0x143ef3d Uncaught RuntimeError: memory access out of bounds
          at imagedemo.wasm.emscripten_builtin_malloc (imagedemo.wasm:0x143ef3d)
          at imagedemo.wasm.operator_new_impl(unsigned long) (http://localhost:30000/imagedemo.wasm)
          at imagedemo.wasm.operator new(unsigned long) (http://localhost:30000/imagedemo.wasm)
          at imagedemo.wasm.QRegion::QRegion(QRect const&, QRegion::RegionType) (http://localhost:30000/imagedemo.wasm)
          at imagedemo.wasm.QWasmCompositor::deliverUpdateRequest(QWasmWindow*, QRect const&, QWasmCompositor::UpdateRequestDeliveryType) (http://localhost:30000/imagedemo.wasm)
          at imagedemo.wasm.QWasmCompositor::deliverUpdateRequests() (http://localhost:30000/imagedemo.wasm)
          at imagedemo.wasm.QWasmCompositor::requestUpdate()::$0::_invoke(double, void*) (http://localhost:30000/imagedemo.wasm)
          at imagedemo.js:12609:66
      $emscripten_builtin_malloc @ imagedemo.wasm:0x143ef3d
      $operator_new_impl(unsigned long) @ imagedemo.wasm:0x145df05
      $operator new(unsigned long) @ imagedemo.wasm:0x145dedb
      $QRegion::QRegion(QRect const&, QRegion::RegionType) @ imagedemo.wasm:0x948147
      $QWasmCompositor::deliverUpdateRequest(QWasmWindow*, QRect const&, QWasmCompositor::UpdateRequestDeliveryType) @ imagedemo.wasm:0x374f0
      $QWasmCompositor::deliverUpdateRequests() @ imagedemo.wasm:0x37341
      $QWasmCompositor::requestUpdate()::$0::_invoke(double, void*) @ imagedemo.wasm:0x37064
      (匿名) @ imagedemo.js:12609
      requestAnimationFrame
      _emscripten_request_animation_frame @ imagedemo.js:12609
      $QWasmCompositor::requestUpdateWindow(QWasmWindow*, QRect const&, QWasmCompositor::UpdateRequestDeliveryType) @ imagedemo.wasm:0x36d59
      $QWasmWindow::requestActivateWindow() @ imagedemo.wasm:0x656a4
      $QWindow::requestActivate() @ imagedemo.wasm:0x856f9a
      $ClientArea::processPointer(PointerEvent const&) @ imagedemo.wasm:0x6b913
      $std::_2::function::func<ClientArea::ClientArea(QWasmWindow*, QWasmScreen*, emscripten::val)::$_0, std::_2::allocator<ClientArea::ClientArea(QWasmWindow*, QWasmScreen*, emscripten::val)::$_0>, void (emscripten::val)>::operator()(emscripten::val&&) @ imagedemo.wasm:0x6d763
      invoke_vii @ imagedemo.js:14383
      $qstdweb::EventListener::handleEvent(emscripten::val) @ imagedemo.wasm:0x13f33ed
      invoke_vii @ imagedemo.js:14383
      $emscripten::internal::MethodInvoker<emscripten::internal::rvp::default_tag, void (qstdweb::EventListener::)(emscripten::val), void, qstdweb::EventListener, emscripten::val>::invoke(void (qstdweb::EventListener::* const&)(emscripten::val), qstdweb::EventListener*, emscripten::_EM_VAL*) @ imagedemo.wasm:0x13f34fe
      dynCall @ imagedemo.js:6328
      (匿名) @ imagedemo.js:6334
      QtEventListener.handleEvent @ VM218:8瞭解這個錯誤
      imagedemo.js:14386 Uncaught RuntimeError: memory access out of bounds
          at imagedemo.wasm.emscripten_builtin_malloc (http://localhost:30000/imagedemo.wasm:wasm-function[62446]:0x143ef3d)
          at imagedemo.wasm.QArrayData::allocate(QArrayData**, int, int, int, QArrayData::AllocationOption) (http://localhost:30000/imagedemo.wasm:wasm-function[59665]:0x12d0bf2)
          at imagedemo.wasm.QList<QWindowSystemInterface::TouchPoint>::reserve(int) (http://localhost:30000/imagedemo.wasm:wasm-function[1327]:0x6ca6a)
          at imagedemo.wasm.ClientArea::deliverEvent(PointerEvent const&) (http://localhost:30000/imagedemo.wasm:wasm-function[1323]:0x6c304)
          at imagedemo.wasm.ClientArea::processPointer(PointerEvent const&) (http://localhost:30000/imagedemo.wasm:wasm-function[1322]:0x6b9dd)
          at imagedemo.wasm.std::_2::function::func<ClientArea::ClientArea(QWasmWindow*, QWasmScreen*, emscripten::val)::$_2, std::_2::allocator<ClientArea::ClientArea(QWasmWindow*, QWasmScreen*, emscripten::val)::$_2>, void (emscripten::val)>::operator()(emscripten::val&&) (http://localhost:30000/imagedemo.wasm:wasm-function[1355]:0x6da27)
          at invoke_vii (http://localhost:30000/imagedemo.js:14383:29)
          at imagedemo.wasm.qstdweb::EventListener::handleEvent(emscripten::val) (http://localhost:30000/imagedemo.wasm:wasm-function[61765]:0x13f33ed)
          at invoke_vii (http://localhost:30000/imagedemo.js:14383:29)
          at imagedemo.wasm.emscripten::internal::MethodInvoker<emscripten::internal::rvp::default_tag, void (qstdweb::EventListener::)(emscripten::val), void, qstdweb::EventListener, emscripten::val>::invoke(void (qstdweb::EventListener::* const&)(emscripten::val), qstdweb::EventListener*, emscripten::_EM_VAL*) (http://localhost:30000/imagedemo.wasm:wasm-function[61766]:0x13f34fe)

       

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            lopotter-ext Lorn Potter
            lzhdsd lzh lzh
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes