diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2014-08-26 18:18:51 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2014-08-26 18:18:51 (GMT) |
commit | 6d4044ad43ae1424a256eb1c26992301e7c64f4a (patch) | |
tree | 59ff43371e5c9503fda7432109c1313ffff0225a /src/tagreader.cpp | |
parent | 745955f576cbd7b5f7601c55937d9c42db8161e8 (diff) | |
download | Doxygen-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.cpp | 9 |
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; |