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

Crash when concatenating multiple strings

    XMLWordPrintable

Details

    Description

      Have the following QML file:

       
      Rectangle {
          width: 640; height: 480
      
          Text {
              id: concat
              text: "aaaa"
                  + "bbbb"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc";
          }
      }
      

      Get the following stacktrace:

      0 __kernel_vsyscall 0 0xb7fe2430
      1 *__GI_raise raise.c 64 0xb5d944d1
      2 *__GI_abort abort.c 92 0xb5d97932
      3 qt_message_output qglobal.cpp 2253 0xb61bd683
      4 qt_message qglobal.cpp 2299 0xb61bd87c
      5 qFatal qglobal.cpp 2482 0xb61bdc9a
      6 qt_assert qglobal.cpp 2016 0xb61bd21c
      7 QDeclarativeBindingCompilerPrivate::releaseReg qdeclarativecompiledbindings.cpp 2529 0xb7e42226
      8 QDeclarativeBindingCompilerPrivate::compile qdeclarativecompiledbindings.cpp 1722 0xb7e3f923
      9 QDeclarativeBindingCompiler::compile qdeclarativecompiledbindings.cpp 2683 0xb7e42cb2
      10 QDeclarativeCompiler::completeComponentBuild qdeclarativecompiler.cpp 2693 0xb7dfbac5
      11 QDeclarativeCompiler::compileTree qdeclarativecompiler.cpp 638 0xb7decdea
      12 QDeclarativeCompiler::compile qdeclarativecompiler.cpp 612 0xb7decc97
      13 QDeclarativeCompositeTypeData::toCompiledComponent qdeclarativecompositetypemanager.cpp 148 0xb7e1deb2
      14 QDeclarativeComponentPrivate::fromTypeData qdeclarativecomponent.cpp 181 0xb7dda352
      15 QDeclarativeComponent::loadUrl qdeclarativecomponent.cpp 469 0xb7ddb34c
      16 QDeclarativeComponent qdeclarativecomponent.cpp 355 0xb7ddab9c
      17 QDeclarativeViewPrivate::execute qdeclarativeview.cpp 174 0xb7cbfbd4
      18 QDeclarativeView::setSource qdeclarativeview.cpp 320 0xb7cc0370
      19 QDeclarativeViewer::open qmlruntime.cpp 1002 0x0805dff9
      20 main main.cpp 443 0x08083a00
      ... <More>

      For a less artificial example, replace strings with some real content that you want to separate on multiple lines.

      Also, the following qml actually works:

       
      Rectangle {
          width: 640; height: 480
      
          Text {
              id: concat
              text: String("aaaa"
                  + "bbbb"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc"
                  + "cccc");
          }
      }
      

      Attachments

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

        Activity

          People

            aakenned Aaron Kennedy
            holmsted Lasse Holmstedt
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes