Commit b4d5ef17 authored by Dimitri van Heesch's avatar Dimitri van Heesch

Bug 723314 - Doxygen crashes on incorrect end group /**< @} */

parent 0eaf1cd5
...@@ -5023,6 +5023,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) ...@@ -5023,6 +5023,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP})
tempEntry = current; // temporarily switch to the previous entry tempEntry = current; // temporarily switch to the previous entry
current = previous; current = previous;
previous = 0;
docBlockContext = SkipCurlyEndDoc; docBlockContext = SkipCurlyEndDoc;
docBlockInBody = FALSE; docBlockInBody = FALSE;
...@@ -5062,7 +5063,11 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) ...@@ -5062,7 +5063,11 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP})
} }
<SkipCurlyEndDoc>"}" { <SkipCurlyEndDoc>"}" {
//addToBody("}"); //addToBody("}");
current = tempEntry; if (tempEntry) // we can only switch back to current if no new item was created
{
current = tempEntry;
tempEntry = 0;
}
BEGIN( lastCurlyContext ); BEGIN( lastCurlyContext );
} }
<SkipCurly>\" { <SkipCurly>\" {
...@@ -6515,7 +6520,14 @@ static void startCommentBlock(bool brief) ...@@ -6515,7 +6520,14 @@ static void startCommentBlock(bool brief)
static void newEntry() static void newEntry()
{ {
current_root->addSubEntry(current); if (tempEntry==0) // if temp entry is not 0, it holds current,
// and current is actually replaced by previous which was
// already added to current_root, so we should not add it again
// (see bug723314)
{
current_root->addSubEntry(current);
}
tempEntry = 0;
previous = current; previous = current;
current = new Entry ; current = new Entry ;
initEntry(); initEntry();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment