diff options
| author | David Blaikie <dblaikie@gmail.com> | 2014-04-15 05:53:26 +0000 |
|---|---|---|
| committer | David Blaikie <dblaikie@gmail.com> | 2014-04-15 05:53:26 +0000 |
| commit | ec528ee93f031bfb15853c8896d9a4da4d9bf6e9 (patch) | |
| tree | 65f7fb7c4fdef6558ac35355a0d287a6b41f8370 /llvm/include | |
| parent | 2e159fb6db4eb6d0b88cfc380e72a7049af9265e (diff) | |
| download | bcm5719-llvm-ec528ee93f031bfb15853c8896d9a4da4d9bf6e9.tar.gz bcm5719-llvm-ec528ee93f031bfb15853c8896d9a4da4d9bf6e9.zip | |
Use unique_ptr for the result of Registry entries.
llvm-svn: 206248
Diffstat (limited to 'llvm/include')
| -rw-r--r-- | llvm/include/llvm/Support/Registry.h | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/llvm/include/llvm/Support/Registry.h b/llvm/include/llvm/Support/Registry.h index 3da2d7ca7e1..b0c2e899855 100644 --- a/llvm/include/llvm/Support/Registry.h +++ b/llvm/include/llvm/Support/Registry.h @@ -14,24 +14,27 @@ #ifndef LLVM_SUPPORT_REGISTRY_H #define LLVM_SUPPORT_REGISTRY_H +#include "llvm/ADT/STLExtras.h" #include "llvm/Support/Compiler.h" +#include <memory> + namespace llvm { /// A simple registry entry which provides only a name, description, and /// no-argument constructor. template <typename T> class SimpleRegistryEntry { const char *Name, *Desc; - T *(*Ctor)(); + std::unique_ptr<T> (*Ctor)(); public: - SimpleRegistryEntry(const char *N, const char *D, T *(*C)()) + SimpleRegistryEntry(const char *N, const char *D, std::unique_ptr<T> (*C)()) : Name(N), Desc(D), Ctor(C) {} const char *getName() const { return Name; } const char *getDesc() const { return Desc; } - T *instantiate() const { return Ctor(); } + std::unique_ptr<T> instantiate() const { return Ctor(); } }; @@ -195,7 +198,7 @@ namespace llvm { entry Entry; node Node; - static T *CtorFn() { return new V(); } + static std::unique_ptr<T> CtorFn() { return make_unique<V>(); } public: Add(const char *Name, const char *Desc) |

