summaryrefslogtreecommitdiffstats
path: root/src/scanner.l
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2019-01-07 20:51:07 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2019-01-07 20:51:07 (GMT)
commitc61d8701470352385bcf5720ee516ba95c4393c8 (patch)
tree498d67f3c418e7b9da5b07e1f5b6f67faa2b914f /src/scanner.l
parentc581ea17bac7dd4ebba1ca53a55ef592f96e0117 (diff)
downloadDoxygen-c61d8701470352385bcf5720ee516ba95c4393c8.zip
Doxygen-c61d8701470352385bcf5720ee516ba95c4393c8.tar.gz
Doxygen-c61d8701470352385bcf5720ee516ba95c4393c8.tar.bz2
issue #6734 parsing performance worsened
Diffstat (limited to 'src/scanner.l')
-rw-r--r--src/scanner.l15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/scanner.l b/src/scanner.l
index 7559e0b..86a83cb 100644
--- a/src/scanner.l
+++ b/src/scanner.l
@@ -6908,12 +6908,10 @@ static void newEntry()
static void handleCommentBlock(const QCString &doc,bool brief)
{
static bool hideInBodyDocs = Config_getBool(HIDE_IN_BODY_DOCS);
- int position=0;
- bool needsEntry=FALSE;
if (docBlockInBody && hideInBodyDocs) return;
//printf("parseCommentBlock [%s] brief=%d\n",doc.data(),brief);
int lineNr = brief ? current->briefLine : current->docLine; // line of block start
-
+
// fill in inbodyFile && inbodyLine the first time, see bug 633891
Entry *docEntry = docBlockInBody && previous ? previous : current;
if (docBlockInBody && docEntry && docEntry->inbodyLine==-1)
@@ -6922,12 +6920,15 @@ static void handleCommentBlock(const QCString &doc,bool brief)
docEntry->inbodyLine = lineNr;
}
+ int position=0;
+ bool needsEntry=FALSE;
+ QCString processedDoc = preprocessCommentBlock(stripIndentation(doc),yyFileName,lineNr);
while (parseCommentBlock(
g_thisParser,
docBlockInBody && previous ? previous : current,
- stripIndentation(doc), // text
- yyFileName, // file
- lineNr, // line of block start
+ processedDoc, // text
+ yyFileName, // file
+ lineNr, // line of block start
docBlockInBody ? FALSE : brief, // isBrief
docBlockInBody ? FALSE : docBlockAutoBrief, // isJavaDocStyle
docBlockInBody, // isInBody
@@ -6935,7 +6936,7 @@ static void handleCommentBlock(const QCString &doc,bool brief)
position,
needsEntry
)
- )
+ )
{
//printf("parseCommentBlock position=%d [%s]\n",position,doc.data()+position);
if (needsEntry)