diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2015-11-14 12:50:56 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2015-11-14 12:50:56 (GMT) |
commit | 85ddfc814f33943199928447b4627d05b0920b99 (patch) | |
tree | 2887ce1367bdad15cde3b7355d134321fcf34762 /src | |
parent | 0918a19225daedfbd5e23388124a5de3860d5420 (diff) | |
download | Doxygen-85ddfc814f33943199928447b4627d05b0920b99.zip Doxygen-85ddfc814f33943199928447b4627d05b0920b99.tar.gz Doxygen-85ddfc814f33943199928447b4627d05b0920b99.tar.bz2 |
Fixed a couple of small memory leaks
Diffstat (limited to 'src')
-rw-r--r-- | src/classdef.cpp | 2 | ||||
-rw-r--r-- | src/pre.l | 6 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/classdef.cpp b/src/classdef.cpp index fa555ac..88f9a70 100644 --- a/src/classdef.cpp +++ b/src/classdef.cpp @@ -2603,7 +2603,7 @@ void ClassDef::setTypeConstraints(ArgumentList *al) void ClassDef::setTemplateArguments(ArgumentList *al) { if (al==0) return; - if (!m_impl->tempArgs) delete m_impl->tempArgs; // delete old list if needed + if (m_impl->tempArgs) delete m_impl->tempArgs; // delete old list if needed //printf("setting template args '%s' for '%s'\n",tempArgListToString(al,getLanguage()).data(),name().data()); m_impl->tempArgs=new ArgumentList; ArgumentListIterator ali(*al); @@ -1659,6 +1659,7 @@ static void endCondSection() { CondCtx *ctx = g_condStack.pop(); g_skip=ctx->skip; + delete ctx; } //printf("endCondSection: skip=%d stack=%d\n",g_skip,g_condStack.count()); } @@ -1667,7 +1668,7 @@ static void forceEndCondSection() { while (!g_condStack.isEmpty()) { - g_condStack.pop(); + delete g_condStack.pop(); } g_skip=FALSE; } @@ -3010,8 +3011,8 @@ void preprocessFile(const char *fileName,BufStr &input,BufStr &output) g_includeStack.clear(); g_expandedDict->setAutoDelete(FALSE); g_expandedDict->clear(); - g_condStack.clear(); g_condStack.setAutoDelete(TRUE); + g_condStack.clear(); //g_fileDefineDict->clear(); setFileName(fileName); @@ -3161,6 +3162,7 @@ void preprocessFile(const char *fileName,BufStr &input,BufStr &output) if (ctx->sectionId!=" ") sectionInfo.sprintf(" with label %s ",ctx->sectionId.data()); warn(fileName,ctx->lineNr,"Conditional section%sdoes not have " "a corresponding \\endcond command within this file.",sectionInfo.data()); + delete ctx; } // make sure we don't extend a \cond with missing \endcond over multiple files (see bug 624829) forceEndCondSection(); |