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

QPlainTextEdit crash

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P1: Critical
    • 5.4.0
    • 4.7.4, 4.8.4, 5.2.0
    • GUI: Text handling
    • None
    • Windows 7, 64 or 32 bit, Linux
    • 27bc4c4ce5f1af8fd06b60c5d06e011001ea3613

    Description

      QPlainTextEdit crashes when pressing Enter with a text selection and then pressing 'Ctrl-Z'.
      To reproduce: run codeeditor demo packaged with Qt.
      type in:
      line1
      line2

      Put cursor at start of first line. Press shift-down arrow (a line of text is selected). Press Enter. Press Ctrl-Z. Witness crash.

      Thread 1 (Thread 0x7ffff7fd2740 (LWP 7544)):
      #0  0x00007ffff6e155fb in QVector<QScriptLine>::operator[] (this=0x0, i=0) at ../../include/QtCore/../../src/corelib/tools/qvector.h:369
      No locals.
      #1  0x00007ffff6e2035e in QTextLine::textStart (this=0x7fffffffb8a0) at text/qtextlayout.cpp:1990
      No locals.
      #2  0x00007ffff77e6e73 in QPlainTextEdit::paintEvent (this=0x7fffffffdb80, e=0x7fffffffc5d0) at widgets/qplaintextedit.cpp:1948
              o = {start = 1024, length = 0, format = {<QTextFormat> = {static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff7427ca0, data = 0x7ffff7125fc0, static_metacall = 0, relatedMetaObjects = 0x0, extradata = 0x0}}, d = {d = 0x0}, format_type = 2}, <No data fields>}}
              l = {index = 0, eng = 0x0}
              range = @0x696bc8: {cursor = {d = {d = 0x6928a0}}, format = {<QTextFormat> = {static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff7427ca0, data = 0x7ffff7125fc0, static_metacall = 0, relatedMetaObjects = 0x0, extradata = 0x0}}, d = {d = 0x698d70}, format_type = 2}, <No data fields>}}
              selStart = 0
              selEnd = 0
              i = 0
              bllen = 6
              drawCursor = false
              drawCursorAsBlock = false
              blockFormat = {<QTextFormat> = {static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff7427ca0, data = 0x7ffff7125fc0, static_metacall = 0, relatedMetaObjects = 0x0, extradata = 0x0}}, d = {d = 0x6729e0}, format_type = 1}, <No data fields>}
              bg = {d = {d = 0x65bc50}}
              selections = {d = 0x7ffff6be83e0}
              blpos = 6
              r = {xp = 0, yp = 19, w = 243, h = 15}
              layout = 0x6aa3e0
              painter = {static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff7429520, data = 0x7ffff7126c20, static_metacall = 0, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x688c20}}
              viewportRect = {x1 = 0, y1 = 0, x2 = 242, y2 = 189}
              editable = true
              block = {p = 0x675b50, n = 2}
              maximumWidth = 37.25
              context = {cursorPosition = 6, palette = {static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff7426120, data = 0x7ffff7124960, static_metacall = 0, relatedMetaObjects = 0x0, extradata = 0x0}}, d = 0x64c930, {data = {current_group = 0, resolve_mask = 0}, for_faster_swapping_dont_use = 0}}, clip = {xp = 0, yp = 0, w = 0, h = 0}, selections = {d = 0x696bb0}}
              offset = {xp = 0, yp = 19}
              er = {x1 = 0, y1 = 0, x2 = 239, y2 = 189}
              maxX = 239
      #3  0x00007ffff75ead2f in QWidget::event (this=0x7fffffffdb80, event=0x7fffffffc5d0) at kernel/qwidget.cpp:8098
              d = 0x64c510
      #4  0x00007ffff7718903 in QFrame::event (this=0x7fffffffdb80, e=0x7fffffffc5d0) at widgets/qframe.cpp:534
              result = false
      #5  0x00007ffff77b583d in QAbstractScrollArea::viewportEvent (this=0x7fffffffdb80, e=0x7fffffffc5d0) at widgets/qabstractscrollarea.cpp:1188
      No locals.
      #6  0x00007ffff77b6a03 in QAbstractScrollAreaPrivate::viewportEvent (this=0x64c510, event=0x7fffffffc5d0) at widgets/qabstractscrollarea_p.h:110
      No locals.
      #7  0x00007ffff77b6aca in QAbstractScrollAreaFilter::eventFilter (this=0x64af60, o=0x64c880, e=0x7fffffffc5d0) at widgets/qabstractscrollarea_p.h:126
      No locals.
      #8  0x00007ffff6702ae4 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0x609ea0, receiver=0x64c880, event=0x7fffffffc5d0) at kernel/qcoreapplication.cpp:1033
              obj = 0x64af60
              i = 0
              q = 0x7fffffffdbc0
              __PRETTY_FUNCTION__ = "bool QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*)"
      #9  0x00007ffff759fe8d in QApplicationPrivate::notify_helper (this=0x609ea0, receiver=0x64c880, e=0x7fffffffc5d0) at kernel/qapplication.cpp:3478
              consumed = false
      #10 0x00007ffff759fd18 in QApplication::notify (this=0x7fffffffdbc0, receiver=0x64c880, e=0x7fffffffc5d0) at kernel/qapplication.cpp:3447
              d = 0x609ea0
              __PRETTY_FUNCTION__ = "virtual bool QApplication::notify(QObject*, QEvent*)"
              res = false
      #11 0x00007ffff6702786 in QCoreApplication::notifyInternal (this=0x7fffffffdbc0, receiver=0x64c880, event=0x7fffffffc5d0) at kernel/qcoreapplication.cpp:937
              threadData = 0x60a000
              loopLevelCounter = {threadData = 0x60a000}
              result = false
              cbdata = {0x64c880, 0x7fffffffc5d0, 0x7fffffffc52f}
              d = 0x6591d0
      #12 0x00007ffff75a245d in QCoreApplication::sendSpontaneousEvent (receiver=0x64c880, event=0x7fffffffc5d0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:238
      No locals.
      #13 0x00007ffff75e2bb7 in QWidgetPrivate::drawWidget (this=0x6591d0, pdev=0x6850c0, rgn=..., offset=..., flags=36, sharedPainter=0x0, backingStore=0x6b81d0) at kernel/qwidget.cpp:5138
              flushed = false
              paintEngine = 0x650d80
              e = {<QEvent> = {_vptr.QEvent = 0x7ffff740dc10, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff6bfd9a0, data = 0x7ffff68f1dc0, static_metacall = 0, relatedMetaObjects = 0x0, extradata = 0x0}}, d = 0x0, t = 12, posted = 0, spont = 1, m_accept = 1, reserved = 0}, m_rect = {x1 = 0, y1 = 0, x2 = 242, y2 = 189}, m_region = {d = 0x65c4c0, static shared_empty = {ref = {_q_value = 36}, qt_rgn = 0x7ffff742b980}}, m_erased = false}
              asRoot = false
              q = 0x64c880
              alsoOnScreen = false
              toBePainted = {d = 0x65c4c0, static shared_empty = {ref = {_q_value = 36}, qt_rgn = 0x7ffff742b980}}
              __PRETTY_FUNCTION__ = "void QWidgetPrivate::drawWidget(QPaintDevice*, const QRegion&, const QPoint&, int, QPainter*, QWidgetBackingStore*)"
              onScreen = false
              recursive = true
              alsoInvisible = false
      #14 0x00007ffff75aec4d in QWidgetBackingStore::sync (this=0x6b81d0) at kernel/qwidgetbackingstore.cpp:1075
              w = 0x64c880
              flags = 36
              toBePainted = {d = 0x65c4c0, static shared_empty = {ref = {_q_value = 36}, qt_rgn = 0x7ffff742b980}}
              wd = 0x6591d0
              offset = {xp = 12, yp = 1}
              i = 0
              repaintAllWidgets = false
              inTopLevelResize = false
              surfaceGeometry = {x1 = 2, y1 = 969, x2 = 257, y2 = 1160}
              toClean = {d = 0x6b33a0, static shared_empty = {ref = {_q_value = 36}, qt_rgn = 0x7ffff742b980}}
              tlwExtra = 0x6b4430
              opaqueNonOverlappedWidgets = {a = 32, s = 1, ptr = 0x7fffffffca00, {array = "\200\310d\000\000\000\000\000 \312\377\377\377\177\000\000\060\312\377\377\377\177\000\000E\037Z\367\377\177\000\000\001\000\000\000\001\000\000\000`\312\377\377\377\177\000\000p\312\377\377\377\177\000\000\211,Z\367\377\177\000\000`\312\377\377\377\000\000\000L\306d\000\000\000\000\000\001\000\000\000\001\000\000\000\220\312\377\377\377\177\000\000\001\000\000\000\377\177\000\000\220\312\377\377\377\177\000\000\240\312\377\377\377\177\000\000\322,Z\367\377\177\000\000\240\312\377\377\377\177\000\000\200\333\377\377\377\177\000\000\001\000\000\000\000\000\000\000\200\333\377\377\377\177\000\000\300\312\377\377\377\177\000\000\210\333\377\377\377\177\000\000\320\312\377\377\377\177\000\000\315\034Z\367\377\177\000\000\360\312\377\377\377\177\000\000\210\333\377\377\377\177\000\000\360\312\377\377\377\177\000\000\366+Z\367\377\177\000\000\200\333\377\377\377\177\000\000\070Dk\000\000\000\000\000 \313\377\377\377\177\000\000\355\n[\367\377\177\000", q_for_alignment_1 = 6604928, q_for_alignment_2 = 3.2632680180549329e-317}}
              updatesDisabled = false
              tlwRect = {x1 = 2, y1 = 969, x2 = 257, y2 = 1160}
              beginPaintInfo = {wasFlushed = 0, nothingToPaint = 0, backingStoreRecreated = 0}
              dirtyCopy = {d = 0x694b80, static shared_empty = {ref = {_q_value = 36}, qt_rgn = 0x7ffff742b980}}
      #15 0x00007ffff75da049 in QWidgetPrivate::syncBackingStore (this=0x64c510) at kernel/qwidget.cpp:1686
              bs = 0x6b81d0
      #16 0x00007ffff75eb365 in QWidget::event (this=0x7fffffffdb80, event=0x69a4b0) at kernel/qwidget.cpp:8236
              d = 0x64c510
      #17 0x00007ffff7718903 in QFrame::event (this=0x7fffffffdb80, e=0x69a4b0) at widgets/qframe.cpp:534
              result = false
      #18 0x00007ffff77b576e in QAbstractScrollArea::event (this=0x7fffffffdb80, e=0x69a4b0) at widgets/qabstractscrollarea.cpp:1141
              d = 0x64c510
      #19 0x00007ffff77e5992 in QPlainTextEdit::event (this=0x7fffffffdb80, e=0x69a4b0) at widgets/qplaintextedit.cpp:1563
              d = 0x64c510
      #20 0x00007ffff759feb6 in QApplicationPrivate::notify_helper (this=0x609ea0, receiver=0x7fffffffdb80, e=0x69a4b0) at kernel/qapplication.cpp:3482
              consumed = false
      #21 0x00007ffff759fd18 in QApplication::notify (this=0x7fffffffdbc0, receiver=0x7fffffffdb80, e=0x69a4b0) at kernel/qapplication.cpp:3447
              d = 0x609ea0
              __PRETTY_FUNCTION__ = "virtual bool QApplication::notify(QObject*, QEvent*)"
              res = false
      #22 0x00007ffff6702786 in QCoreApplication::notifyInternal (this=0x7fffffffdbc0, receiver=0x7fffffffdb80, event=0x69a4b0) at kernel/qcoreapplication.cpp:937
              threadData = 0x60a000
              loopLevelCounter = {threadData = 0x60a000}
              result = false
              cbdata = {0x7fffffffdb80, 0x69a4b0, 0x7fffffffd7ff}
              d = 0x64c510
      #23 0x00007ffff6706531 in QCoreApplication::sendEvent (receiver=0x7fffffffdb80, event=0x69a4b0) at kernel/qcoreapplication.h:235
      No locals.
      #24 0x00007ffff670389e in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x60a000) at kernel/qcoreapplication.cpp:1541
              e = 0x69a4b0
              pe = @0x7fffe8003880: {receiver = 0x7fffffffdb80, event = 0x0, priority = -1}
              r = 0x7fffffffdb80
              unlocker = {m = @0x7fffffffd8c0}
              event_deleter = {d = 0x69a4b0}
              __PRETTY_FUNCTION__ = "static void QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)"
              locker = {val = 6332456}
              startOffset = 0
              i = @0x60a01c: 2
              cleanup = {receiver = 0x0, event_type = 0, data = 0x60a000, exceptionCaught = true}
      #25 0x00007ffff6777b8a in QEventDispatcherUNIX::processEvents (this=0x637f90, flags=...) at kernel/qeventdispatcher_unix.cpp:587
              d = 0x65ede0
              nevents = -160433580
              canWait = false
      #26 0x00007ffff1249c02 in QUnixEventDispatcherQPA::processEvents (this=0x637f90, flags=...) at eventdispatchers/qunixeventdispatcher.cpp:70
              didSendEvents = false
      #27 0x00007ffff66ff360 in QEventLoop::processEvents (this=0x7fffffffdb00, flags=...) at kernel/qeventloop.cpp:136
              d = 0x6aaee0
      #28 0x00007ffff66ff639 in QEventLoop::exec (this=0x7fffffffdb00, flags=...) at kernel/qeventloop.cpp:212
              locker = {val = 6332656}
              __PRETTY_FUNCTION__ = "int QEventLoop::exec(QEventLoop::ProcessEventsFlags)"
              ref = {d = 0x6aaee0, locker = @0x7fffffffda60, exceptionCaught = true}
              app = 0x7fffffffdbc0
              d = 0x6aaee0
      #29 0x00007ffff6702e4f in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1190
              threadData = 0x60a000
              __PRETTY_FUNCTION__ = "static int QCoreApplication::exec()"
              eventLoop = {<QObject> = {_vptr.QObject = 0x7ffff6be54b0, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff6bec080, data = 0x7ffff689ff60, static_metacall = 0x7ffff6748130 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x6aaee0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff6becaa0, data = 0x7ffff68ebfe0, static_metacall = 0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x7ffff6be1d80, stringdata = 0x7ffff6bfd720, data = 0x7ffff68f1b40, static_metacall = 0x7ffff67d4008 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}
              returnCode = 0
      #30 0x00007ffff6d067be in QGuiApplication::exec () at kernel/qguiapplication.cpp:1347
      No locals.
      #31 0x00007ffff759cd85 in QApplication::exec () at kernel/qapplication.cpp:2707
      No locals.
      #32 0x0000000000404f6b in main (argv=1, args=0x7fffffffdcd8) at main.cpp:53
              app = {<QGuiApplication> = {<QCoreApplication> = {<QObject> = {_vptr.QObject = 0x7ffff7d919b0, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff6bec080, data = 0x7ffff689ff60, static_metacall = 0x7ffff6748130 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x609ea0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff6becaa0, data = 0x7ffff68ebfe0, static_metacall = 0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x7ffff6be1d80, stringdata = 0x7ffff6bfd780, data = 0x7ffff68f1c60, static_metacall = 0x7ffff67d4160 <QCoreApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, static self = 0x7fffffffdbc0}, static staticMetaObject = {d = {superdata = 0x7ffff6be5540, stringdata = 0x7ffff7419b00, data = 0x7ffff70d3e00, static_metacall = 0x7ffff6d0c36e <QGuiApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x7ffff740d2e0, stringdata = 0x7ffff7dbd720, data = 0x7ffff79e6900, static_metacall = 0x7ffff75a1752 <QApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}
              editor = {<QPlainTextEdit> = {<QAbstractScrollArea> = {<QFrame> = {<QWidget> = {<QObject> = {_vptr.QObject = 0x607b70, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff6bec080, data = 0x7ffff689ff60, static_metacall = 0x7ffff6748130 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x64c510}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff6becaa0, data = 0x7ffff68ebfe0, static_metacall = 0, relatedMetaObjects = 0x0, extradata = 0x0}}}, <QPaintDevice> = {_vptr.QPaintDevice = 0x607d68, painters = 0, reserved = 0x0}, static staticMetaObject = {d = {superdata = 0x7ffff6be1d80, stringdata = 0x7ffff7dbdbe0, data = 0x7ffff79ec2a0, static_metacall = 0x7ffff75f0e7c <QWidget::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, data = 0x64c640}, static staticMetaObject = {d = {superdata = 0x7ffff7d92640, stringdata = 0x7ffff7dd4760, data = 0x7ffff7a8ddc0, static_metacall = 0x7ffff79d8f4c <QFrame::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x7ffff7dafaa0, stringdata = 0x7ffff7dc6f80, data = 0x7ffff7a0eae0, static_metacall = 0x7ffff77b6506 <QAbstractScrollArea::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x7ffff7d9c3e0, stringdata = 0x7ffff7dc7cc0, data = 0x7ffff7a12480, static_metacall = 0x7ffff77e9ae0 <QPlainTextEdit::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x7ffff7d9d020, stringdata = 0x406a20, data = 0x406b20, static_metacall = 0x406550 <CodeEditor::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, lineNumberArea = 0x652540}
      
      
      Thread 2 (Thread 0x7fffee94d700 (LWP 7547)):
      #0  0x00007ffff5dfba43 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
              resultvar = <optimized out>
              oldtype = 0
              result = <optimized out>
      #1  0x00007ffff348d862 in _xcb_conn_wait (c=0x6172b0, cond=<optimized out>, vector=0x0, count=0x0) at ../../src/xcb_conn.c:400
              ret = <optimized out>
              fd = {fd = 5, events = 1, revents = 0}
      #2  0x00007ffff348f01f in xcb_wait_for_event (c=0x6172b0) at ../../src/xcb_in.c:522
              ret = 0x0
      #3  0x00007ffff11b747d in QXcbEventReader::run (this=0x628180) at qxcbconnection.cpp:1007
              event = 0x0
      #4  0x00007ffff64917ba in QThreadPrivate::start (arg=0x628180) at thread/qthread_unix.cpp:345
              __clframe = {__cancel_routine = 0x7ffff649183e <QThreadPrivate::finish(void*)>, __cancel_arg = 0x628180, __do_it = 1, __cancel_type = 0}
              thr = 0x628180
              data = 0x6284e0
              objectName = {static null = {<No data fields>}, d = 0x7ffff6be83e0}
      #5  0x00007ffff5afde9a in start_thread (arg=0x7fffee94d700) at pthread_create.c:308
              __res = <optimized out>
              pd = 0x7fffee94d700
              now = <optimized out>
              unwind_buf = {cancel_jmp_buf = {{jmp_buf = {1, 473636257683789085, 140737488343536, 140737196120512, 0, 3, -473603075259706083, -473622377369119459}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
              not_first_call = 0
              pagesize_m1 = <optimized out>
              sp = <optimized out>
              freesize = <optimized out>
              __PRETTY_FUNCTION__ = "start_thread"
      #6  0x00007ffff5e073fd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
      No locals.
      #7  0x0000000000000000 in ?? ()
      No symbol table info available.
      

      Attachments

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

        Activity

          People

            esabraha Eskil Abrahamsen Blomfeldt
            danh Dan Harrington
            Votes:
            2 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes