@@ -583,14 +583,13 @@ unsigned int CppCheck::check(const std::string &path)
583
583
return mExitCode ;
584
584
}
585
585
586
- std::ifstream fin (path);
587
- return checkFile (Path::simplifyPath (path), emptyString, fin);
586
+ return checkFile (Path::simplifyPath (path), emptyString);
588
587
}
589
588
590
589
unsigned int CppCheck::check (const std::string &path, const std::string &content)
591
590
{
592
591
std::istringstream iss (content);
593
- return checkFile (Path::simplifyPath (path), emptyString, iss);
592
+ return checkFile (Path::simplifyPath (path), emptyString, & iss);
594
593
}
595
594
596
595
unsigned int CppCheck::check (const ImportProject::FileSettings &fs)
@@ -615,13 +614,20 @@ unsigned int CppCheck::check(const ImportProject::FileSettings &fs)
615
614
temp.mSettings .includePaths .insert (temp.mSettings .includePaths .end (), fs.systemIncludePaths .cbegin (), fs.systemIncludePaths .cend ());
616
615
return temp.check (Path::simplifyPath (fs.filename ));
617
616
}
618
- std::ifstream fin (fs.filename );
619
- const unsigned int returnValue = temp.checkFile (Path::simplifyPath (fs.filename ), fs.cfg , fin);
617
+ const unsigned int returnValue = temp.checkFile (Path::simplifyPath (fs.filename ), fs.cfg );
620
618
mSettings .nomsg .addSuppressions (temp.mSettings .nomsg .getSuppressions ());
621
619
return returnValue;
622
620
}
623
621
624
- unsigned int CppCheck::checkFile (const std::string& filename, const std::string &cfgname, std::istream& fileStream)
622
+ static simplecpp::TokenList createTokenList (const std::string& filename, std::vector<std::string>& files, simplecpp::OutputList* outputList, std::istream* fileStream)
623
+ {
624
+ if (fileStream)
625
+ return {*fileStream, files, filename, outputList};
626
+
627
+ return {filename, files, outputList};
628
+ }
629
+
630
+ unsigned int CppCheck::checkFile (const std::string& filename, const std::string &cfgname, std::istream* fileStream)
625
631
{
626
632
mExitCode = 0 ;
627
633
@@ -663,7 +669,7 @@ unsigned int CppCheck::checkFile(const std::string& filename, const std::string
663
669
664
670
simplecpp::OutputList outputList;
665
671
std::vector<std::string> files;
666
- simplecpp::TokenList tokens1 (fileStream , files, filename, &outputList);
672
+ simplecpp::TokenList tokens1 = createTokenList (filename , files, &outputList, fileStream );
667
673
668
674
// If there is a syntax error, report it and stop
669
675
const auto output_it = std::find_if (outputList.cbegin (), outputList.cend (), [](const simplecpp::Output &output){
0 commit comments