Uploaded image for project: 'Qt Creator'
  1. Qt Creator
  2. QTCREATORBUG-28408

Memory leaks for AssistInterface instances

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Not Evaluated
    • Qt Creator 9.0.0-rc1
    • Qt Creator 9.0.0-beta2
    • Editors
    • None
    • 08002c6278 (qt-creator/qt-creator/9.0) 08002c6278 (qt-creator/qt-creator/qds/dev) 08002c6278 (qt-creator/qt-creator/master)

    Description

      412 (256 direct, 156 indirect) bytes in 2 blocks are definitely lost in loss record 6,756 of 7,450
        in TextEditor::TextEditorWidget::createAssistInterface(TextEditor::AssistKind, TextEditor::AssistReason) const in /home/jarek/dev/creator-9/src/plugins/texteditor/texteditor.cpp:8527
        1: operator new(unsigned long) in ./coregrind/m_replacemalloc/vg_replace_malloc.c:422
        2: TextEditor::TextEditorWidget::createAssistInterface(TextEditor::AssistKind, TextEditor::AssistReason) const in /home/jarek/dev/creator-9/src/plugins/texteditor/texteditor.cpp:8527
        3: CppEditor::CppEditorWidget::createAssistInterface(TextEditor::AssistKind, TextEditor::AssistReason) const in /home/jarek/dev/creator-9/src/plugins/cppeditor/cppeditorwidget.cpp:1202
        4: TextEditor::CodeAssistantPrivate::requestProposal(TextEditor::AssistReason, TextEditor::AssistKind, TextEditor::IAssistProvider*, bool) in /home/jarek/dev/creator-9/src/plugins/texteditor/codeassist/codeassistant.cpp:197
        5: TextEditor::CodeAssistantPrivate::invoke(TextEditor::AssistKind, TextEditor::IAssistProvider*) in /home/jarek/dev/creator-9/src/plugins/texteditor/codeassist/codeassistant.cpp:143
        6: TextEditor::CodeAssistant::invoke(TextEditor::AssistKind, TextEditor::IAssistProvider*) in /home/jarek/dev/creator-9/src/plugins/texteditor/codeassist/codeassistant.cpp:638
        7: TextEditor::TextEditorWidget::invokeAssist(TextEditor::AssistKind, TextEditor::IAssistProvider*) in /home/jarek/dev/creator-9/src/plugins/texteditor/texteditor.cpp:8519
        8: TextEditor::Internal::TextEditorPlugin::initialize(QList<QString> const&, QString*)::{lambda()#1}::operator()() const in /home/jarek/dev/creator-9/src/plugins/texteditor/texteditorplugin.cpp:109
        9: QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, TextEditor::Internal::TextEditorPlugin::initialize(QList<QString> const&, QString*)::{lambda()#1}>::call(TextEditor::Internal::TextEditorPlugin::initialize(QList<QString> const&, QString*)::{lambda()#1}&, void**) in /home/jarek/dev/qt-63/qtbase/src/corelib/kernel/qobjectdefs_impl.h:163
        10: void QtPrivate::Functor<TextEditor::Internal::TextEditorPlugin::initialize(QList<QString> const&, QString*)::{lambda()#1}, 0>::call<QtPrivate::List<>, void>(TextEditor::Internal::TextEditorPlugin::initialize(QList<QString> const&, QString*)::{lambda()#1}&, void*, void**) in /home/jarek/dev/qt-63/qtbase/src/corelib/kernel/qobjectdefs_impl.h:277
        11: QtPrivate::QFunctorSlotObject<TextEditor::Internal::TextEditorPlugin::initialize(QList<QString> const&, QString*)::{lambda()#1}, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) in /home/jarek/dev/qt-63/qtbase/src/corelib/kernel/qobjectdefs_impl.h:444
        12: QtPrivate::QSlotObjectBase::call(QObject*, void**) in /home/jarek/dev/qt-63/qtbase/src/corelib/kernel/qobjectdefs_impl.h:399
        13: void doActivate<false>(QObject*, int, void**) in /home/jarek/dev/qt-63/qtbase/src/corelib/kernel/qobject.cpp:3921
        14: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) in /home/jarek/dev/qt-63/qtbase/src/corelib/kernel/qobject.cpp:3981
        15: QAction::triggered(bool) in /home/jarek/dev/qt-63-build/qtbase/src/gui/Gui_autogen/include/moc_qaction.cpp:504
        16: QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<bool>, void, void (QAction::*)(bool)>::call(void (QAction::*)(bool), QAction*, void**) in /home/jarek/dev/qt-63/qtbase/src/corelib/kernel/qobjectdefs_impl.h:171
        17: void QtPrivate::FunctionPointer<void (QAction::*)(bool)>::call<QtPrivate::List<bool>, void>(void (QAction::*)(bool), QAction*, void**) in /home/jarek/dev/qt-63/qtbase/src/corelib/kernel/qobjectdefs_impl.h:208
        18: QtPrivate::QSlotObject<void (QAction::*)(bool), QtPrivate::List<bool>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) in /home/jarek/dev/qt-63/qtbase/src/corelib/kernel/qobjectdefs_impl.h:419
        19: QtPrivate::QSlotObjectBase::call(QObject*, void**) in /home/jarek/dev/qt-63/qtbase/src/corelib/kernel/qobjectdefs_impl.h:399
        20: void doActivate<false>(QObject*, int, void**) in /home/jarek/dev/qt-63/qtbase/src/corelib/kernel/qobject.cpp:3921
        21: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) in /home/jarek/dev/qt-63/qtbase/src/corelib/kernel/qobject.cpp:3981
        22: QAction::triggered(bool) in /home/jarek/dev/qt-63-build/qtbase/src/gui/Gui_autogen/include/moc_qaction.cpp:504
        23: QAction::activate(QAction::ActionEvent) in /home/jarek/dev/qt-63/qtbase/src/gui/kernel/qaction.cpp:1132
        24: QAction::event(QEvent*) in /home/jarek/dev/qt-63/qtbase/src/gui/kernel/qaction.cpp:1074
        25: QApplicationPrivate::notify_helper(QObject*, QEvent*) in /home/jarek/dev/qt-63/qtbase/src/widgets/kernel/qapplication.cpp:3350
      

      It looks like CodeAssistantPrivate::requestProposal() creates instances of assistInterface, but they are never deleted. Should they be deleted together with IAssistProcessor *processor instances?

      Attachments

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

        Activity

          People

            davschul David Schulz
            jkobus Jarek Kobus
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes