From 4e86d997141dc7cd9e83b6c6a4a47ebdcaa4ebd6 Mon Sep 17 00:00:00 2001 From: Berthold Stoeger Date: Mon, 15 Jul 2019 20:41:42 +0200 Subject: Cleanup: free plot data on exit Some widgets copy the full plot info. Free these data on exit to prevent monstrous valgrind reports. Signed-off-by: Berthold Stoeger --- profile-widget/profilewidget2.cpp | 5 +++++ profile-widget/profilewidget2.h | 1 + profile-widget/tankitem.cpp | 5 +++++ profile-widget/tankitem.h | 1 + 4 files changed, 12 insertions(+) (limited to 'profile-widget') diff --git a/profile-widget/profilewidget2.cpp b/profile-widget/profilewidget2.cpp index b778f982c..e065361d3 100644 --- a/profile-widget/profilewidget2.cpp +++ b/profile-widget/profilewidget2.cpp @@ -178,6 +178,11 @@ ProfileWidget2::ProfileWidget2(QWidget *parent) : QGraphicsView(parent), #endif } +ProfileWidget2::~ProfileWidget2() +{ + free_plot_info_data(&plotInfo); +} + #ifndef SUBSURFACE_MOBILE void ProfileWidget2::addActionShortcut(const Qt::Key shortcut, void (ProfileWidget2::*slot)()) { diff --git a/profile-widget/profilewidget2.h b/profile-widget/profilewidget2.h index a5895da63..d2b813e35 100644 --- a/profile-widget/profilewidget2.h +++ b/profile-widget/profilewidget2.h @@ -73,6 +73,7 @@ public: }; ProfileWidget2(QWidget *parent = 0); + ~ProfileWidget2(); void resetZoom(); void scale(qreal sx, qreal sy); void plotDive(const struct dive *d = 0, bool force = false, bool clearPictures = false, bool instant = false); diff --git a/profile-widget/tankitem.cpp b/profile-widget/tankitem.cpp index ea50dd9cf..f40baa357 100644 --- a/profile-widget/tankitem.cpp +++ b/profile-widget/tankitem.cpp @@ -32,6 +32,11 @@ TankItem::TankItem(QObject *parent) : hAxis = nullptr; } +TankItem::~TankItem() +{ + free(pInfoEntry); +} + void TankItem::setData(DivePlotDataModel *model, struct plot_info *plotInfo, struct dive *d) { // If there is nothing to plot, quit early. diff --git a/profile-widget/tankitem.h b/profile-widget/tankitem.h index 73994444b..ff86f787d 100644 --- a/profile-widget/tankitem.h +++ b/profile-widget/tankitem.h @@ -15,6 +15,7 @@ class TankItem : public QObject, public QGraphicsRectItem public: explicit TankItem(QObject *parent = 0); + ~TankItem(); void setHorizontalAxis(DiveCartesianAxis *horizontal); void setData(DivePlotDataModel *model, struct plot_info *plotInfo, struct dive *d); -- cgit v1.2.3-70-g09d2