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

QGraphicsView/QGraphicsScene and StyleSheet: Segmentation fault in styles/qdrawutil.cpp - qDrawBorderPixmap

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P2: Important
    • None
    • 5.1.1, 5.2.0 Beta1
    • Widgets: Style Sheets
    • None
    • Linux OpenSuse-12.3 (x86_64) with qt compiled from qtbase-opensource-src-5.2.0-beta1.tar.xz (with --debug -developer-build).

    Description

      Running attached test program leads to Segmentation fault in styles/qdrawutil.cpp:841 qDrawBorderPixmap() (tested with 5.1.1 and 5.2.0-beta1, old 4.8.4 works fine).

      $ tar -xvzf test_qt_button-0.1.tgz
      $ ../qtbase-opensource-src-5.2.0-beta1-install/bin/qmake test_qt_button.pro
      $ make
      $ gdb ./test_qt_button
      GNU gdb (GDB) SUSE (7.5.1-2.1.1)
      This GDB was configured as "x86_64-suse-linux".
      (gdb) run
      QWidget::paintEngine: Should no longer be called
      QWidget::paintEngine: Should no longer be called
      QWidget::paintEngine: Should no longer be called
      QPainter::begin: Paint device returned engine == 0, type: 1
      QPainter::setRenderHint: Painter must be active to set rendering hints
      
      Program received signal SIGSEGV, Segmentation fault.
      0x00007ffff75c7857 in qDrawBorderPixmap (painter=0x7fffffffbe20, targetRect=..., targetMargins=..., pixmap=..., sourceRect=..., sourceMargins=..., rules=..., hints=...) at styles/qdrawutil.cpp:841
      841         if (painter->paintEngine()->type() != QPaintEngine::OpenGL
      (gdb) where
      #0  0x00007ffff75c7857 in qDrawBorderPixmap (painter=0x7fffffffbe20, targetRect=..., targetMargins=..., pixmap=..., sourceRect=..., sourceMargins=..., rules=..., hints=...) at styles/qdrawutil.cpp:841
      #1  0x00007ffff760ca07 in QRenderRule::drawBorderImage (this=0x7fffffff86a0, p=0x7fffffffbe20, rect=...) at styles/qstylesheetstyle.cpp:1134
      #2  0x00007ffff760d455 in QRenderRule::drawBorder (this=0x7fffffff86a0, p=0x7fffffffbe20, rect=...) at styles/qstylesheetstyle.cpp:1224
      #3  0x00007ffff760e104 in QRenderRule::drawFrame (this=0x7fffffff86a0, p=0x7fffffffbe20, rect=...) at styles/qstylesheetstyle.cpp:1322
      #4  0x00007ffff760e1a9 in QRenderRule::drawRule (this=0x7fffffff86a0, p=0x7fffffffbe20, rect=...) at styles/qstylesheetstyle.cpp:1334
      #5  0x00007ffff76189c7 in QStyleSheetStyle::drawControl (this=0x7fd3b0, ce=QStyle::CE_PushButtonBevel, opt=0x7fffffffbdc0, p=0x7fffffffbe20, w=0x7ee5e0) at styles/qstylesheetstyle.cpp:3365
      #6  0x00007ffff75df6dd in QCommonStyle::drawControl (this=0x7fd3b0, element=QStyle::CE_PushButton, opt=0x7fffffffbdc0, p=0x7fffffffbe20, widget=0x7ee5e0) at styles/qcommonstyle.cpp:1188
      #7  0x00007ffff764ab27 in QWindowsStyle::drawControl (this=0x7fd3b0, ce=QStyle::CE_PushButton, opt=0x7fffffffbdc0, p=0x7fffffffbe20, widget=0x7ee5e0) at styles/qwindowsstyle.cpp:1830
      #8  0x00007ffff7618782 in QStyleSheetStyle::drawControl (this=0x7fd3b0, ce=QStyle::CE_PushButton, opt=0x7fffffffbdc0, p=0x7fffffffbe20, w=0x7ee5e0) at styles/qstylesheetstyle.cpp:3341
      #9  0x00007ffff76b4eb6 in QStylePainter::drawControl (this=0x7fffffffbe20, ce=QStyle::CE_PushButton, opt=...) at ../../include/QtWidgets/../../src/widgets/styles/qstylepainter.h:86
      #10 0x00007ffff7751bf2 in QPushButton::paintEvent (this=0x7ee5e0) at widgets/qpushbutton.cpp:457
      #11 0x00007ffff7596a0d in QWidget::event (this=0x7ee5e0, event=0x7fffffffc980) at kernel/qwidget.cpp:8090
      #12 0x00007ffff769a5af in QAbstractButton::event (this=0x7ee5e0, e=0x7fffffffc980) at widgets/qabstractbutton.cpp:1097
      #13 0x00007ffff7752815 in QPushButton::event (this=0x7ee5e0, e=0x7fffffffc980) at widgets/qpushbutton.cpp:681
      #14 0x00007ffff754ba36 in QApplicationPrivate::notify_helper (this=0x604010, receiver=0x7ee5e0, e=0x7fffffffc980) at kernel/qapplication.cpp:3470
      #15 0x00007ffff754b897 in QApplication::notify (this=0x7fffffffdc30, receiver=0x7ee5e0, e=0x7fffffffc980) at kernel/qapplication.cpp:3435
      #16 0x00007ffff6666a98 in QCoreApplication::notifyInternal (this=0x7fffffffdc30, receiver=0x7ee5e0, event=0x7fffffffc980) at kernel/qcoreapplication.cpp:882
      #17 0x00007ffff754e09b in QCoreApplication::sendSpontaneousEvent (receiver=0x7ee5e0, event=0x7fffffffc980) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:235
      #18 0x00007ffff758e779 in QWidgetPrivate::drawWidget (this=0x7eeb80, pdev=0x7ee5f0, rgn=..., offset=..., flags=3, sharedPainter=0x0, backingStore=0x0) at kernel/qwidget.cpp:5138
      #19 0x00007ffff755b9d3 in QWidgetPrivate::repaint_sys (this=0x7eeb80, rgn=...) at kernel/qwidgetbackingstore.cpp:1327
      #20 0x00007ffff7585a8c in QWidgetPrivate::syncBackingStore (this=0x7eeb80) at kernel/qwidget.cpp:1679
      #21 0x00007ffff7596ffe in QWidget::event (this=0x7ee5e0, event=0x904920) at kernel/qwidget.cpp:8228
      #22 0x00007ffff769a5af in QAbstractButton::event (this=0x7ee5e0, e=0x904920) at widgets/qabstractbutton.cpp:1097
      #23 0x00007ffff7752815 in QPushButton::event (this=0x7ee5e0, e=0x904920) at widgets/qpushbutton.cpp:681
      #24 0x00007ffff754ba36 in QApplicationPrivate::notify_helper (this=0x604010, receiver=0x7ee5e0, e=0x904920) at kernel/qapplication.cpp:3470
      #25 0x00007ffff754b897 in QApplication::notify (this=0x7fffffffdc30, receiver=0x7ee5e0, e=0x904920) at kernel/qapplication.cpp:3435
      #26 0x00007ffff6666a98 in QCoreApplication::notifyInternal (this=0x7fffffffdc30, receiver=0x7ee5e0, event=0x904920) at kernel/qcoreapplication.cpp:882
      #27 0x00007ffff666a779 in QCoreApplication::sendEvent (receiver=0x7ee5e0, event=0x904920) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:232
      #28 0x00007ffff6667df4 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x6033b0) at kernel/qcoreapplication.cpp:1486
      #29 0x00007ffff6667795 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1344
      #30 0x00007ffff66df46b in postEventSourceDispatch (s=0x6dc880) at kernel/qeventdispatcher_glib.cpp:279
      #31 0x00007ffff4e457d5 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
      #32 0x00007ffff4e45b08 in ?? () from /usr/lib64/libglib-2.0.so.0
      #33 0x00007ffff4e45bc4 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
      #34 0x00007ffff66dfc41 in QEventDispatcherGlib::processEvents (this=0x6dc770, flags=...) at kernel/qeventdispatcher_glib.cpp:426
      #35 0x00007ffff226c1d6 in QPAEventDispatcherGlib::processEvents (this=0x6dc770, flags=...) at eventdispatchers/qeventdispatcher_glib.cpp:123
      #36 0x00007ffff66635c6 in QEventLoop::processEvents (this=0x7fffffffdb30, flags=...) at kernel/qeventloop.cpp:136
      #37 0x00007ffff66638b3 in QEventLoop::exec (this=0x7fffffffdb30, flags=...) at kernel/qeventloop.cpp:212
      #38 0x00007ffff6667170 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1135
      #39 0x00007ffff6ce7252 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1332
      #40 0x00007ffff75487c5 in QApplication::exec () at kernel/qapplication.cpp:2695
      #41 0x00000000004010df in main (argc=1, argv=0x7fffffffdd68) at main.cpp:20
      (gdb) p painter->paintEngine()
      $1 = (QPaintEngine *) 0x0
      (gdb)
      

      Attachments

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

        Activity

          People

            tvete Paul Olav Tvete
            p_seiderer Peter Seiderer
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes