aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/3rdparty/cplusplus
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2025-08-14 17:52:23 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2025-08-18 15:03:40 +0000
commit989042943519ebc3e640c2ae7bee06034d3329fa (patch)
tree8da9202017a28467cb9579601225d2c821a08dc1 /src/libs/3rdparty/cplusplus
parent7a3560a2d0c89fc142900e6e5e2dab06f613abce (diff)
Fix leaks in CPlusPlus autotestsHEADmaster
Change-Id: I4da9e96fea421f8aa4b6c6d1ffba8eb63930d4a7 Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/libs/3rdparty/cplusplus')
-rw-r--r--src/libs/3rdparty/cplusplus/Control.cpp8
-rw-r--r--src/libs/3rdparty/cplusplus/Control.h2
2 files changed, 7 insertions, 3 deletions
diff --git a/src/libs/3rdparty/cplusplus/Control.cpp b/src/libs/3rdparty/cplusplus/Control.cpp
index 7c13bb2daba..2a5c30fb748 100644
--- a/src/libs/3rdparty/cplusplus/Control.cpp
+++ b/src/libs/3rdparty/cplusplus/Control.cpp
@@ -574,8 +574,12 @@ TranslationUnit *Control::switchTranslationUnit(TranslationUnit *unit)
DiagnosticClient *Control::diagnosticClient() const
{ return d->diagnosticClient; }
-void Control::setDiagnosticClient(DiagnosticClient *diagnosticClient)
-{ d->diagnosticClient = diagnosticClient; }
+void Control::setDiagnosticClient(DiagnosticClient *diagnosticClient, bool deleteExisting)
+{
+ if (deleteExisting)
+ delete d->diagnosticClient;
+ d->diagnosticClient = diagnosticClient;
+}
const AnonymousNameId *Control::anonymousNameId(unsigned classTokenIndex)
{ return d->findOrInsertAnonymousNameId(classTokenIndex); }
diff --git a/src/libs/3rdparty/cplusplus/Control.h b/src/libs/3rdparty/cplusplus/Control.h
index 8ef7c3586b6..68cdef19bea 100644
--- a/src/libs/3rdparty/cplusplus/Control.h
+++ b/src/libs/3rdparty/cplusplus/Control.h
@@ -46,7 +46,7 @@ public:
void setTopLevelDeclarationProcessor(TopLevelDeclarationProcessor *processor);
DiagnosticClient *diagnosticClient() const;
- void setDiagnosticClient(DiagnosticClient *diagnosticClient);
+ void setDiagnosticClient(DiagnosticClient *diagnosticClient, bool deleteExisting);
/// Returns the canonical anonymous name id
const AnonymousNameId *anonymousNameId(unsigned classTokenIndex);