[lld] r213312 - Use std::function instead of llvm::function_ref.
Rui Ueyama
ruiu at google.com
Thu Jul 17 14:23:53 PDT 2014
Author: ruiu
Date: Thu Jul 17 16:23:52 2014
New Revision: 213312
URL: http://llvm.org/viewvc/llvm-project?rev=213312&view=rev
Log:
Use std::function instead of llvm::function_ref.
Modified:
lld/trunk/include/lld/Core/InputGraph.h
lld/trunk/lib/Core/InputGraph.cpp
lld/trunk/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp
Modified: lld/trunk/include/lld/Core/InputGraph.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Core/InputGraph.h?rev=213312&r1=213311&r2=213312&view=diff
==============================================================================
--- lld/trunk/include/lld/Core/InputGraph.h (original)
+++ lld/trunk/include/lld/Core/InputGraph.h Thu Jul 17 16:23:52 2014
@@ -24,6 +24,7 @@
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/raw_ostream.h"
+#include <functional>
#include <memory>
#include <stack>
#include <vector>
@@ -71,7 +72,7 @@ public:
/// Adds an observer of getNextFile(). Each time a new file is about to be
/// returned from getNextFile(), registered observers are called with the file
/// being returned.
- void registerObserver(llvm::function_ref<void(File *)> fn);
+ void registerObserver(std::function<void(File *)>);
/// \brief Adds a node into the InputGraph
void addInputElement(std::unique_ptr<InputElement>);
@@ -99,7 +100,7 @@ protected:
// Index of the next element to be processed
uint32_t _nextElementIndex;
InputElement *_currentInputElement;
- std::vector<llvm::function_ref<void(File *)>> _observers;
+ std::vector<std::function<void(File *)>> _observers;
private:
ErrorOr<InputElement *> getNextInputElement();
Modified: lld/trunk/lib/Core/InputGraph.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Core/InputGraph.cpp?rev=213312&r1=213311&r2=213312&view=diff
==============================================================================
--- lld/trunk/lib/Core/InputGraph.cpp (original)
+++ lld/trunk/lib/Core/InputGraph.cpp Thu Jul 17 16:23:52 2014
@@ -38,7 +38,7 @@ ErrorOr<File &> InputGraph::getNextFile(
void InputGraph::notifyProgress() { _currentInputElement->notifyProgress(); }
-void InputGraph::registerObserver(llvm::function_ref<void(File *)> fn) {
+void InputGraph::registerObserver(std::function<void(File *)> fn) {
_observers.push_back(fn);
}
Modified: lld/trunk/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp?rev=213312&r1=213311&r2=213312&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp (original)
+++ lld/trunk/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp Thu Jul 17 16:23:52 2014
@@ -101,20 +101,6 @@ std::unique_ptr<File> PECOFFLinkingConte
"<command line option /include>");
}
-namespace {
-// As per policy, we cannot use std::function.
-class ObserverCallback {
-public:
- explicit ObserverCallback(pecoff::ExportedSymbolRenameFile *f)
- : _renameFile(f) {}
-
- void operator()(File *file) { _renameFile->addResolvableSymbols(file); }
-
-private:
- pecoff::ExportedSymbolRenameFile *_renameFile;
-};
-} // end anonymous namespace
-
bool PECOFFLinkingContext::createImplicitFiles(
std::vector<std::unique_ptr<File>> &) const {
// Create a file for __ImageBase.
@@ -140,7 +126,7 @@ bool PECOFFLinkingContext::createImplici
exportNode->appendInputFile(std::unique_ptr<File>(renameFile));
getLibraryGroup()->addFile(std::move(exportNode));
getInputGraph().registerObserver(
- *(new (_allocator) ObserverCallback(renameFile)));
+ [=](File *file) { renameFile->addResolvableSymbols(file); });
return true;
}
More information about the llvm-commits
mailing list