diff --git a/src/checkmemoryleak.cpp b/src/checkmemoryleak.cpp index 87e772099..a0e653819 100644 --- a/src/checkmemoryleak.cpp +++ b/src/checkmemoryleak.cpp @@ -629,6 +629,8 @@ Token *CheckMemoryLeakInFunction::getcode(const Token *tok, std::listtokAt(2); + continue; } } @@ -936,7 +938,24 @@ Token *CheckMemoryLeakInFunction::getcode(const Token *tok, std::listtokAt(2), varnameStr.c_str()) + ) + { + addtoken("if"); + addtoken("{"); + addtoken("dealloc"); + addtoken(";"); + addtoken("}"); + tok = tok->tokAt(2); + continue; + } + } } } @@ -1495,7 +1514,7 @@ void CheckMemoryLeakInFunction::checkScope(const Token *Tok1, const char varname const Token *result; Token *tok = getcode(Tok1, callstack, varname, alloctype, dealloctype, classmember, all, sz); - //tok->printOut( "getcode result" ); + //tok->printOut((std::string("Checkmemoryleak: getcode result for: ") + varname).c_str()); // Simplify the code and check if freed memory is used.. for (Token *tok2 = tok; tok2; tok2 = tok2->next()) diff --git a/test/testmemleak.cpp b/test/testmemleak.cpp index 7e49fceb2..f644a9f21 100644 --- a/test/testmemleak.cpp +++ b/test/testmemleak.cpp @@ -1677,7 +1677,7 @@ private: " free(new_buf);\n" "}\n", true); - TODO_ASSERT_EQUALS("", errout.str()); + ASSERT_EQUALS("", errout.str()); } void assign()