@@ -123,11 +123,15 @@ class CppCheck::CppCheckLogger : public ErrorLogger
123123 mErrorList .clear ();
124124 }
125125
126- void openPlist (const std::string& filename, const std::vector<std::string>* files )
126+ void openPlist (const std::string& filename)
127127 {
128128 mPlistFile .open (filename);
129129 mPlistFile << ErrorLogger::plistHeader (version ());
130- mPlistFilenames = files;
130+ }
131+
132+ void setPlistFilenames (std::vector<std::string> files)
133+ {
134+ mPlistFilenames = std::move (files);
131135 }
132136
133137 void closePlist ()
@@ -276,8 +280,8 @@ class CppCheck::CppCheckLogger : public ErrorLogger
276280 using Location = std::pair<std::string, int >;
277281 std::map<Location, std::set<std::string>> mLocationMacros ; // What macros are used on a location?
278282
279- const std::vector<std::string>* mPlistFilenames {};
280283 std::ofstream mPlistFile ;
284+ std::vector<std::string> mPlistFilenames ;
281285
282286 unsigned int mExitCode {};
283287
@@ -996,7 +1000,7 @@ unsigned int CppCheck::checkInternal(const FileWithDetails& file, const std::str
9961000 filename2 = file.spath ();
9971001 const std::size_t fileNameHash = std::hash<std::string> {}(file.spath ());
9981002 filename2 = mSettings .plistOutput + filename2.substr (0 , filename2.find (' .' )) + " _" + std::to_string (fileNameHash) + " .plist" ;
999- mLogger ->openPlist (filename2, &files );
1003+ mLogger ->openPlist (filename2);
10001004 }
10011005
10021006 // Parse comments and then remove them
@@ -1289,6 +1293,10 @@ unsigned int CppCheck::checkInternal(const FileWithDetails& file, const std::str
12891293 fdump.close ();
12901294 }
12911295
1296+ if (!mSettings .plistOutput .empty ()) {
1297+ mLogger ->setPlistFilenames (std::move (files));
1298+ }
1299+
12921300 executeAddons (dumpFile, file);
12931301 } catch (const TerminateException &) {
12941302 // Analysis is terminated
0 commit comments