From 8d6f77deed332ef72185c9ad44ab8fd772ca6164 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Thu, 18 Dec 2008 07:20:31 +0000 Subject: [PATCH] Memory leaks : Remove "if break|continue ;" that may otherwise cause false positives --- checkmemoryleak.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/checkmemoryleak.cpp b/checkmemoryleak.cpp index 39d7abcda..9868a0082 100644 --- a/checkmemoryleak.cpp +++ b/checkmemoryleak.cpp @@ -762,6 +762,14 @@ void CheckMemoryLeakClass::simplifycode(TOKEN *tok) done = false; } } + + // Remove the "if break|continue ;" that follows "dealloc ; alloc ;" + if ( ! _settings._showAll && TOKEN::Match(tok2, "dealloc ; alloc ; if break|continue ;") ) + { + tok2 = tok2->next()->next()->next(); + erase(tok2, tok2->tokAt(3)); + done = false; + } // Reduce "if ; else %var% ;" => "if %var% ;" if ( TOKEN::Match(tok2, "if ; else %var% ;") ) @@ -1048,7 +1056,7 @@ void CheckMemoryLeakClass::CheckMemoryLeak_CheckScope( const TOKEN *Tok1, const } else if ( (result = TOKEN::findmatch(tok, "alloc ; if break|continue|return ;")) != NULL ) - { + { MemoryLeak(result->tokAt(3), varname, alloctype); }