@@ -78,9 +78,8 @@ CppCheckExecutor::~CppCheckExecutor()
7878 delete mErrorOutput ;
7979}
8080
81- bool CppCheckExecutor::parseFromArgs (CppCheck *cppcheck , int argc, const char * const argv[])
81+ bool CppCheckExecutor::parseFromArgs (Settings &settings , int argc, const char * const argv[])
8282{
83- Settings& settings = cppcheck->settings ();
8483 CmdLineParser parser (settings);
8584 const bool success = parser.parseFromArgs (argc, argv);
8685
@@ -101,7 +100,7 @@ bool CppCheckExecutor::parseFromArgs(CppCheck *cppcheck, int argc, const char* c
101100 if (parser.getShowErrorMessages ()) {
102101 mShowAllErrors = true ;
103102 std::cout << ErrorMessage::getXMLHeader (settings.cppcheckCfgProductName );
104- cppcheck-> getErrorMessages ();
103+ CppCheck:: getErrorMessages (* this );
105104 std::cout << ErrorMessage::getXMLFooter () << std::endl;
106105 }
107106
@@ -199,23 +198,20 @@ int CppCheckExecutor::check(int argc, const char* const argv[])
199198{
200199 CheckUnusedFunctions::clear ();
201200
202- CppCheck cppCheck (*this , true , executeCommand);
203-
204- const Settings& settings = cppCheck.settings ();
205- mSettings = &settings;
206-
207- if (!parseFromArgs (&cppCheck, argc, argv)) {
208- mSettings = nullptr ;
201+ Settings settings;
202+ if (!parseFromArgs (settings, argc, argv)) {
209203 return EXIT_FAILURE;
210204 }
211205 if (Settings::terminated ()) {
212- mSettings = nullptr ;
213206 return EXIT_SUCCESS;
214207 }
215208
216- int ret;
209+ CppCheck cppCheck (*this , true , executeCommand);
210+ cppCheck.settings () = settings;
211+ mSettings = &settings;
217212
218- if (cppCheck.settings ().exceptionHandling )
213+ int ret;
214+ if (settings.exceptionHandling )
219215 ret = check_wrapper (cppCheck);
220216 else
221217 ret = check_internal (cppCheck);
0 commit comments