LCOV - code coverage report
Current view: top level - src - FangObject.cpp (source / functions) Coverage Total Hit
Test: coverage.info.cleaned Lines: 100.0 % 26 26
Test Date: 2026-03-23 10:19:47 Functions: 100.0 % 5 5

            Line data    Source code
       1              : #include "FangObject.h"
       2              : 
       3              : #include <QMutexLocker>
       4              : #include <QMap>
       5              : 
       6              : #include "utilities/FangLogging.h"
       7              : 
       8              : QSet<FangObject*> FangObject::allObjects;
       9              : 
      10         6999 : FangObject::FangObject(QObject *parent) :
      11         6999 :     QObject(parent)
      12              : {
      13              : #ifdef FANG_OBJECT_LEAK_CHECK
      14         6999 :     QMutexLocker locker(&mutex);
      15         6999 :     allObjects.insert(this);
      16              : #endif
      17         6999 : }
      18              : 
      19         6920 : FangObject::~FangObject()
      20              : {
      21              : #ifdef FANG_OBJECT_LEAK_CHECK
      22         6897 :     QMutexLocker locker(&mutex);
      23         6897 :     allObjects.remove(this);
      24              : #endif
      25         6920 : }
      26              : 
      27            3 : void FangObject::printRemainingObjects()
      28              : {
      29              : #ifdef FANG_OBJECT_LEAK_CHECK
      30            6 :     qCInfo(logApp);
      31            6 :     qCInfo(logApp) << "========== FangObject leak check ==========";
      32            6 :     qCInfo(logApp) << "Remaining objects: " << allObjects.size();
      33            6 :     qCInfo(logApp);
      34              : 
      35              :     // Key:   Class name
      36              :     // Value: Number of instances
      37            3 :     QMap<QString, int> instanceCount;
      38              : 
      39              :     // Tally up the totals.
      40            8 :     for (FangObject* object : allObjects) {
      41            5 :         instanceCount[object->metaObject()->className()]++;
      42              :     }
      43              : 
      44              :     // Print 'em out!
      45            6 :     for (QString className : instanceCount.keys()) {
      46            6 :         qCDebug(logApp) << QString("%1 : %2").
      47            3 :                     arg(instanceCount[className], 4).arg(className);
      48            6 :     }
      49              : 
      50            6 :     qCInfo(logApp) << "===========================================";
      51            6 :     qCInfo(logApp);
      52              : #endif
      53            3 : }
      54              : 
      55              : #ifdef FANG_OBJECT_LEAK_CHECK
      56           35 : int FangObject::getRemainingObjectCount()
      57              : {
      58           35 :     return allObjects.size();
      59              : }
      60              : #endif
        

Generated by: LCOV version 2.0-1