summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2019-10-28 19:18:10 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2019-10-28 19:18:10 (GMT)
commitd5a41b029fc13c7f07944260af312a7264215808 (patch)
tree19b154e328c60fec0c4977a32ec82dfa834bfa95 /src
parentad9be5fb2339151f1d75a6c9aba4226e48a81ae1 (diff)
downloadDoxygen-d5a41b029fc13c7f07944260af312a7264215808.zip
Doxygen-d5a41b029fc13c7f07944260af312a7264215808.tar.gz
Doxygen-d5a41b029fc13c7f07944260af312a7264215808.tar.bz2
Embed TagInfo struct inside Entry
Diffstat (limited to 'src')
-rw-r--r--src/doxygen.cpp94
-rw-r--r--src/entry.cpp7
-rw-r--r--src/entry.h6
-rw-r--r--src/memberdef.cpp6
-rw-r--r--src/memberdef.h2
-rw-r--r--src/tagreader.cpp62
-rw-r--r--src/util.cpp2
-rw-r--r--src/util.h2
-rw-r--r--src/vhdldocgen.cpp1
9 files changed, 86 insertions, 96 deletions
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index 2a254ff..9846ecd 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -544,7 +544,7 @@ static void addSTLClasses(const std::unique_ptr<Entry> &root)
//----------------------------------------------------------------------------
static Definition *findScopeFromQualifiedName(Definition *startScope,const QCString &n,
- FileDef *fileScope,TagInfo *tagInfo);
+ FileDef *fileScope,const TagInfo *tagInfo);
static void addPageToContext(PageDef *pd,Entry *root)
{
@@ -557,7 +557,7 @@ static void addPageToContext(PageDef *pd,Entry *root)
}
scope = stripAnonymousNamespaceScope(scope);
scope+="::"+pd->name();
- Definition *d = findScopeFromQualifiedName(Doxygen::globalScope,scope,0,root->tagInfo);
+ Definition *d = findScopeFromQualifiedName(Doxygen::globalScope,scope,0,root->tagInfo());
if (d)
{
pd->setPageScope(d);
@@ -588,7 +588,7 @@ static void addRelatedPage(Entry *root)
PageDef *pd = addRelatedPage(root->name,root->args,doc,root->anchors,
root->docFile,root->docLine,
root->sli,
- gd,root->tagInfo,
+ gd,root->tagInfo(),
FALSE,
root->lang
);
@@ -604,8 +604,8 @@ static void addRelatedPage(Entry *root)
static void buildGroupListFiltered(const Entry *root,bool additional, bool includeExternal)
{
if (root->section==Entry::GROUPDOC_SEC && !root->name.isEmpty() &&
- ((!includeExternal && root->tagInfo==0) ||
- ( includeExternal && root->tagInfo!=0))
+ ((!includeExternal && root->tagInfo()==0) ||
+ ( includeExternal && root->tagInfo()!=0))
)
{
if ((root->groupDocType==Entry::GROUPDOC_NORMAL && !additional) ||
@@ -636,10 +636,10 @@ static void buildGroupListFiltered(const Entry *root,bool additional, bool inclu
}
else
{
- if (root->tagInfo)
+ if (root->tagInfo())
{
- gd = createGroupDef(root->fileName,root->startLine,root->name,root->type,root->tagInfo->fileName);
- gd->setReference(root->tagInfo->tagName);
+ gd = createGroupDef(root->fileName,root->startLine,root->name,root->type,root->tagInfo()->fileName);
+ gd->setReference(root->tagInfo()->tagName);
}
else
{
@@ -689,7 +689,7 @@ static void findGroupScope(const Entry *root)
}
scope = stripAnonymousNamespaceScope(scope);
scope+="::"+gd->name();
- Definition *d = findScopeFromQualifiedName(Doxygen::globalScope,scope,0,root->tagInfo);
+ Definition *d = findScopeFromQualifiedName(Doxygen::globalScope,scope,0,root->tagInfo());
if (d)
{
gd->setGroupScope(d);
@@ -733,7 +733,7 @@ static void buildFileList(const Entry *root)
{
if (((root->section==Entry::FILEDOC_SEC) ||
((root->section & Entry::FILE_MASK) && Config_getBool(EXTRACT_ALL))) &&
- !root->name.isEmpty() && !root->tagInfo // skip any file coming from tag files
+ !root->name.isEmpty() && !root->tagInfo() // skip any file coming from tag files
)
{
bool ambig;
@@ -955,7 +955,7 @@ static Definition *findScope(Entry *root,int level=0)
* not found and set the parent/child scope relation if the scope is found.
*/
static Definition *buildScopeFromQualifiedName(const QCString name,
- int level,SrcLangExt lang,TagInfo *tagInfo)
+ int level,SrcLangExt lang,const TagInfo *tagInfo)
{
//printf("buildScopeFromQualifiedName(%s) level=%d\n",name.data(),level);
int i=0;
@@ -1014,7 +1014,7 @@ static Definition *buildScopeFromQualifiedName(const QCString name,
}
static Definition *findScopeFromQualifiedName(Definition *startScope,const QCString &n,
- FileDef *fileScope,TagInfo *tagInfo)
+ FileDef *fileScope,const TagInfo *tagInfo)
{
//printf("<findScopeFromQualifiedName(%s,%s)\n",startScope ? startScope->name().data() : 0, n.data());
Definition *resultScope=startScope;
@@ -1261,7 +1261,7 @@ static void addClassToContext(const Entry *root)
QCString tagName;
QCString refFileName;
- TagInfo *tagInfo = root->tagInfo;
+ const TagInfo *tagInfo = root->tagInfo();
int i;
if (tagInfo)
{
@@ -1716,7 +1716,7 @@ static void buildNamespaceList(const Entry *root)
{
nd->setLanguage(root->lang);
}
- if (root->tagInfo==0) // if we found the namespace in a tag file
+ if (root->tagInfo()==0) // if we found the namespace in a tag file
// and also in a project file, then remove
// the tag file reference
{
@@ -1736,7 +1736,7 @@ static void buildNamespaceList(const Entry *root)
{
QCString tagName;
QCString tagFileName;
- TagInfo *tagInfo = root->tagInfo;
+ const TagInfo *tagInfo = root->tagInfo();
if (tagInfo)
{
tagName = tagInfo->tagName;
@@ -2124,9 +2124,9 @@ static void findUsingDeclImports(const Entry *root)
MemberDef *newMd = 0;
{
QCString fileName = root->fileName;
- if (fileName.isEmpty() && root->tagInfo)
+ if (fileName.isEmpty() && root->tagInfo())
{
- fileName = root->tagInfo->tagName;
+ fileName = root->tagInfo()->tagName;
}
const ArgumentList &templAl = md->templateArguments();
const ArgumentList &al = md->templateArguments();
@@ -2319,9 +2319,9 @@ static MemberDef *addVariableToClass(
}
QCString fileName = root->fileName;
- if (fileName.isEmpty() && root->tagInfo)
+ if (fileName.isEmpty() && root->tagInfo())
{
- fileName = root->tagInfo->tagName;
+ fileName = root->tagInfo()->tagName;
}
// new member variable, typedef or enum value
@@ -2331,7 +2331,7 @@ static MemberDef *addVariableToClass(
prot,Normal,root->stat,related,
mtype,!root->tArgLists.empty() ? root->tArgLists.back() : ArgumentList(),
ArgumentList(), root->metaData);
- md->setTagInfo(root->tagInfo);
+ md->setTagInfo(root->tagInfo());
md->setMemberClass(cd); // also sets outer scope (i.e. getOuterScope())
//md->setDefFile(root->fileName);
//md->setDefLine(root->startLine);
@@ -2577,13 +2577,13 @@ static MemberDef *addVariableToFile(
}
QCString fileName = root->fileName;
- if (fileName.isEmpty() && root->tagInfo)
+ if (fileName.isEmpty() && root->tagInfo())
{
- fileName = root->tagInfo->tagName;
+ fileName = root->tagInfo()->tagName;
}
Debug::print(Debug::Variables,0,
- " new variable, nd=%s tagInfo=%p!\n",nd?qPrint(nd->name()):"<global>",root->tagInfo);
+ " new variable, nd=%s tagInfo=%p!\n",nd?qPrint(nd->name()):"<global>",root->tagInfo());
// new global variable, enum value or typedef
MemberDef *md=createMemberDef(
fileName,root->startLine,root->startColumn,
@@ -2591,7 +2591,7 @@ static MemberDef *addVariableToFile(
root->protection, Normal,root->stat,Member,
mtype,!root->tArgLists.empty() ? root->tArgLists.back() : ArgumentList(),
ArgumentList(), root->metaData);
- md->setTagInfo(root->tagInfo);
+ md->setTagInfo(root->tagInfo());
md->setMemberSpecifiers(root->spec);
md->setDocumentation(root->doc,root->docFile,root->docLine);
md->setBriefDescription(root->brief,root->briefFile,root->briefLine);
@@ -3114,15 +3114,15 @@ static void addInterfaceOrServiceToServiceOrSingleton(
? MemberType_Interface
: MemberType_Service;
QCString fileName = root->fileName;
- if (fileName.isEmpty() && root->tagInfo)
+ if (fileName.isEmpty() && root->tagInfo())
{
- fileName = root->tagInfo->tagName;
+ fileName = root->tagInfo()->tagName;
}
MemberDef *const md = createMemberDef(
fileName, root->startLine, root->startColumn, root->type, rname,
"", "", root->protection, root->virt, root->stat, Member,
type, ArgumentList(), root->argList, root->metaData);
- md->setTagInfo(root->tagInfo);
+ md->setTagInfo(root->tagInfo());
md->setMemberClass(cd);
md->setDocumentation(root->doc,root->docFile,root->docLine);
md->setDocsForDefinition(false);
@@ -3292,9 +3292,9 @@ static void addMethodToClass(const Entry *root,ClassDef *cd,
}
QCString fileName = root->fileName;
- if (fileName.isEmpty() && root->tagInfo)
+ if (fileName.isEmpty() && root->tagInfo())
{
- fileName = root->tagInfo->tagName;
+ fileName = root->tagInfo()->tagName;
}
//printf("root->name='%s; args='%s' root->argList='%s'\n",
@@ -3311,7 +3311,7 @@ static void addMethodToClass(const Entry *root,ClassDef *cd,
root->relatesType == MemberOf ? Foreign : Related,
mtype,!root->tArgLists.empty() ? root->tArgLists.back() : ArgumentList(),
root->argList, root->metaData);
- md->setTagInfo(root->tagInfo);
+ md->setTagInfo(root->tagInfo());
md->setMemberClass(cd);
md->setDocumentation(root->doc,root->docFile,root->docLine);
md->setDocsForDefinition(!root->proto);
@@ -3688,7 +3688,7 @@ static void buildFunctionList(const Entry *root)
!root->tArgLists.empty() ? root->tArgLists.back() : ArgumentList(),
root->argList,root->metaData);
- md->setTagInfo(root->tagInfo);
+ md->setTagInfo(root->tagInfo());
md->setLanguage(root->lang);
md->setId(root->id);
//md->setDefFile(root->fileName);
@@ -4833,7 +4833,7 @@ static bool findClassRelation(
int si = baseClassName.findRev("::");
if (si!=-1) // class is nested
{
- Definition *sd = findScopeFromQualifiedName(Doxygen::globalScope,baseClassName.left(si),0,root->tagInfo);
+ Definition *sd = findScopeFromQualifiedName(Doxygen::globalScope,baseClassName.left(si),0,root->tagInfo());
if (sd==0 || sd==Doxygen::globalScope) // outer scope not found
{
baseClass->setArtificial(TRUE); // see bug678139
@@ -6355,7 +6355,7 @@ static void findMember(const Entry *root,
root->virt,root->stat,Member,
mtype,tArgList,root->argList,root->metaData);
//printf("new specialized member %s args='%s'\n",md->name().data(),funcArgs.data());
- md->setTagInfo(root->tagInfo);
+ md->setTagInfo(root->tagInfo());
md->setLanguage(root->lang);
md->setId(root->id);
md->setMemberClass(cd);
@@ -6422,7 +6422,7 @@ static void findMember(const Entry *root,
funcType,funcName,funcArgs,exceptions,
root->protection,root->virt,root->stat,Related,
mtype,tArgList,root->argList,root->metaData);
- md->setTagInfo(root->tagInfo);
+ md->setTagInfo(root->tagInfo());
md->setLanguage(root->lang);
md->setId(root->id);
md->setTypeConstraints(root->typeConstr);
@@ -6582,7 +6582,7 @@ static void findMember(const Entry *root,
//
md->setDefinitionTemplateParameterLists(root->tArgLists);
- md->setTagInfo(root->tagInfo);
+ md->setTagInfo(root->tagInfo());
@@ -6703,7 +6703,7 @@ localObjCMethod:
funcType,funcName,funcArgs,exceptions,
root->protection,root->virt,root->stat,Member,
MemberType_Function,ArgumentList(),root->argList,root->metaData);
- md->setTagInfo(root->tagInfo);
+ md->setTagInfo(root->tagInfo());
md->setLanguage(root->lang);
md->setId(root->id);
md->makeImplementationDetail();
@@ -7058,7 +7058,7 @@ static void findEnums(const Entry *root)
isMemberOf ? Foreign : isRelated ? Related : Member,
MemberType_Enumeration,
ArgumentList(),ArgumentList(),root->metaData);
- md->setTagInfo(root->tagInfo);
+ md->setTagInfo(root->tagInfo());
md->setLanguage(root->lang);
md->setId(root->id);
if (!isGlobal) md->setMemberClass(cd); else md->setFileDef(fd);
@@ -7256,7 +7256,7 @@ static void addEnumValuesToEnums(const Entry *root)
//printf("md->qualifiedName()=%s e->name=%s tagInfo=%p name=%s\n",
// md->qualifiedName().data(),e->name.data(),e->tagInfo,e->name.data());
QCString qualifiedName = substitute(root->name,"::",".");
- if (!scope.isEmpty() && root->tagInfo)
+ if (!scope.isEmpty() && root->tagInfo())
{
qualifiedName=substitute(scope,"::",".")+"."+qualifiedName;
}
@@ -7265,9 +7265,9 @@ static void addEnumValuesToEnums(const Entry *root)
)
{
QCString fileName = e->fileName;
- if (fileName.isEmpty() && e->tagInfo)
+ if (fileName.isEmpty() && e->tagInfo())
{
- fileName = e->tagInfo->tagName;
+ fileName = e->tagInfo()->tagName;
}
MemberDef *fmd=createMemberDef(
fileName,e->startLine,e->startColumn,
@@ -7278,7 +7278,7 @@ static void addEnumValuesToEnums(const Entry *root)
else if (md->getNamespaceDef()) fmd->setNamespace(md->getNamespaceDef());
else if (md->getFileDef()) fmd->setFileDef(md->getFileDef());
fmd->setOuterScope(md->getOuterScope());
- fmd->setTagInfo(e->tagInfo);
+ fmd->setTagInfo(e->tagInfo());
fmd->setLanguage(e->lang);
fmd->setId(e->id);
fmd->setDocumentation(e->doc,e->docFile,e->docLine);
@@ -8503,13 +8503,13 @@ static void findDefineDocumentation(Entry *root)
//printf("found define '%s' '%s' brief='%s' doc='%s'\n",
// root->name.data(),root->args.data(),root->brief.data(),root->doc.data());
- if (root->tagInfo && !root->name.isEmpty()) // define read from a tag file
+ if (root->tagInfo() && !root->name.isEmpty()) // define read from a tag file
{
- MemberDef *md=createMemberDef(root->tagInfo->tagName,1,1,
+ MemberDef *md=createMemberDef(root->tagInfo()->tagName,1,1,
"#define",root->name,root->args,0,
Public,Normal,FALSE,Member,MemberType_Define,
ArgumentList(),ArgumentList(),"");
- md->setTagInfo(root->tagInfo);
+ md->setTagInfo(root->tagInfo());
md->setLanguage(root->lang);
//printf("Searching for '%s' fd=%p\n",filePathName.data(),fd);
md->setFileDef(root->parent()->fileDef());
@@ -8728,7 +8728,7 @@ static void findMainPage(Entry *root)
{
if (root->section == Entry::MAINPAGEDOC_SEC)
{
- if (Doxygen::mainPage==0 && root->tagInfo==0)
+ if (Doxygen::mainPage==0 && root->tagInfo()==0)
{
//printf("Found main page! \n======\n%s\n=======\n",root->doc.data());
QCString title=root->args.stripWhiteSpace();
@@ -8767,7 +8767,7 @@ static void findMainPage(Entry *root)
Doxygen::mainPage->addSectionsToDefinition(root->anchors);
}
}
- else if (root->tagInfo==0)
+ else if (root->tagInfo()==0)
{
warn(root->fileName,root->startLine,
"found more than one \\mainpage comment block! (first occurrence: %s, line %d), Skipping current block!",
@@ -8782,7 +8782,7 @@ static void findMainPageTagFiles(Entry *root)
{
if (root->section == Entry::MAINPAGEDOC_SEC)
{
- if (Doxygen::mainPage && root->tagInfo)
+ if (Doxygen::mainPage && root->tagInfo())
{
Doxygen::mainPage->addSectionsToDefinition(root->anchors);
}
diff --git a/src/entry.cpp b/src/entry.cpp
index e700fab..22ff858 100644
--- a/src/entry.cpp
+++ b/src/entry.cpp
@@ -45,7 +45,7 @@ Entry::Entry()
anchors = new QList<SectionInfo>; // Doxygen::sectionDict takes ownership of the items!
//printf("Entry::Entry() tArgList=0\n");
mGrpId = -1;
- tagInfo = 0;
+ hasTagInfo = FALSE;
sli = 0;
relatesType = Simple;
hidden = FALSE;
@@ -60,7 +60,8 @@ Entry::Entry(const Entry &e)
section = e.section;
type = e.type;
name = e.name;
- tagInfo = e.tagInfo;
+ hasTagInfo = e.hasTagInfo;
+ tagInfoData = e.tagInfoData;
protection = e.protection;
mtype = e.mtype;
spec = e.spec;
@@ -176,7 +177,6 @@ Entry::~Entry()
delete extends;
delete groups;
delete anchors;
- delete tagInfo;
delete sli;
num--;
}
@@ -309,7 +309,6 @@ void Entry::reset()
tArgLists.clear();
argList.reset();
typeConstr.reset();
- if (tagInfo) { delete tagInfo; tagInfo=0; }
if (sli) { delete sli; sli=0; }
m_fileDef = 0;
}
diff --git a/src/entry.h b/src/entry.h
index 12bd897..1cca6f8 100644
--- a/src/entry.h
+++ b/src/entry.h
@@ -244,13 +244,13 @@ class Entry
void setFileDef(FileDef *fd);
FileDef *fileDef() const { return m_fileDef; }
- public:
-
// identification
int section; //!< entry type (see Sections);
QCString type; //!< member type
QCString name; //!< member name
- TagInfo *tagInfo; //!< tag file info
+ bool hasTagInfo; //!< is tag info valid
+ TagInfo tagInfoData; //!< tag file info data
+ const TagInfo *tagInfo() const { return hasTagInfo ? &tagInfoData : 0; }
// content
Protection protection; //!< class protection
diff --git a/src/memberdef.cpp b/src/memberdef.cpp
index 28c0abb..6fed840 100644
--- a/src/memberdef.cpp
+++ b/src/memberdef.cpp
@@ -262,7 +262,7 @@ class MemberDefImpl : public DefinitionImpl, public MemberDef
virtual void makeRelated();
virtual void makeForeign();
virtual void setInheritsDocsFrom(MemberDef *md);
- virtual void setTagInfo(TagInfo *i);
+ virtual void setTagInfo(const TagInfo *i);
virtual void setArgsString(const char *as);
virtual void setReimplements(MemberDef *md);
virtual void insertReimplementedBy(MemberDef *md);
@@ -774,7 +774,7 @@ class MemberDefAliasImpl : public DefinitionAliasImpl, public MemberDef
virtual void makeRelated() {}
virtual void makeForeign() {}
virtual void setInheritsDocsFrom(MemberDef *md) {}
- virtual void setTagInfo(TagInfo *i) {}
+ virtual void setTagInfo(const TagInfo *i) {}
virtual void setArgsString(const char *as) {}
virtual void setReimplements(MemberDef *md) {}
virtual void insertReimplementedBy(MemberDef *md) {}
@@ -4928,7 +4928,7 @@ QCString MemberDefImpl::qualifiedName() const
}
}
-void MemberDefImpl::setTagInfo(TagInfo *ti)
+void MemberDefImpl::setTagInfo(const TagInfo *ti)
{
if (ti)
{
diff --git a/src/memberdef.h b/src/memberdef.h
index 986ceca..a9103e1 100644
--- a/src/memberdef.h
+++ b/src/memberdef.h
@@ -307,7 +307,7 @@ class MemberDef : virtual public Definition
virtual void makeRelated() = 0;
virtual void makeForeign() = 0;
virtual void setInheritsDocsFrom(MemberDef *md) = 0;
- virtual void setTagInfo(TagInfo *i) = 0;
+ virtual void setTagInfo(const TagInfo *i) = 0;
virtual void setArgsString(const char *as) = 0;
virtual void incrementFlowKeyWordCount() = 0;
diff --git a/src/tagreader.cpp b/src/tagreader.cpp
index f498c5f..851a581 100644
--- a/src/tagreader.cpp
+++ b/src/tagreader.cpp
@@ -1197,11 +1197,10 @@ void TagFileParser::buildMemberList(const std::unique_ptr<Entry> &ce,QList<TagMe
ev->name = evi->name;
ev->id = evi->clangid;
ev->section = Entry::VARIABLE_SEC;
- TagInfo *ti = new TagInfo;
- ti->tagName = m_tagName;
- ti->anchor = evi->anchor;
- ti->fileName = evi->file;
- ev->tagInfo = ti;
+ ev->tagInfoData.tagName = m_tagName;
+ ev->tagInfoData.anchor = evi->anchor;
+ ev->tagInfoData.fileName = evi->file;
+ ev->hasTagInfo = TRUE;
me->moveToSubEntryAndKeep(ev);
}
}
@@ -1215,11 +1214,10 @@ void TagFileParser::buildMemberList(const std::unique_ptr<Entry> &ce,QList<TagMe
me->groups->append(new Grouping(ce->name,Grouping::GROUPING_INGROUP));
}
addDocAnchors(me,tmi->docAnchors);
- TagInfo *ti = new TagInfo;
- ti->tagName = m_tagName;
- ti->anchor = tmi->anchor;
- ti->fileName = tmi->anchorFile;
- me->tagInfo = ti;
+ me->tagInfoData.tagName = m_tagName;
+ me->tagInfoData.anchor = tmi->anchor;
+ me->tagInfoData.fileName = tmi->anchorFile;
+ me->hasTagInfo = TRUE;
if (tmi->kind=="define")
{
me->type="#define";
@@ -1339,12 +1337,11 @@ void TagFileParser::buildLists(const std::unique_ptr<Entry> &root)
ce->name+="-p";
}
addDocAnchors(ce,tci->docAnchors);
- TagInfo *ti = new TagInfo;
- ti->tagName = m_tagName;
- ti->anchor = tci->anchor;
- ti->fileName = tci->filename;
+ ce->tagInfoData.tagName = m_tagName;
+ ce->tagInfoData.anchor = tci->anchor;
+ ce->tagInfoData.fileName = tci->filename;
+ ce->hasTagInfo = TRUE;
ce->id = tci->clangId;
- ce->tagInfo = ti;
ce->lang = tci->isObjC ? SrcLangExt_ObjC : SrcLangExt_Unknown;
// transfer base class list
if (tci->bases)
@@ -1380,10 +1377,9 @@ void TagFileParser::buildLists(const std::unique_ptr<Entry> &root)
fe->section = guessSection(tfi->name);
fe->name = tfi->name;
addDocAnchors(fe,tfi->docAnchors);
- TagInfo *ti = new TagInfo;
- ti->tagName = m_tagName;
- ti->fileName = tfi->filename;
- fe->tagInfo = ti;
+ fe->tagInfoData.tagName = m_tagName;
+ fe->tagInfoData.fileName = tfi->filename;
+ fe->hasTagInfo = TRUE;
QCString fullName = m_tagName+":"+tfi->path+stripPath(tfi->name);
fe->fileName = fullName;
@@ -1417,11 +1413,10 @@ void TagFileParser::buildLists(const std::unique_ptr<Entry> &root)
ne->section = Entry::NAMESPACE_SEC;
ne->name = tni->name;
addDocAnchors(ne,tni->docAnchors);
- TagInfo *ti = new TagInfo;
- ti->tagName = m_tagName;
- ti->fileName = tni->filename;
+ ne->tagInfoData.tagName = m_tagName;
+ ne->tagInfoData.fileName = tni->filename;
+ ne->hasTagInfo = TRUE;
ne->id = tni->clangId;
- ne->tagInfo = ti;
buildMemberList(ne,tni->members);
root->moveToSubEntryAndKeep(ne);
@@ -1436,10 +1431,9 @@ void TagFileParser::buildLists(const std::unique_ptr<Entry> &root)
pe->section = Entry::PACKAGE_SEC;
pe->name = tpgi->name;
addDocAnchors(pe,tpgi->docAnchors);
- TagInfo *ti = new TagInfo;
- ti->tagName = m_tagName;
- ti->fileName = tpgi->filename;
- pe->tagInfo = ti;
+ pe->tagInfoData.tagName = m_tagName;
+ pe->tagInfoData.fileName = tpgi->filename;
+ pe->hasTagInfo = TRUE;
buildMemberList(pe,tpgi->members);
root->moveToSubEntryAndKeep(pe);
@@ -1455,10 +1449,9 @@ void TagFileParser::buildLists(const std::unique_ptr<Entry> &root)
ge->name = tgi->name;
ge->type = tgi->title;
addDocAnchors(ge,tgi->docAnchors);
- TagInfo *ti = new TagInfo;
- ti->tagName = m_tagName;
- ti->fileName = tgi->filename;
- ge->tagInfo = ti;
+ ge->tagInfoData.tagName = m_tagName;
+ ge->tagInfoData.fileName = tgi->filename;
+ ge->hasTagInfo = TRUE;
buildMemberList(ge,tgi->members);
root->moveToSubEntryAndKeep(ge);
@@ -1493,10 +1486,9 @@ void TagFileParser::buildLists(const std::unique_ptr<Entry> &root)
pe->name = tpi->name;
pe->args = tpi->title;
addDocAnchors(pe,tpi->docAnchors);
- TagInfo *ti = new TagInfo;
- ti->tagName = m_tagName;
- ti->fileName = tpi->filename;
- pe->tagInfo = ti;
+ pe->tagInfoData.tagName = m_tagName;
+ pe->tagInfoData.fileName = tpi->filename;
+ pe->hasTagInfo = TRUE;
root->moveToSubEntryAndKeep(pe);
}
}
diff --git a/src/util.cpp b/src/util.cpp
index 27b2222..36d673b 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -6616,7 +6616,7 @@ PageDef *addRelatedPage(const char *name,const QCString &ptitle,
const char *fileName,int startLine,
const QList<ListItemInfo> *sli,
GroupDef *gd,
- TagInfo *tagInfo,
+ const TagInfo *tagInfo,
bool xref,
SrcLangExt lang
)
diff --git a/src/util.h b/src/util.h
index dea6b22..1bddc8a 100644
--- a/src/util.h
+++ b/src/util.h
@@ -338,7 +338,7 @@ PageDef *addRelatedPage(const char *name,
const char *fileName,int startLine,
const QList<ListItemInfo> *sli,
GroupDef *gd=0,
- TagInfo *tagInfo=0,
+ const TagInfo *tagInfo=0,
bool xref=FALSE,
SrcLangExt lang=SrcLangExt_Unknown
);
diff --git a/src/vhdldocgen.cpp b/src/vhdldocgen.cpp
index 7db56c3..3585230 100644
--- a/src/vhdldocgen.cpp
+++ b/src/vhdldocgen.cpp
@@ -1121,7 +1121,6 @@ void VhdlDocGen::prepareComment(QCString& qcs)
/*!
* parses a function proto
* @param text function string
- * @param qlist stores the function types
* @param name points to the function name
* @param ret Stores the return type
* @param doc ???