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

Certain combinations of characters entered into a text based element assert

    XMLWordPrintable

Details

    • 4b09230d97c7002d488b822648968ee89e8e1f9a

    Description

      Execute the attached qml
      ASSERT: "(pos == end && glyphPosition == current.num_glyphs) || logClusters[pos] == glyphPosition" in file text/qtextlayout.cpp, line 1707

      The app will not assert if either one of these characters are entered individually, but will if entered together.
      In this instance, the characters are 1FDE (῞) and 0359 ( ͙) thus ῞ ͙

      Character 0359 appears to have an interesting behaviour, seems it holds two spaces, but only draws in the space of one.

      Backtrace

      Program received signal SIGABRT, Aborted.
      0xb7fe3832 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
      (gdb) bt
      #0  0xb7fe3832 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
      #1  0xb652b651 in *__GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
      #2  0xb652ea82 in *__GI_abort () at abort.c:92
      #3  0xb6916ae1 in qt_message_output (msgType=QtFatalMsg, 
          buf=0xdce28c8 "ASSERT: \"(pos == end && glyphPosition == current.num_glyphs) || logClusters[pos] == glyphPosition\" in file text/qtextlayout.cpp, line 1707") at global/qglobal.cpp:2111
      #4  0xb6916cda in qt_message (msgType=QtFatalMsg, msg=0xb6af01e0 "ASSERT: \"%s\" in file %s, line %d", 
          ap=0xbfffb784 "<\371\005\267I\370\005\267\253\006") at global/qglobal.cpp:2157
      #5  0xb6917043 in qFatal (msg=0xb6af01e0 "ASSERT: \"%s\" in file %s, line %d") at global/qglobal.cpp:2335
      #6  0xb691660c in qt_assert (
          assertion=0xb705f93c "(pos == end && glyphPosition == current.num_glyphs) || logClusters[pos] == glyphPosition", 
          file=0xb705f849 "text/qtextlayout.cpp", line=1707) at global/qglobal.cpp:1845
      #7  0xb6e39a03 in addNextCluster (pos=@0xbfffb8a8, end=10, line=..., glyphCount=@0xbfffb8a0, current=..., logClusters=0xe407f44, 
          glyphs=...) at text/qtextlayout.cpp:1707
      #8  0xb6e3a5a6 in QTextLine::layout_helper (this=0xbfffbb28, maxGlyphs=2147483647) at text/qtextlayout.cpp:1845
      #9  0xb6e39285 in QTextLine::setLineWidth (this=0xbfffbb28, width=200) at text/qtextlayout.cpp:1543
      #10 0xb6e8f63d in QTextDocumentLayoutPrivate::layoutBlock (this=0x82a73c0, bl=..., blockPosition=0, blockFormat=..., 
          layoutStruct=0xbfffc0b8, layoutFrom=0, layoutTo=2147483647, previousBlockFormat=0x0) at text/qtextdocumentlayout.cpp:2616
      #11 0xb6e8e088 in QTextDocumentLayoutPrivate::layoutFlow (this=0x82a73c0, it=..., layoutStruct=0xbfffc0b8, layoutFrom=0, 
          layoutTo=2147483647, width=...) at text/qtextdocumentlayout.cpp:2402
      #12 0xb6e8c8a4 in QTextDocumentLayoutPrivate::layoutFrame (this=0x82a73c0, f=0x82b15e0, layoutFrom=0, layoutTo=2147483647, 
          frameWidth=..., frameHeight=..., parentY=...) at text/qtextdocumentlayout.cpp:2143
      #13 0xb6e8bdf1 in QTextDocumentLayoutPrivate::layoutFrame (this=0x82a73c0, f=0x82b15e0, layoutFrom=0, layoutTo=2147483647, parentY=...)
          at text/qtextdocumentlayout.cpp:2049
      #14 0xb6e9138e in QTextDocumentLayout::doLayout (this=0x82b52a8, from=0, oldLength=0, length=2147483647)
          at text/qtextdocumentlayout.cpp:2939
      #15 0xb6e920b7 in QTextDocumentLayoutPrivate::ensureLayoutedByPosition (this=0x82a73c0, position=1000)
          at text/qtextdocumentlayout.cpp:3111
      #16 0xb6e9211e in QTextDocumentLayoutPrivate::layoutStep (this=0x82a73c0) at text/qtextdocumentlayout.cpp:3117
      #17 0xb6e9107f in QTextDocumentLayout::documentChanged (this=0x82b52a8, from=0, oldLength=0, length=49)
          at text/qtextdocumentlayout.cpp:2899
      #18 0xb6e6bff4 in QTextDocumentPrivate::finishEdit (this=0x82cd530) at text/qtextdocument_p.cpp:1219
      #19 0xb6e6bec8 in QTextDocumentPrivate::endEditBlock (this=0x82cd530) at text/qtextdocument_p.cpp:1200
      #20 0xb6e9e023 in QTextCursor::endEditBlock (this=0xbfffc67c) at text/qtextcursor.cpp:2495
      #21 0xb6e16706 in QTextControlPrivate::setContent (this=0x82cd438, format=Qt::PlainText, text=..., document=0x0)
          at text/qtextcontrol.cpp:458
      #22 0xb6e1924c in QTextControl::setPlainText (this=0x82b2430, text=...) at text/qtextcontrol.cpp:1058
      #23 0xb7cc1b73 in QQuickTextEdit::setText (this=0x82b8440, text=...) at items/qquicktextedit.cpp:265
      #24 0xb7de13f6 in QQuickTextEdit::qt_metacall (this=0x82b8440, _c=QMetaObject::WriteProperty, _id=0, _a=0xbfffcf38)
          at .moc/debug-shared/moc_qquicktextedit_p.cpp:377
      #25 0xb6a58e52 in QMetaObject::metacall (object=0x82b8440, cl=QMetaObject::WriteProperty, idx=40, argv=0xbfffcf38)
          at kernel/qmetaobject.cpp:248
      #26 0xb7b9a8b2 in QV4Bindings::run (this=0x81d5c00, instrIndex=2, executedBlocks=@0x82a8c08, context=0x82a7b88, error=0x82a8bec, 
          scope=0x82b8440, output=0x82b8440, storeFlags=..., table=0x0) at qml/v4/qv4bindings.cpp:1359
      #27 0xb7b966c4 in QV4Bindings::run (this=0x81d5c00, binding=0x82a8bcc, flags=...) at qml/v4/qv4bindings.cpp:314
      #28 0xb7b96142 in QV4Bindings::subscriptionNotify (this=0x81d5c00, id=2) at qml/v4/qv4bindings.cpp:270
      #29 0xb7b960ae in QV4Bindings::Subscription::subscriptionCallback (e=0x82a7d4c) at qml/v4/qv4bindings.cpp:258
      #30 0xb7b3e5c5 in QDeclarativeNotifier::emitNotify (endpoint=0x0) at qml/qdeclarativenotifier.cpp:60
      #31 0xb7a8edfc in QDeclarativeData::signalEmitted (object=0x81d5eb8, index=35) at qml/qdeclarativeengine.cpp:419
      #32 0xb6a7822e in QMetaObject::activate (sender=0x81d5eb8, m=0x82a798c, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3280
      #33 0xb6a7895a in QMetaObject::activate (sender=0x81d5eb8, signal_index=35, argv=0x0) at kernel/qobject.cpp:3439
      #34 0xb7a890fd in QDeclarativeVMEMetaObject::metaCall (this=0x82a7988, c=QMetaObject::WriteProperty, _id=42, a=0xbfffdcf8)
          at qml/qdeclarativevmemetaobject.cpp:594
      #35 0xb6a58e29 in QMetaObject::metacall (object=0x81d5eb8, cl=QMetaObject::WriteProperty, idx=42, argv=0xbfffdcf8)
          at kernel/qmetaobject.cpp:246
      #36 0xb7b9a8b2 in QV4Bindings::run (this=0x81d5c00, instrIndex=9, executedBlocks=@0x82a8de4, context=0x82a7b88, error=0x82a8dc8, 
          scope=0x81d5eb8, output=0x81d5eb8, storeFlags=..., table=0x0) at qml/v4/qv4bindings.cpp:1359
      #37 0xb7b966c4 in QV4Bindings::run (this=0x81d5c00, binding=0x82a8da8, flags=...) at qml/v4/qv4bindings.cpp:314
      #38 0xb7b96142 in QV4Bindings::subscriptionNotify (this=0x81d5c00, id=8) at qml/v4/qv4bindings.cpp:270
      #39 0xb7b960ae in QV4Bindings::Subscription::subscriptionCallback (e=0x82a7e0c) at qml/v4/qv4bindings.cpp:258
      #40 0xb7b3e5c5 in QDeclarativeNotifier::emitNotify (endpoint=0x0) at qml/qdeclarativenotifier.cpp:60
      #41 0xb7a8edfc in QDeclarativeData::signalEmitted (object=0x8200030, index=14) at qml/qdeclarativeengine.cpp:419
      #42 0xb6a7822e in QMetaObject::activate (sender=0x8200030, m=0x81f00a4, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3280
      #43 0xb6a7895a in QMetaObject::activate (sender=0x8200030, signal_index=14, argv=0x0) at kernel/qobject.cpp:3439
      #44 0xb7a890fd in QDeclarativeVMEMetaObject::metaCall (this=0x81f00a0, c=QMetaObject::WriteProperty, _id=6, a=0xbfffe39c)
          at qml/qdeclarativevmemetaobject.cpp:594
      #45 0xb6a58e29 in QMetaObject::metacall (object=0x8200030, cl=QMetaObject::WriteProperty, idx=6, argv=0xbfffe39c)
          at kernel/qmetaobject.cpp:246
      

      Attachments

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

        Activity

          People

            esabraha Eskil Abrahamsen Blomfeldt
            dajansen Damian Jansen (closed Nokia identity) (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes