summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2015-11-14 12:50:56 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2015-11-14 12:50:56 (GMT)
commit85ddfc814f33943199928447b4627d05b0920b99 (patch)
tree2887ce1367bdad15cde3b7355d134321fcf34762 /src
parent0918a19225daedfbd5e23388124a5de3860d5420 (diff)
downloadDoxygen-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.cpp2
-rw-r--r--src/pre.l6
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);
diff --git a/src/pre.l b/src/pre.l
index 86f9ebb..18f3b1d 100644
--- a/src/pre.l
+++ b/src/pre.l
@@ -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();