Skip to content

Commit 73f9c67

Browse files
committed
Protect counter with mutex (regression)
I checked PR doxygen#11902 and found a small problem when `DOT_CLEANUP=YES` as I get the warnings: ``` .../aa.c:17: error: Problems running dot: exit code=2, command='dot.exe', arguments='".../doc/html/inline_dotgraph_4b689ea5cd4847e4f5ac9ff55d29fff0.dot" -Tcmapx -o ".../doc/html/dot_inline_dotgraph_4b689ea5cd4847e4f5ac9ff55d29fff0.map"' Failed to open input file '.../doc/html/inline_mscgraph_7c6951245abdf3122b13597d42cd76cb.msc' .../bb.c:15: error: Problems generating msc output (error=FILE ERROR). Look for typos in you msc file '.../doc/html/inline_mscgraph_7c6951245abdf3122b13597d42cd76cb.msc' ``` Delayed deletion of files until all code has been written.
1 parent efcc01e commit 73f9c67

File tree

7 files changed

+12
-14
lines changed

7 files changed

+12
-14
lines changed

src/docbookvisitor.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,6 @@ DB_VIS_C
365365
if (!fileName.isEmpty())
366366
{
367367
writeDotFile(fileName, s, !exists);
368-
if (Config_getBool(DOT_CLEANUP)) Dir().remove(fileName.str());
369368
}
370369
m_t << "</para>\n";
371370
}
@@ -381,7 +380,6 @@ DB_VIS_C
381380
if (!fileName.isEmpty())
382381
{
383382
writeMscFile(fileName,s,!exists);
384-
if (Config_getBool(DOT_CLEANUP)) Dir().remove(fileName.str());
385383
}
386384
m_t << "</para>\n";
387385
}

src/doxygen.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13403,6 +13403,7 @@ void generateOutput()
1340313403
}
1340413404

1340513405
g_outputList->cleanup();
13406+
cleanupInlineGraph();
1340613407

1340713408
msg("type lookup cache used {}/{} hits={} misses={}\n",
1340813409
Doxygen::typeLookupCache->size(),

src/htmldocvisitor.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -600,8 +600,6 @@ void HtmlDocVisitor::operator()(const DocVerbatim &s)
600600
writeDotFile(fileName,s.relPath(),s.context(),s.srcFile(),s.srcLine(),!exists);
601601
visitCaption(m_t, s);
602602
m_t << "</div>\n";
603-
604-
if (Config_getBool(DOT_CLEANUP)) Dir().remove(fileName.str());
605603
}
606604

607605
forceStartParagraph(s);
@@ -622,8 +620,6 @@ void HtmlDocVisitor::operator()(const DocVerbatim &s)
622620
writeMscFile(fileName,s.relPath(),s.context(),s.srcFile(),s.srcLine(),!exists);
623621
visitCaption(m_t, s);
624622
m_t << "</div>\n";
625-
626-
if (Config_getBool(DOT_CLEANUP)) Dir().remove(fileName.str());
627623
}
628624

629625
forceStartParagraph(s);

src/latexdocvisitor.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -473,8 +473,6 @@ void LatexDocVisitor::operator()(const DocVerbatim &s)
473473
startDotFile(fileName,s.width(),s.height(),s.hasCaption(),s.srcFile(),s.srcLine(),!exists);
474474
visitChildren(s);
475475
endDotFile(s.hasCaption());
476-
477-
if (Config_getBool(DOT_CLEANUP)) Dir().remove(fileName.str());
478476
}
479477
}
480478
break;
@@ -488,8 +486,6 @@ void LatexDocVisitor::operator()(const DocVerbatim &s)
488486
if (!fileName.isEmpty())
489487
{
490488
writeMscFile(fileName, s, !exists);
491-
492-
if (Config_getBool(DOT_CLEANUP)) Dir().remove(fileName.str());
493489
}
494490
}
495491
break;

src/rtfdocvisitor.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -368,8 +368,6 @@ void RTFDocVisitor::operator()(const DocVerbatim &s)
368368
writeDotFile(fileName, s.hasCaption(), s.srcFile(), s.srcLine(), !exists);
369369
visitChildren(s);
370370
includePicturePostRTF(true, s.hasCaption());
371-
372-
if (Config_getBool(DOT_CLEANUP)) Dir().remove(fileName.str());
373371
}
374372
}
375373
break;
@@ -385,8 +383,6 @@ void RTFDocVisitor::operator()(const DocVerbatim &s)
385383
writeMscFile(fileName, s.hasCaption(), s.srcFile(), s.srcLine(), !exists);
386384
visitChildren(s);
387385
includePicturePostRTF(true, s.hasCaption());
388-
389-
if (Config_getBool(DOT_CLEANUP)) Dir().remove(fileName.str());
390386
}
391387
}
392388
break;

src/util.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6956,3 +6956,13 @@ QCString writeFileContents(const QCString &baseName,const QCString &extension,co
69566956
}
69576957

69586958

6959+
void cleanupInlineGraph()
6960+
{
6961+
if (Config_getBool(DOT_CLEANUP))
6962+
{
6963+
for (const auto& fileName: writeFileContents_set)
6964+
{
6965+
Dir().remove(qPrint(fileName));
6966+
}
6967+
}
6968+
}

src/util.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -486,5 +486,6 @@ QCString extractBeginRawStringDelimiter(const char *rawStart);
486486
QCString extractEndRawStringDelimiter(const char *rawEnd);
487487

488488
QCString writeFileContents(const QCString &baseName,const QCString &extension,const QCString &content,bool &exists);
489+
void cleanupInlineGraph();
489490

490491
#endif

0 commit comments

Comments
 (0)