diff options
author | Dimitri van Heesch <doxygen@gmail.com> | 2019-01-07 20:51:07 (GMT) |
---|---|---|
committer | Dimitri van Heesch <doxygen@gmail.com> | 2019-01-07 20:51:07 (GMT) |
commit | c61d8701470352385bcf5720ee516ba95c4393c8 (patch) | |
tree | 498d67f3c418e7b9da5b07e1f5b6f67faa2b914f /src/scanner.l | |
parent | c581ea17bac7dd4ebba1ca53a55ef592f96e0117 (diff) | |
download | Doxygen-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.l | 15 |
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) |