summaryrefslogtreecommitdiffstats
path: root/src/vhdldocgen.cpp
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2020-09-13 14:31:14 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2020-09-13 14:34:02 (GMT)
commite801f129218e6f9ab11dc165b0e1607fc64cd645 (patch)
treee08906e55a1be9b81e9855542ada26d1bc6d7573 /src/vhdldocgen.cpp
parent9826394521af43b38a6e228397328deaf793cd1e (diff)
downloadDoxygen-e801f129218e6f9ab11dc165b0e1607fc64cd645.zip
Doxygen-e801f129218e6f9ab11dc165b0e1607fc64cd645.tar.gz
Doxygen-e801f129218e6f9ab11dc165b0e1607fc64cd645.tar.bz2
Refactoring: making vhdlcode.l reentrant
Also fixed a few VHDL related memory leaks and one newly introduced Fortran memory leak.
Diffstat (limited to 'src/vhdldocgen.cpp')
-rw-r--r--src/vhdldocgen.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/vhdldocgen.cpp b/src/vhdldocgen.cpp
index 8e311b7..ff47791 100644
--- a/src/vhdldocgen.cpp
+++ b/src/vhdldocgen.cpp
@@ -55,6 +55,7 @@
#include "filename.h"
#include "membergroup.h"
#include "memberdef.h"
+#include "membername.h"
#include "plantuml.h"
#include "vhdljjparser.h"
#include "VhdlParser.h"
@@ -2739,14 +2740,14 @@ static void addInstance(ClassDef* classEntity, ClassDef* ar,
ferr:
QCString uu=cur->name;
- MemberDef *md=createMemberDef(
+ std::unique_ptr<MemberDef> md { createMemberDef(
ar->getDefFileName(), cur->startLine,cur->startColumn,
n1,uu,uu, 0,
Public, Normal, cur->stat,Member,
MemberType_Variable,
ArgumentList(),
ArgumentList(),
- "");
+ "") };
if (ar->getOutputFileBase())
{
@@ -2774,7 +2775,9 @@ ferr:
//label.replace(epr,":");
//info+=label;
//fprintf(stderr,"\n[%s:%d:%s]\n",fd->fileName().data(),cur->startLine,info.data());
- ar->insertMember(md);
+ ar->insertMember(md.get());
+ MemberName *mn = Doxygen::functionNameLinkedMap->add(uu);
+ mn->push_back(std::move(md));
}