summaryrefslogtreecommitdiffstats
path: root/src/tagreader.cpp
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2014-08-26 18:18:51 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2014-08-26 18:18:51 (GMT)
commit6d4044ad43ae1424a256eb1c26992301e7c64f4a (patch)
tree59ff43371e5c9503fda7432109c1313ffff0225a /src/tagreader.cpp
parent745955f576cbd7b5f7601c55937d9c42db8161e8 (diff)
downloadDoxygen-6d4044ad43ae1424a256eb1c26992301e7c64f4a.zip
Doxygen-6d4044ad43ae1424a256eb1c26992301e7c64f4a.tar.gz
Doxygen-6d4044ad43ae1424a256eb1c26992301e7c64f4a.tar.bz2
Fix potential crash when reading tag file which contained nested java classes using generics
Also fixed a parse error when reading a tag file with a Java-style enum
Diffstat (limited to 'src/tagreader.cpp')
-rw-r--r--src/tagreader.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/tagreader.cpp b/src/tagreader.cpp
index 23b8f13..50909ee 100644
--- a/src/tagreader.cpp
+++ b/src/tagreader.cpp
@@ -95,7 +95,7 @@ class TagMemberInfo
class TagClassInfo
{
public:
- enum Kind { Class, Struct, Union, Interface, Exception, Protocol, Category };
+ enum Kind { Class, Struct, Union, Interface, Exception, Protocol, Category, Enum };
TagClassInfo() { bases=0, templateArguments=0; members.setAutoDelete(TRUE); isObjC=FALSE; }
~TagClassInfo() { delete bases; delete templateArguments; }
QCString name;
@@ -301,6 +301,12 @@ class TagFileParser : public QXmlDefaultHandler
m_curClass->kind = TagClassInfo::Interface;
m_state = InClass;
}
+ else if (kind=="enum")
+ {
+ m_curClass = new TagClassInfo;
+ m_curClass->kind = TagClassInfo::Enum;
+ m_state = InClass;
+ }
else if (kind=="exception")
{
m_curClass = new TagClassInfo;
@@ -1286,6 +1292,7 @@ void TagFileParser::buildLists(Entry *root)
case TagClassInfo::Struct: ce->spec = Entry::Struct; break;
case TagClassInfo::Union: ce->spec = Entry::Union; break;
case TagClassInfo::Interface: ce->spec = Entry::Interface; break;
+ case TagClassInfo::Enum: ce->spec = Entry::Enum; break;
case TagClassInfo::Exception: ce->spec = Entry::Exception; break;
case TagClassInfo::Protocol: ce->spec = Entry::Protocol; break;
case TagClassInfo::Category: ce->spec = Entry::Category; break;