summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2020-11-24 21:10:11 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2020-11-24 21:10:11 (GMT)
commit55ca9c847c2a183e1382a2b7f3f7bcfe7cdc852f (patch)
treeca18b63f98e3865a8f344d2e18bd6ddf00115289
parent72182bd64a53f9829d564c39d55900ac43f39bdf (diff)
downloadDoxygen-55ca9c847c2a183e1382a2b7f3f7bcfe7cdc852f.zip
Doxygen-55ca9c847c2a183e1382a2b7f3f7bcfe7cdc852f.tar.gz
Doxygen-55ca9c847c2a183e1382a2b7f3f7bcfe7cdc852f.tar.bz2
Fixed potential crash when cleaning up
-rw-r--r--src/definition.cpp12
-rw-r--r--src/definitionimpl.h2
2 files changed, 7 insertions, 7 deletions
diff --git a/src/definition.cpp b/src/definition.cpp
index 8b6e6fa..615506f 100644
--- a/src/definition.cpp
+++ b/src/definition.cpp
@@ -233,9 +233,9 @@ static void addToMap(const char *name,Definition *d)
}
}
-static void removeFromMap(Definition *d)
+static void removeFromMap(const char *name,Definition *d)
{
- Doxygen::symbolMap.remove(d->_symbolName(),d);
+ Doxygen::symbolMap.remove(name,d);
}
DefinitionImpl::DefinitionImpl(Definition *def,
@@ -301,7 +301,7 @@ DefinitionImpl::~DefinitionImpl()
{
if (m_impl->isSymbol)
{
- removeFromMap(m_impl->def);
+ removeFromMap(m_impl->symbolName,m_impl->def);
}
if (m_impl)
{
@@ -2179,7 +2179,7 @@ void DefinitionImpl::writeSummaryLinks(OutputList &) const
//---------------------------------------------------------------------------------
DefinitionAliasImpl::DefinitionAliasImpl(Definition *def,const Definition *alias)
- : m_def(def), m_alias(alias)
+ : m_def(def), m_symbolName(alias->_symbolName())
{
}
@@ -2190,12 +2190,12 @@ DefinitionAliasImpl::~DefinitionAliasImpl()
void DefinitionAliasImpl::init()
{
//printf("%s::addToMap(%s)\n",qPrint(name()),qPrint(alias->name()));
- addToMap(m_alias->name(),m_def);
+ addToMap(m_symbolName,m_def);
}
void DefinitionAliasImpl::deinit()
{
- removeFromMap(m_def);
+ removeFromMap(m_symbolName,m_def);
}
//---------------------------------------------------------------------------------
diff --git a/src/definitionimpl.h b/src/definitionimpl.h
index 0c2f713..710611e 100644
--- a/src/definitionimpl.h
+++ b/src/definitionimpl.h
@@ -298,7 +298,7 @@ class DefinitionAliasImpl
void deinit();
private:
Definition *m_def;
- const Definition *m_alias;
+ QCString m_symbolName;
};
template<class Base>