diff options
author | Gunnar Sletta <gunnar.sletta@digia.com> | 2013-02-20 14:21:53 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-02-20 19:41:44 +0100 |
commit | 8c8404f8153508106f65efb43110ba85c05e73bc (patch) | |
tree | 100690675de9ac65f9026269187ac63f81070805 /src | |
parent | bbc9008f077bccd811483608d9a436cce3e923f5 (diff) |
Don't print leak warnings on exit by default
Task-number: QTBUG-29780
Change-Id: I6f35253dbec6346af239c0ab341caad9f4f9b862
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/quick/items/qquickitem.cpp | 24 | ||||
-rw-r--r-- | src/quick/scenegraph/coreapi/qsgmaterial.cpp | 24 | ||||
-rw-r--r-- | src/quick/scenegraph/coreapi/qsgnode.cpp | 21 | ||||
-rw-r--r-- | src/quick/scenegraph/util/qsgtexture.cpp | 12 |
4 files changed, 54 insertions, 27 deletions
diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp index 26af6953e1..ad8a9d90af 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -78,6 +78,10 @@ QT_BEGIN_NAMESPACE +#ifndef QT_NO_DEBUG +static bool qsg_leak_check = !qgetenv("QML_LEAK_CHECK").isEmpty(); +#endif + #ifdef FOCUS_DEBUG void printFocusTree(QQuickItem *item, QQuickItem *scope = 0, int depth = 1); void printFocusTree(QQuickItem *item, QQuickItem *scope, int depth) @@ -1965,9 +1969,11 @@ static void qt_print_item_count() QQuickItem::~QQuickItem() { #ifndef QT_NO_DEBUG - --qt_item_count; - if (qt_item_count < 0) - qDebug("Item destroyed after qt_print_item_count() was called."); + if (qsg_leak_check) { + --qt_item_count; + if (qt_item_count < 0) + qDebug("Item destroyed after qt_print_item_count() was called."); + } #endif Q_D(QQuickItem); @@ -2546,11 +2552,13 @@ QQuickItemPrivate::~QQuickItemPrivate() void QQuickItemPrivate::init(QQuickItem *parent) { #ifndef QT_NO_DEBUG - ++qt_item_count; - static bool atexit_registered = false; - if (!atexit_registered) { - atexit(qt_print_item_count); - atexit_registered = true; + if (qsg_leak_check) { + ++qt_item_count; + static bool atexit_registered = false; + if (!atexit_registered) { + atexit(qt_print_item_count); + atexit_registered = true; + } } #endif diff --git a/src/quick/scenegraph/coreapi/qsgmaterial.cpp b/src/quick/scenegraph/coreapi/qsgmaterial.cpp index 0e40a01311..f678504344 100644 --- a/src/quick/scenegraph/coreapi/qsgmaterial.cpp +++ b/src/quick/scenegraph/coreapi/qsgmaterial.cpp @@ -44,6 +44,10 @@ QT_BEGIN_NAMESPACE +#ifndef QT_NO_DEBUG +static bool qsg_leak_check = !qgetenv("QML_LEAK_CHECK").isEmpty(); +#endif + /*! \group qtquick-scenegraph-materials \title Qt Quick Scene Graph Material Classes @@ -538,11 +542,13 @@ QSGMaterial::QSGMaterial() : m_flags(0) { #ifndef QT_NO_DEBUG - ++qt_material_count; - static bool atexit_registered = false; - if (!atexit_registered) { - atexit(qt_print_material_count); - atexit_registered = true; + if (qsg_leak_check) { + ++qt_material_count; + static bool atexit_registered = false; + if (!atexit_registered) { + atexit(qt_print_material_count); + atexit_registered = true; + } } #endif } @@ -555,9 +561,11 @@ QSGMaterial::QSGMaterial() QSGMaterial::~QSGMaterial() { #ifndef QT_NO_DEBUG - --qt_material_count; - if (qt_material_count < 0) - qDebug("Material destroyed after qt_print_material_count() was called."); + if (qsg_leak_check) { + --qt_material_count; + if (qt_material_count < 0) + qDebug("Material destroyed after qt_print_material_count() was called."); + } #endif } diff --git a/src/quick/scenegraph/coreapi/qsgnode.cpp b/src/quick/scenegraph/coreapi/qsgnode.cpp index 5995dc862d..6a22e0e7f9 100644 --- a/src/quick/scenegraph/coreapi/qsgnode.cpp +++ b/src/quick/scenegraph/coreapi/qsgnode.cpp @@ -49,6 +49,7 @@ QT_BEGIN_NAMESPACE #ifndef QT_NO_DEBUG +static bool qsg_leak_check = !qgetenv("QML_LEAK_CHECK").isEmpty(); static int qt_node_count = 0; static void qt_print_node_count() @@ -271,11 +272,13 @@ QSGNode::QSGNode(NodeType type) void QSGNode::init() { #ifndef QT_NO_DEBUG - ++qt_node_count; - static bool atexit_registered = false; - if (!atexit_registered) { - atexit(qt_print_node_count); - atexit_registered = true; + if (qsg_leak_check) { + ++qt_node_count; + static bool atexit_registered = false; + if (!atexit_registered) { + atexit(qt_print_node_count); + atexit_registered = true; + } } #endif } @@ -289,9 +292,11 @@ void QSGNode::init() QSGNode::~QSGNode() { #ifndef QT_NO_DEBUG - --qt_node_count; - if (qt_node_count < 0) - qDebug("Node destroyed after qt_print_node_count() was called."); + if (qsg_leak_check) { + --qt_node_count; + if (qt_node_count < 0) + qDebug("Node destroyed after qt_print_node_count() was called."); + } #endif destroy(); } diff --git a/src/quick/scenegraph/util/qsgtexture.cpp b/src/quick/scenegraph/util/qsgtexture.cpp index 87ef91b212..48927ce5e1 100644 --- a/src/quick/scenegraph/util/qsgtexture.cpp +++ b/src/quick/scenegraph/util/qsgtexture.cpp @@ -65,6 +65,10 @@ #include <QHash> #endif +#ifndef QT_NO_DEBUG +static bool qsg_leak_check = !qgetenv("QML_LEAK_CHECK").isEmpty(); +#endif + #ifndef QSG_NO_RENDERER_TIMING static bool qsg_render_timing = !qgetenv("QML_RENDERER_TIMING").isEmpty(); static QElapsedTimer qsg_renderer_timer; @@ -182,7 +186,7 @@ static void qt_debug_remove_texture(QSGTexture* texture) --qt_debug_texture_count; if (qt_debug_texture_count < 0) - qDebug("Material destroyed after qt_debug_print_texture_count() was called."); + qDebug("Texture destroyed after qt_debug_print_texture_count() was called."); } #endif // QT_NO_DEBUG @@ -269,7 +273,8 @@ QSGTexture::QSGTexture() : QObject(*(new QSGTexturePrivate)) { #ifndef QT_NO_DEBUG - qt_debug_add_texture(this); + if (qsg_leak_check) + qt_debug_add_texture(this); #endif } @@ -279,7 +284,8 @@ QSGTexture::QSGTexture() QSGTexture::~QSGTexture() { #ifndef QT_NO_DEBUG - qt_debug_remove_texture(this); + if (qsg_leak_check) + qt_debug_remove_texture(this); #endif } |