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

[TapHandler] Internal warning "QObject::disconnect: Unexpected nullptr parameter"

    XMLWordPrintable

Details

    • macOS, Windows
    • 821f8f1f6 (dev), 08cb6771f (6.7), f92c49a8d (tqtc/lts-6.5)

    Description

      I found this among our user's errors on AppCenter

      QObject::disconnect: Unexpected nullptr parameter
      

      Stack:

       	Qt6Core.dll!QMessageLogger::warning(const char * msg, ...) Line 644	C++
       	Qt6Core.dll!QObject::disconnectImpl(const QObject * sender, void * * signal, const QObject * receiver, void * * slot, const QMetaObject * senderMetaObject) Line 5196	C++
       	[Inline Frame] Qt6Quick.dll!QObject::disconnect(const QQuickWindow *) Line 376	C++
      >	Qt6Quick.dll!QQuickTapHandler::connectPreRenderSignal(bool conn) Line 375	C++
       	Qt6Quick.dll!QQuickTapHandler::setPressed(bool press, bool cancel, QPointerEvent * event, QEventPoint & point) Line 302	C++
       	Qt6Quick.dll!QQuickTapHandler::wantsEventPoint(const QPointerEvent * event, const QEventPoint & point) Line 151	C++
       	Qt6Quick.dll!QQuickSinglePointHandler::wantsPointerEvent(QPointerEvent * event) Line 90	C++
       	Qt6Quick.dll!QQuickPointerHandler::handlePointerEvent(QPointerEvent * event) Line 677	C++
       	Qt6Quick.dll!QQuickDeliveryAgentPrivate::deliverUpdatedPoints(QPointerEvent * event) Line 1895	C++
       	Qt6Quick.dll!QQuickDeliveryAgentPrivate::deliverPointerEvent(QPointerEvent * event) Line 1769	C++
       	Qt6Quick.dll!QQuickDeliveryAgentPrivate::handleMouseEvent(QMouseEvent * event) Line 1542	C++
       	Qt6Quick.dll!QQuickDeliveryAgent::event(QEvent * ev) Line 836	C++
       	Qt6Quick.dll!QQuickWindow::event(QEvent * e) Line 1499	C++
       	Qt6Widgets.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) Line 3352	C++
       	Qt6Widgets.dll!QApplication::notify(QObject * receiver, QEvent * e) Line 3304	C++
       	Qt6Core.dll!QCoreApplication::notifyInternal2(QObject * receiver, QEvent * event) Line 1067	C++
       	Qt6Gui.dll!QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent * e) Line 2281	C++
       	Qt6Gui.dll!QWindowSystemInterface::sendWindowSystemEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 1143	C++
       	Qt6Core.dll!QEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 476	C++
       	Qt6Gui.dll!QWindowsGuiEventDispatcher::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 73	C++
       	[Inline Frame] Qt6Core.dll!QEventLoop::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag>) Line 136	C++
       	Qt6Core.dll!QEventLoop::exec(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 218	C++
       	Qt6Core.dll!QCoreApplication::exec() Line 1388	C++
      

      It seems par->window() is null at the moment:

      void QQuickTapHandler::connectPreRenderSignal(bool conn)
      {
          auto par = parentItem();
          if (!par)
              return;
          if (conn)
              connect(par->window(), &QQuickWindow::beforeSynchronizing, this, &QQuickTapHandler::updateTimeHeld);
          else
              disconnect(par->window(), &QQuickWindow::beforeSynchronizing, this, &QQuickTapHandler::updateTimeHeld); <-- HERE
      }
      

      Unfortunately I can't reproduce this locally and provide a minimal reproducer.

      Attachments

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

        Activity

          People

            srutledg Shawn Rutledge
            studiosus Vladimir Belyavsky
            Votes:
            3 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes