Remove pdfium::MakeUnique() It is (now) unused. Change-Id: I6a5b8a1ee837bdf1f9f51bbe2be92e93691c7dab Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/69996 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/third_party/base/ptr_util.h b/third_party/base/ptr_util.h index 36f0920..3be55b4 100644 --- a/third_party/base/ptr_util.h +++ b/third_party/base/ptr_util.h
@@ -6,7 +6,6 @@ #define THIRD_PARTY_BASE_PTR_UTIL_H_ #include <memory> -#include <utility> namespace pdfium { @@ -18,57 +17,6 @@ return std::unique_ptr<T>(ptr); } -namespace internal { - -template <typename T> -struct MakeUniqueResult { - using Scalar = std::unique_ptr<T>; -}; - -template <typename T> -struct MakeUniqueResult<T[]> { - using Array = std::unique_ptr<T[]>; -}; - -template <typename T, size_t N> -struct MakeUniqueResult<T[N]> { - using Invalid = void; -}; - -} // namespace internal - -// Helper to construct an object wrapped in a std::unique_ptr. This is an -// implementation of C++14's std::MakeUnique that can be used in Chrome. -// -// MakeUnique<T>(args) should be preferred over WrapUnique(new T(args)): bare -// calls to `new` should be treated with scrutiny. -// -// Usage: -// // ptr is a std::unique_ptr<std::string> -// auto ptr = MakeUnique<std::string>("hello world!"); -// -// // arr is a std::unique_ptr<int[]> -// auto arr = MakeUnique<int[]>(5); - -// Overload for non-array types. Arguments are forwarded to T's constructor. -template <typename T, typename... Args> -typename internal::MakeUniqueResult<T>::Scalar MakeUnique(Args&&... args) { - return std::unique_ptr<T>(new T(std::forward<Args>(args)...)); -} - -// Overload for array types of unknown bound, e.g. T[]. The array is allocated -// with `new T[n]()` and value-initialized: note that this is distinct from -// `new T[n]`, which default-initializes. -template <typename T> -typename internal::MakeUniqueResult<T>::Array MakeUnique(size_t size) { - return std::unique_ptr<T>(new typename std::remove_extent<T>::type[size]()); -} - -// Overload to reject array types of known bound, e.g. T[n]. -template <typename T, typename... Args> -typename internal::MakeUniqueResult<T>::Invalid MakeUnique(Args&&... args) = - delete; - } // namespace pdfium #endif // THIRD_PARTY_BASE_PTR_UTIL_H_