Details
-
Bug
-
Resolution: Incomplete
-
P1: Critical
-
None
-
Qt Creator 4.12.0
-
None
Description
Qt Design Studio is randomly crashing on shut down presumably due to a double deletion.
TextEditorWidgetPrivate inherits QObject and takes a parent in this case TextEditorWidget. In the destructor of TextEditorWidget the TextEditorWidgetPrivate is explicitly deleted which could collide with the parent deletion mechanism of Qt itself.
The following is a snippet from the attached stack trace.
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread\
0 libTextEditor.dylib 0x0000000113c49966 TextEditor::Internal::TextEditorWidgetPrivate::~TextEditorWidgetPrivate() + 662\
1 libTextEditor.dylib 0x0000000113c4a0ce TextEditor::Internal::TextEditorWidgetPrivate::~TextEditorWidgetPrivate() + 14\
2 libTextEditor.dylib 0x0000000113c4e4c0 TextEditor::TextEditorWidget::~TextEditorWidget() + 48\
3 libQmlJSEditor.dylib 0x0000000116420411 QmlJSEditor::QmlJSEditorWidget::~QmlJSEditorWidget() + 65\
4 org.qt-project.QtCore 0x000000010ef6c4e4 QObjectPrivate::deleteChildren() + 228\
5 org.qt-project.QtWidgets 0x000000010e06f56e QWidget::~QWidget() + 1006\
6 libQmlDesigner.dylib 0x00000001168b7b32 QmlDesigner::TextEditorWidget::~TextEditorWidget() + 98\
7 org.qt-project.QtCore 0x000000010ef6c4e4 QObjectPrivate::deleteChildren() + 228\
8 org.qt-project.QtWidgets 0x000000010e06f56e QWidget::~QWidget() + 1006\
9 org.qt-project.QtWidgets 0x000000010e06fdfe QWidget::~QWidget() + 14\
10 org.qt-project.QtCore 0x000000010ef6c4e4 QObjectPrivate::deleteChildren() + 228\
11 org.qt-project.QtWidgets 0x000000010e06f56e QWidget::~QWidget() + 1006\
12 org.qt-project.QtWidgets 0x000000010e1dc4fe QScrollArea::~QScrollArea() + 14\
13 org.qt-project.QtCore 0x000000010ef6c4e4 QObjectPrivate::deleteChildren() + 228\
14 org.qt-project.QtWidgets 0x000000010e06f56e QWidget::~QWidget() + 1006\
15 libAdvancedDockingSystem.1.5.0.dylib 0x0000000116c28933 ADS::DockWidget::~DockWidget() + 211\
16 libAdvancedDockingSystem.1.5.0.dylib 0x0000000116c28a5e ADS::DockWidget::~DockWidget() + 14\
17 org.qt-project.QtCore 0x000000010ef6c4e4 QObjectPrivate::deleteChildren() + 228\
18 org.qt-project.QtWidgets 0x000000010e06f56e QWidget::~QWidget() + 1006\
19 libAdvancedDockingSystem.1.5.0.dylib 0x0000000116c0dfa5 ADS::DockAreaWidget::~DockAreaWidget() + 229\
20 libAdvancedDockingSystem.1.5.0.dylib 0x0000000116c0e0ce ADS::DockAreaWidget::~DockAreaWidget() + 14\
21 org.qt-project.QtCore 0x000000010ef6c4e4 QObjectPrivate::deleteChildren() + 228\
22 org.qt-project.QtWidgets 0x000000010e06f56e QWidget::~QWidget() + 1006\
23 libAdvancedDockingSystem.1.5.0.dylib 0x0000000116c27c51 ADS::DockSplitter::~DockSplitter() + 177\
24 libAdvancedDockingSystem.1.5.0.dylib 0x0000000116c27d6e ADS::DockSplitter::~DockSplitter() + 14\
25 org.qt-project.QtCore 0x000000010ef6c4e4 QObjectPrivate::deleteChildren() + 228\
26 org.qt-project.QtWidgets 0x000000010e06f56e QWidget::~QWidget() + 1006\
27 libAdvancedDockingSystem.1.5.0.dylib 0x0000000116c27c51 ADS::DockSplitter::~DockSplitter() + 177\
28 libAdvancedDockingSystem.1.5.0.dylib 0x0000000116c27d6e ADS::DockSplitter::~DockSplitter() + 14\
29 org.qt-project.QtCore 0x000000010ef6c4e4 QObjectPrivate::deleteChildren() + 228\
30 org.qt-project.QtWidgets 0x000000010e06f56e QWidget::~QWidget() + 1006\
31 libAdvancedDockingSystem.1.5.0.dylib 0x0000000116c27c51 ADS::DockSplitter::~DockSplitter() + 177\
32 libAdvancedDockingSystem.1.5.0.dylib 0x0000000116c27d6e ADS::DockSplitter::~DockSplitter() + 14\
33 org.qt-project.QtCore 0x000000010ef6c4e4 QObjectPrivate::deleteChildren() + 228\
34 org.qt-project.QtWidgets 0x000000010e06f56e QWidget::~QWidget() + 1006\
35 libAdvancedDockingSystem.1.5.0.dylib 0x0000000116c1b3b9 ADS::DockManager::~DockManager() + 441\
36 libAdvancedDockingSystem.1.5.0.dylib 0x0000000116c1b97e ADS::DockManager::~DockManager() + 14\
37 libQmlDesigner.dylib 0x0000000116524acf QmlDesigner::Internal::DesignModeWidget::~DesignModeWidget() + 191\
38 libQmlDesigner.dylib 0x000000011651c959 QmlDesigner::QmlDesignerPlugin::~QmlDesignerPlugin() + 153\
39 libQmlDesigner.dylib 0x000000011651c9fe QmlDesigner::QmlDesignerPlugin::~QmlDesignerPlugin() + 14\
40 libExtensionSystem.1.5.0.dylib 0x000000010dd3975b ExtensionSystem::Internal::PluginSpecPrivate::kill() + 27\
41 libExtensionSystem.1.5.0.dylib 0x000000010dd29aed ExtensionSystem::Internal::PluginManagerPrivate::loadPlugin(ExtensionSystem::PluginSpec*, ExtensionSystem::PluginSpec::State) + 205\
42 libExtensionSystem.1.5.0.dylib 0x000000010dd2a131 ExtensionSystem::Internal::PluginManagerPrivate::deleteAll() + 81\
43 libExtensionSystem.1.5.0.dylib 0x000000010dd24374 ExtensionSystem::Internal::PluginManagerPrivate::shutdown() + 84\
44 org.qt-project.QtCore 0x000000010ef75315 0x10ed4a000 + 2274069\
45 org.qt-project.QtCore 0x000000010ef423f7 QCoreApplication::exec() + 215\
46 org.qt-project.qtdesignstudio 0x000000010dd05957 main + 15143\
47 libdyld.dylib 0x00007fff6fc12cc9 start + 1\