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

iOS: Quick Controls ComboBox crashes when model is updated while native picker view is opened

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • 5.5.0 Beta
    • 5.4.0
    • QPA
    • None
    • Qt 5.4 on iPhone 4S (iOS 7.1)
    • iOS/tvOS/watchOS
    • ce4a759

    Description

      When the model of a QtQuick.Controls ComboBox is changed while the native UIPickerView is opened, interacting with the view (ie. scrolling) will crash the application.

      Run the following qml file on an iOS device, click the "Crash me" button and tap the ComboBox. When the Timer has fired, scroll in the Pickerview. This will crash.

      import QtQuick 2.4
      import QtQuick.Controls 1.3
      
      Column {
          Timer {
              id: crashTimer
              interval: 2000
              onTriggered: {
                  console.log("Crash timer triggered")
                  combobox.model = ["bla", "blaaa", "blaaaaa"]
              }
          }
      
          Button {
              onClicked: crashTimer.start()
              text: "Crash me!"
          }
      
          ComboBox {
              id: combobox
              model: ["foo", "bar", "baz"]
          }
      }
      

      Backtrace

      0	QArrayData::data()	qarraydata.h	53	0x158efa	
      1	QTypedArrayData<unsigned short>::data()	qarraydata.h	199	0x6f119e	
      2	QString::unicode() const	qstring.h	793	0x7800b8	
      3	QString::toNSString() const	qstring_mac.mm	82	0xc4705e	
      4	-[QUIPickerView pickerView:titleForRow:forComponent:]	qiosmenu.mm	187	0xff0e6	
      5	-[UIPickerView _delegateTitleForRow:forComponent:]	-[UIPickerView _delegateTitleForRow:forComponent:]		0x327f3428	
      6	-[UIPickerView tableView:cellForRowAtIndexPath:]	-[UIPickerView tableView:cellForRowAtIndexPath:]		0x327f6684	
      7	-[UIPickerColumnView tableView:cellForRowAtIndexPath:]	-[UIPickerColumnView tableView:cellForRowAtIndexPath:]		0x32af569e	
      8	-[UITableView _createPreparedCellForGlobalRow:withIndexPath:]	-[UITableView _createPreparedCellForGlobalRow:withIndexPath:]		0x326b58f6	
      9	-[UITableView _updateVisibleCellsNow:]	-[UITableView _updateVisibleCellsNow:]		0x3265cc26	
      10	-[UITableView layoutSubviews]	-[UITableView layoutSubviews]		0x3265c47c	
      11	-[UIPickerTableView layoutSubviews]	-[UIPickerTableView layoutSubviews]		0x32a4b924	
      12	-[UIView(CALayerDelegate) layoutSublayersOfLayer:]	-[UIView(CALayerDelegate) layoutSublayersOfLayer:]		0x32582d58	
      13	-[CALayer layoutSublayers]	-[CALayer layoutSublayers]		0x3220062a	
      14	CA::Layer::layout_if_needed(CA::Transaction*)	CA::Layer::layout_if_needed(CA::Transaction*)		0x321fbe3a	
      15	CA::Layer::layout_and_display_if_needed(CA::Transaction*)	CA::Layer::layout_and_display_if_needed(CA::Transaction*)		0x321fbccc	
      16	CA::Context::commit_transaction(CA::Transaction*)	CA::Context::commit_transaction(CA::Transaction*)		0x321fb6de	
      17	CA::Transaction::commit()	CA::Transaction::commit()		0x321fb4ee	
      18	CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*)	CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*)		0x321f521c	
      19	__CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__	__CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__		0x2fd31254	
      ...	<Mehr>				
      

      Attachments

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

        Activity

          People

            richard Richard Moe Gustavsen
            broulik Kai Uwe Broulik
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes