mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-08-01 17:14: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)
|
if (m_decorator)
|
||||||
delete 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);
|
outline_color->setSizeAdjustPolicy(QComboBox::AdjustToContents);
|
||||||
filling_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(new QLabel(tr("Contour :")), 0,0, Qt::AlignRight);
|
||||||
grid_layout->addWidget(outline_color, 0, 1);
|
grid_layout->addWidget(outline_color, 0, 1);
|
||||||
grid_layout->addWidget(new QLabel(tr("Remplissage :")), 1, 0, Qt::AlignRight);
|
grid_layout->addWidget(new QLabel(tr("Remplissage :")), 1, 0, Qt::AlignRight);
|
||||||
|
|||||||
@@ -112,6 +112,7 @@ ExportDialog::ExportDialog(
|
|||||||
*/
|
*/
|
||||||
ExportDialog::~ExportDialog()
|
ExportDialog::~ExportDialog()
|
||||||
{
|
{
|
||||||
|
qDeleteAll(diagram_lines_);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -322,8 +322,10 @@ QTreeWidgetItem *GenericPanel::getItemForDiagram(Diagram *diagram,
|
|||||||
return(diagram_qtwi);
|
return(diagram_qtwi);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!created) return(nullptr);
|
||||||
|
|
||||||
diagram_qtwi = makeItem(QET::Diagram);
|
diagram_qtwi = makeItem(QET::Diagram);
|
||||||
if (created) *created = true;
|
*created = true;
|
||||||
return(diagram_qtwi);
|
return(diagram_qtwi);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user