# HG changeset patch # User Teemu Piippo # Date 1487071787 -7200 # Node ID 19fe87c796f85700242cfe5380deabf9e5a5338c # Parent 7dc2c981937e510177ee3081cbfcb788f3b9e383 Fixed possible memory leak in AlgorithmToolset::editRaw(). diff -r 7dc2c981937e -r 19fe87c796f8 src/toolsets/algorithmtoolset.cpp --- a/src/toolsets/algorithmtoolset.cpp Tue Feb 14 13:25:43 2017 +0200 +++ b/src/toolsets/algorithmtoolset.cpp Tue Feb 14 13:29:47 2017 +0200 @@ -90,26 +90,27 @@ if (countof(selectedObjects()) != 1) return; - LDObject* obj = *(selectedObjects().begin()); - QDialog* dlg = new QDialog; + LDObject* object = *(selectedObjects().begin()); + QDialog dialog; Ui::EditRawUI ui; + ui.setupUi(&dialog); + ui.code->setText (object->asText()); - ui.setupUi (dlg); - ui.code->setText (obj->asText()); - - if (obj->type() == LDObjectType::Error) - ui.errorDescription->setText (static_cast (obj)->reason()); + if (object->type() == LDObjectType::Error) + { + ui.errorDescription->setText(static_cast(object)->reason()); + } else { ui.errorDescription->hide(); ui.errorIcon->hide(); } - if (dlg->exec() == QDialog::Rejected) - return; - - // Reinterpret it from the text of the input field - currentDocument()->replaceWithFromString(obj, ui.code->text()); + if (dialog.exec() == QDialog::Accepted) + { + // Reinterpret it from the text of the input field + currentDocument()->replaceWithFromString(object, ui.code->text()); + } } void AlgorithmToolset::makeBorders()