[Support] Replace function with function_ref in writeFileAtomically. NFC
authorIlya Biryukov <ibiryukov@google.com>
Wed, 18 Sep 2019 08:31:28 +0000 (08:31 +0000)
committerIlya Biryukov <ibiryukov@google.com>
Wed, 18 Sep 2019 08:31:28 +0000 (08:31 +0000)
Summary:
The latter is slightly more efficient and communicates the intent of the
API: writeFileAtomically does not own or copy the callback, it merely
calls it at some point.

Reviewers: jkorous

Reviewed By: jkorous

Subscribers: hiraditya, dexonsmith, jfb, llvm-commits, cfe-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D67584

llvm-svn: 372201

llvm/include/llvm/Support/FileUtilities.h
llvm/lib/Support/FileUtilities.cpp

index 04efdce..d661c5c 100644 (file)
@@ -14,6 +14,7 @@
 #ifndef LLVM_SUPPORT_FILEUTILITIES_H
 #define LLVM_SUPPORT_FILEUTILITIES_H
 
+#include "llvm/ADT/STLExtras.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Support/Errc.h"
 #include "llvm/Support/ErrorHandling.h"
@@ -107,9 +108,9 @@ namespace llvm {
   llvm::Error writeFileAtomically(StringRef TempPathModel, StringRef FinalPath,
                                   StringRef Buffer);
 
-  llvm::Error
-  writeFileAtomically(StringRef TempPathModel, StringRef FinalPath,
-                      std::function<llvm::Error(llvm::raw_ostream &)> Writer);
+  llvm::Error writeFileAtomically(
+      StringRef TempPathModel, StringRef FinalPath,
+      llvm::function_ref<llvm::Error(llvm::raw_ostream &)> Writer);
 } // End llvm namespace
 
 #endif
index d11fbb5..3d862f5 100644 (file)
@@ -296,7 +296,7 @@ llvm::Error llvm::writeFileAtomically(StringRef TempPathModel,
 
 llvm::Error llvm::writeFileAtomically(
     StringRef TempPathModel, StringRef FinalPath,
-    std::function<llvm::Error(llvm::raw_ostream &)> Writer) {
+    llvm::function_ref<llvm::Error(llvm::raw_ostream &)> Writer) {
   SmallString<128> GeneratedUniqPath;
   int TempFD;
   if (sys::fs::createUniqueFile(TempPathModel.str(), TempFD,