diff options
| author | Giuseppe D'Angelo <[email protected]> | 2016-03-31 21:15:30 +0200 | 
|---|---|---|
| committer | Giuseppe D'Angelo <[email protected]> | 2016-04-01 19:10:14 +0000 | 
| commit | fc65b9a7cbed3fe66e3037501b56949bc1d3ae30 (patch) | |
| tree | ede50002dbef6decdd99581dfe1a3eb56624a47c | |
| parent | b7c7beacda529edd642d979064748bdad27b989b (diff) | |
QGraphics*Layout: fix memory leaks
Change-Id: I5f9d2ccc8912e3fa08e376b5f6b6450d22913406
Task-number: QTBUG-10768
Reviewed-by: Friedemann Kleint <[email protected]>
Reviewed-by: Olivier Goffart (Woboq GmbH) <[email protected]>
| -rw-r--r-- | src/widgets/graphicsview/qgraphicsgridlayout.cpp | 9 | ||||
| -rw-r--r-- | src/widgets/graphicsview/qgraphicslinearlayout.cpp | 10 | 
2 files changed, 10 insertions, 9 deletions
diff --git a/src/widgets/graphicsview/qgraphicsgridlayout.cpp b/src/widgets/graphicsview/qgraphicsgridlayout.cpp index 6f65558a1a3..2dc84a53995 100644 --- a/src/widgets/graphicsview/qgraphicsgridlayout.cpp +++ b/src/widgets/graphicsview/qgraphicsgridlayout.cpp @@ -83,6 +83,7 @@  #include "qgraphicswidget.h"  #include "qgraphicsgridlayoutengine_p.h"  #include "qgraphicslayoutstyleinfo_p.h" +#include "qscopedpointer.h"  #ifdef QT_DEBUG  # include <QtCore/qdebug.h>  #endif @@ -92,10 +93,10 @@ QT_BEGIN_NAMESPACE  class QGraphicsGridLayoutPrivate : public QGraphicsLayoutPrivate  {  public: -    QGraphicsGridLayoutPrivate(): m_styleInfo(0) { } +    QGraphicsGridLayoutPrivate() { }      QGraphicsLayoutStyleInfo *styleInfo() const; -    mutable QGraphicsLayoutStyleInfo *m_styleInfo; +    mutable QScopedPointer<QGraphicsLayoutStyleInfo> m_styleInfo;      QGraphicsGridLayoutEngine engine;  #ifdef QGRIDLAYOUTENGINE_DEBUG @@ -107,8 +108,8 @@ public:  QGraphicsLayoutStyleInfo *QGraphicsGridLayoutPrivate::styleInfo() const  {      if (!m_styleInfo) -        m_styleInfo = new QGraphicsLayoutStyleInfo(this); -    return m_styleInfo; +        m_styleInfo.reset(new QGraphicsLayoutStyleInfo(this)); +    return m_styleInfo.data();  }  /*! diff --git a/src/widgets/graphicsview/qgraphicslinearlayout.cpp b/src/widgets/graphicsview/qgraphicslinearlayout.cpp index 0384364ad4b..91e0fff60f9 100644 --- a/src/widgets/graphicsview/qgraphicslinearlayout.cpp +++ b/src/widgets/graphicsview/qgraphicslinearlayout.cpp @@ -116,6 +116,7 @@  #include "qgraphicswidget.h"  #include "qgraphicsgridlayoutengine_p.h"  #include "qgraphicslayoutstyleinfo_p.h" +#include "qscopedpointer.h"  #ifdef QT_DEBUG  #include <QtCore/qdebug.h>  #endif @@ -126,8 +127,7 @@ class QGraphicsLinearLayoutPrivate : public QGraphicsLayoutPrivate  {  public:      QGraphicsLinearLayoutPrivate(Qt::Orientation orientation) -        : orientation(orientation), -          m_styleInfo(0) +        : orientation(orientation)      { }      void removeGridItem(QGridLayoutItem *gridItem); @@ -137,7 +137,7 @@ public:      int gridColumn(int index) const;      Qt::Orientation orientation; -    mutable QGraphicsLayoutStyleInfo *m_styleInfo; +    mutable QScopedPointer<QGraphicsLayoutStyleInfo> m_styleInfo;      QGraphicsGridLayoutEngine engine;  }; @@ -172,8 +172,8 @@ int QGraphicsLinearLayoutPrivate::gridColumn(int index) const  QGraphicsLayoutStyleInfo *QGraphicsLinearLayoutPrivate::styleInfo() const  {      if (!m_styleInfo) -        m_styleInfo = new QGraphicsLayoutStyleInfo(this); -    return m_styleInfo; +        m_styleInfo.reset(new QGraphicsLayoutStyleInfo(this)); +    return m_styleInfo.data();  }  /*!  | 
