Fix memory leaks found by ASAN. (#1590)

This commit is contained in:
karliss 2019-05-26 13:12:23 +03:00 committed by Itay Cohen
parent 14665cbe8a
commit 6c76c85c97
8 changed files with 14 additions and 13 deletions

View File

@ -127,8 +127,8 @@ BreakpointWidget::BreakpointWidget(MainWindow *main, QAction *action) :
}); });
setScrollMode(); setScrollMode();
actionDelBreakpoint = new QAction(tr("Delete breakpoint")); actionDelBreakpoint = new QAction(tr("Delete breakpoint"), this);
actionToggleBreakpoint = new QAction(tr("Toggle breakpoint")); actionToggleBreakpoint = new QAction(tr("Toggle breakpoint"), this);
connect(actionDelBreakpoint, &QAction::triggered, this, &BreakpointWidget::delBreakpoint); connect(actionDelBreakpoint, &QAction::triggered, this, &BreakpointWidget::delBreakpoint);
connect(actionToggleBreakpoint, &QAction::triggered, this, &BreakpointWidget::toggleBreakpoint); connect(actionToggleBreakpoint, &QAction::triggered, this, &BreakpointWidget::toggleBreakpoint);
connect(Core(), &CutterCore::refreshAll, this, &BreakpointWidget::refreshBreakpoint); connect(Core(), &CutterCore::refreshAll, this, &BreakpointWidget::refreshBreakpoint);

View File

@ -68,7 +68,7 @@ DebugActions::DebugActions(QToolBar *toolBar, MainWindow *main) :
QToolButton *startButton = new QToolButton; QToolButton *startButton = new QToolButton;
startButton->setPopupMode(QToolButton::MenuButtonPopup); startButton->setPopupMode(QToolButton::MenuButtonPopup);
connect(startButton, &QToolButton::triggered, startButton, &QToolButton::setDefaultAction); connect(startButton, &QToolButton::triggered, startButton, &QToolButton::setDefaultAction);
QMenu *startMenu = new QMenu; QMenu *startMenu = new QMenu(startButton);
// only emulation is currently allowed // only emulation is currently allowed
// startMenu->addAction(actionStart); // startMenu->addAction(actionStart);
@ -82,7 +82,7 @@ DebugActions::DebugActions(QToolBar *toolBar, MainWindow *main) :
continueUntilButton->setPopupMode(QToolButton::MenuButtonPopup); continueUntilButton->setPopupMode(QToolButton::MenuButtonPopup);
connect(continueUntilButton, &QToolButton::triggered, continueUntilButton, connect(continueUntilButton, &QToolButton::triggered, continueUntilButton,
&QToolButton::setDefaultAction); &QToolButton::setDefaultAction);
QMenu *continueUntilMenu = new QMenu; QMenu *continueUntilMenu = new QMenu(continueUntilButton);
continueUntilMenu->addAction(actionContinueUntilMain); continueUntilMenu->addAction(actionContinueUntilMain);
continueUntilMenu->addAction(actionContinueUntilCall); continueUntilMenu->addAction(actionContinueUntilCall);
continueUntilMenu->addAction(actionContinueUntilSyscall); continueUntilMenu->addAction(actionContinueUntilSyscall);

View File

@ -122,7 +122,7 @@ HexWidget::HexWidget(QWidget *parent) :
startAddress = 0ULL; startAddress = 0ULL;
cursor.address = 0ULL; cursor.address = 0ULL;
data = new MemoryData(); data.reset(new MemoryData());
fetchData(); fetchData();
updateCursorMeta(); updateCursorMeta();

View File

@ -6,6 +6,7 @@
#include <QScrollArea> #include <QScrollArea>
#include <QTimer> #include <QTimer>
#include <QMenu> #include <QMenu>
#include <memory>
struct BasicCursor struct BasicCursor
{ {
@ -457,7 +458,7 @@ private:
QAction *actionCopyAddress; QAction *actionCopyAddress;
QAction *actionSelectRange; QAction *actionSelectRange;
AbstractData *data; std::unique_ptr<AbstractData> data;
}; };
#endif // HEXWIDGET_H #endif // HEXWIDGET_H

View File

@ -118,8 +118,8 @@ RegisterRefsWidget::RegisterRefsWidget(MainWindow *main, QAction *action) :
ui->registerRefTreeView->setModel(registerRefProxyModel); ui->registerRefTreeView->setModel(registerRefProxyModel);
ui->registerRefTreeView->sortByColumn(RegisterRefModel::RegColumn, Qt::AscendingOrder); ui->registerRefTreeView->sortByColumn(RegisterRefModel::RegColumn, Qt::AscendingOrder);
actionCopyValue = new QAction(tr("Copy register value")); actionCopyValue = new QAction(tr("Copy register value"), this);
actionCopyRef = new QAction(tr("Copy register reference")); actionCopyRef = new QAction(tr("Copy register reference"), this);
refreshDeferrer = createRefreshDeferrer([this](){ refreshDeferrer = createRefreshDeferrer([this](){
refreshRegisterRef(); refreshRegisterRef();

View File

@ -321,8 +321,8 @@ void SectionsWidget::updateToggle()
AbstractAddrDock::AbstractAddrDock(SectionsModel *model, QWidget *parent) : AbstractAddrDock::AbstractAddrDock(SectionsModel *model, QWidget *parent) :
QDockWidget(parent), QDockWidget(parent),
addrDockScene(new AddrDockScene), addrDockScene(new AddrDockScene(this)),
graphicsView(new QGraphicsView) graphicsView(new QGraphicsView(this))
{ {
graphicsView->setScene(addrDockScene); graphicsView->setScene(addrDockScene);
setWidget(graphicsView); setWidget(graphicsView);

View File

@ -25,8 +25,8 @@ StackWidget::StackWidget(MainWindow *main, QAction *action) :
viewStack->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel); viewStack->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel);
ui->verticalLayout->addWidget(viewStack); ui->verticalLayout->addWidget(viewStack);
seekAction = new QAction(tr("Seek to this offset")); seekAction = new QAction(tr("Seek to this offset"), this);
editAction = new QAction(tr("Edit stack value...")); editAction = new QAction(tr("Edit stack value..."), this);
viewStack->setContextMenuPolicy(Qt::CustomContextMenu); viewStack->setContextMenuPolicy(Qt::CustomContextMenu);
refreshDeferrer = createRefreshDeferrer([this]() { refreshDeferrer = createRefreshDeferrer([this]() {

View File

@ -138,7 +138,7 @@ VTablesWidget::VTablesWidget(MainWindow *main, QAction *action) :
tree->addStatusBar(ui->verticalLayout); tree->addStatusBar(ui->verticalLayout);
model = new VTableModel(&vtables, this); model = new VTableModel(&vtables, this);
proxy = new VTableSortFilterProxyModel(model); proxy = new VTableSortFilterProxyModel(model, this);
ui->vTableTreeView->setModel(proxy); ui->vTableTreeView->setModel(proxy);
ui->vTableTreeView->sortByColumn(VTableModel::ADDRESS, Qt::AscendingOrder); ui->vTableTreeView->sortByColumn(VTableModel::ADDRESS, Qt::AscendingOrder);