diff options
author | Andreas Aardal Hanssen <andreas.hanssen@tandberg.com> | 2010-07-14 10:02:08 (GMT) |
---|---|---|
committer | Jan-Arve Sæther <jan-arve.saether@nokia.com> | 2010-07-14 10:02:08 (GMT) |
commit | ea6a5146397b668bf535ee7249bd4262d6185234 (patch) | |
tree | 456252b438bc52e989a562dae7a364c979177ed0 /tests | |
parent | 213eb572f1902550e36f7e677733aba8d066d94b (diff) | |
download | Qt-ea6a5146397b668bf535ee7249bd4262d6185234.zip Qt-ea6a5146397b668bf535ee7249bd4262d6185234.tar.gz Qt-ea6a5146397b668bf535ee7249bd4262d6185234.tar.bz2 |
Work around memory leak issue in grid and linear layouts.
These classes create a new QWidget and assign it to a static pointer
which is never cleaned up. Using Q_GLOBAL_STATIC ensures that they are
deleted on library unload. This is really just a cosmetic change that
removes a leak warning - the real fix should be to find a way to not
use a new QWidget like this. It seems odd that QGraphicsLayouts, which
don't use QWidget in any other way, should depend on QWidget like this.
Task-number: QTBUG-10768
Merge-request: 741
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp | 7 | ||||
-rw-r--r-- | tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp | 7 |
2 files changed, 14 insertions, 0 deletions
diff --git a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp index b9a5c66..d1d6860 100644 --- a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp +++ b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp @@ -105,6 +105,7 @@ private slots: void geometries_data(); void geometries(); void avoidRecursionInInsertItem(); + void styleInfoLeak(); void task236367_maxSizeHint(); }; @@ -2196,6 +2197,12 @@ void tst_QGraphicsGridLayout::avoidRecursionInInsertItem() QCOMPARE(layout->count(), 0); } +void tst_QGraphicsGridLayout::styleInfoLeak() +{ + QGraphicsGridLayout grid; + grid.horizontalSpacing(); +} + void tst_QGraphicsGridLayout::task236367_maxSizeHint() { QGraphicsWidget *widget = new QGraphicsWidget; diff --git a/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp b/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp index c26e5d4..6107fa1 100644 --- a/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp +++ b/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp @@ -102,6 +102,7 @@ private slots: void layoutDirection(); void removeLayout(); void avoidRecursionInInsertItem(); + void styleInfoLeak(); // Task specific tests void task218400_insertStretchCrash(); @@ -1443,6 +1444,12 @@ void tst_QGraphicsLinearLayout::avoidRecursionInInsertItem() QCOMPARE(layout->count(), 0); } +void tst_QGraphicsLinearLayout::styleInfoLeak() +{ + QGraphicsLinearLayout layout; + layout.spacing(); +} + void tst_QGraphicsLinearLayout::task218400_insertStretchCrash() { QGraphicsScene *scene = new QGraphicsScene; |