mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-07-30 07:44:13 +02:00
Fix four memory leaks found by AddressSanitizer
- StyleEditor: QGridLayout(this) pre-empted the widget's layout slot, causing setLayout(main_layout) to silently fail and orphan main_layout. Fix: use QGridLayout() without a parent so setLayout() succeeds. - ExportDialog: ~ExportDialog() was empty, leaving ExportDiagramLine heap objects in diagram_lines_ unfreed. Fix: qDeleteAll(diagram_lines_). - GenericPanel::getItemForDiagram: when called without the bool* created arg, it created a parentless QTreeWidgetItem that callers immediately discarded. Fix: return nullptr when created==nullptr and item not found (all callers already guard with if (item)). - ElementScene: m_paste_area (created in initPasteArea) was temporarily added/removed from the scene during XML loading but never freed in the destructor. Fix: delete it if not currently in the scene. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -107,6 +107,9 @@ ElementScene::~ElementScene()
|
||||
|
||||
if (m_decorator)
|
||||
delete m_decorator;
|
||||
|
||||
if (m_paste_area && !m_paste_area->scene())
|
||||
delete m_paste_area;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -386,7 +386,7 @@ StyleEditor::StyleEditor(QETElementEditor *editor, CustomElementGraphicPart *p,
|
||||
|
||||
outline_color->setSizeAdjustPolicy(QComboBox::AdjustToContents);
|
||||
filling_color->setSizeAdjustPolicy(QComboBox::AdjustToContents);
|
||||
auto grid_layout = new QGridLayout(this);
|
||||
auto grid_layout = new QGridLayout();
|
||||
grid_layout->addWidget(new QLabel(tr("Contour :")), 0,0, Qt::AlignRight);
|
||||
grid_layout->addWidget(outline_color, 0, 1);
|
||||
grid_layout->addWidget(new QLabel(tr("Remplissage :")), 1, 0, Qt::AlignRight);
|
||||
|
||||
@@ -112,6 +112,7 @@ ExportDialog::ExportDialog(
|
||||
*/
|
||||
ExportDialog::~ExportDialog()
|
||||
{
|
||||
qDeleteAll(diagram_lines_);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -321,9 +321,11 @@ QTreeWidgetItem *GenericPanel::getItemForDiagram(Diagram *diagram,
|
||||
if (created) *created = false;
|
||||
return(diagram_qtwi);
|
||||
}
|
||||
|
||||
|
||||
if (!created) return(nullptr);
|
||||
|
||||
diagram_qtwi = makeItem(QET::Diagram);
|
||||
if (created) *created = true;
|
||||
*created = true;
|
||||
return(diagram_qtwi);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user