[clang-tools-extra] r294823 - Fix memory leak by using unique_ptr

David Blaikie via cfe-commits cfe-commits at lists.llvm.org
Fri Feb 10 21:25:22 PST 2017


Author: dblaikie
Date: Fri Feb 10 23:25:21 2017
New Revision: 294823

URL: http://llvm.org/viewvc/llvm-project?rev=294823&view=rev
Log:
Fix memory leak by using unique_ptr

Modified:
    clang-tools-extra/trunk/modularize/CoverageChecker.cpp
    clang-tools-extra/trunk/modularize/CoverageChecker.h
    clang-tools-extra/trunk/modularize/ModularizeUtilities.cpp

Modified: clang-tools-extra/trunk/modularize/CoverageChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/modularize/CoverageChecker.cpp?rev=294823&r1=294822&r2=294823&view=diff
==============================================================================
--- clang-tools-extra/trunk/modularize/CoverageChecker.cpp (original)
+++ clang-tools-extra/trunk/modularize/CoverageChecker.cpp Fri Feb 10 23:25:21 2017
@@ -150,12 +150,12 @@ CoverageChecker::CoverageChecker(StringR
 
 // Create instance of CoverageChecker, to simplify setting up
 // subordinate objects.
-CoverageChecker *CoverageChecker::createCoverageChecker(
-  StringRef ModuleMapPath, std::vector<std::string> &IncludePaths,
-  ArrayRef<std::string> CommandLine, clang::ModuleMap *ModuleMap) {
+std::unique_ptr<CoverageChecker> CoverageChecker::createCoverageChecker(
+    StringRef ModuleMapPath, std::vector<std::string> &IncludePaths,
+    ArrayRef<std::string> CommandLine, clang::ModuleMap *ModuleMap) {
 
-  return new CoverageChecker(ModuleMapPath, IncludePaths, CommandLine,
-    ModuleMap);
+  return llvm::make_unique<CoverageChecker>(ModuleMapPath, IncludePaths,
+                                            CommandLine, ModuleMap);
 }
 
 // Do checks.

Modified: clang-tools-extra/trunk/modularize/CoverageChecker.h
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/modularize/CoverageChecker.h?rev=294823&r1=294822&r2=294823&view=diff
==============================================================================
--- clang-tools-extra/trunk/modularize/CoverageChecker.h (original)
+++ clang-tools-extra/trunk/modularize/CoverageChecker.h Fri Feb 10 23:25:21 2017
@@ -91,10 +91,9 @@ public:
   /// \param CommandLine Compile command line arguments.
   /// \param ModuleMap The module map to check.
   /// \returns Initialized CoverageChecker object.
-  static CoverageChecker *createCoverageChecker(
-    llvm::StringRef ModuleMapPath, std::vector<std::string> &IncludePaths,
-    llvm::ArrayRef<std::string> CommandLine,
-    clang::ModuleMap *ModuleMap);
+  static std::unique_ptr<CoverageChecker> createCoverageChecker(
+      llvm::StringRef ModuleMapPath, std::vector<std::string> &IncludePaths,
+      llvm::ArrayRef<std::string> CommandLine, clang::ModuleMap *ModuleMap);
 
   /// Do checks.
   /// Starting from the directory of the module.modulemap file,

Modified: clang-tools-extra/trunk/modularize/ModularizeUtilities.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/modularize/ModularizeUtilities.cpp?rev=294823&r1=294822&r2=294823&view=diff
==============================================================================
--- clang-tools-extra/trunk/modularize/ModularizeUtilities.cpp (original)
+++ clang-tools-extra/trunk/modularize/ModularizeUtilities.cpp Fri Feb 10 23:25:21 2017
@@ -120,8 +120,9 @@ std::error_code ModularizeUtilities::doC
   std::error_code EC;
   for (ModuleMapIndex = 0; ModuleMapIndex < ModuleMapCount; ++ModuleMapIndex) {
     std::unique_ptr<clang::ModuleMap> &ModMap = ModuleMaps[ModuleMapIndex];
-    CoverageChecker *Checker = CoverageChecker::createCoverageChecker(
-      InputFilePaths[ModuleMapIndex], IncludePaths, CommandLine, ModMap.get());
+    auto Checker = CoverageChecker::createCoverageChecker(
+        InputFilePaths[ModuleMapIndex], IncludePaths, CommandLine,
+        ModMap.get());
     std::error_code LocalEC = Checker->doChecks();
     if (LocalEC.value() > 0)
       EC = LocalEC;




More information about the cfe-commits mailing list