From 33539cb34b8f59b65387c142a46744fc83d3ed31 Mon Sep 17 00:00:00 2001 From: Ben Woosley Date: Thu, 12 Jul 2018 00:39:40 -0400 Subject: [PATCH] Extract MakeUnique into utilmemory.h And use it to reduce chainparamsbase's direct reliance on util.h to only args handling. utilmemory.h can be replaced with once we move to C++14. --- src/Makefile.am | 1 + src/chainparamsbase.cpp | 1 + src/interfaces/handler.cpp | 2 +- src/util.h | 11 ++--------- src/utilmemory.h | 19 +++++++++++++++++++ 5 files changed, 24 insertions(+), 10 deletions(-) create mode 100644 src/utilmemory.h diff --git a/src/Makefile.am b/src/Makefile.am index 1dd202085..2603dbae5 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -179,6 +179,7 @@ BITCOIN_CORE_H = \ ui_interface.h \ undo.h \ util.h \ + utilmemory.h \ utilmoneystr.h \ utiltime.h \ validation.h \ diff --git a/src/chainparamsbase.cpp b/src/chainparamsbase.cpp index 787d8d8f6..da9f3e320 100644 --- a/src/chainparamsbase.cpp +++ b/src/chainparamsbase.cpp @@ -7,6 +7,7 @@ #include #include +#include #include diff --git a/src/interfaces/handler.cpp b/src/interfaces/handler.cpp index 8e45faa2a..80f461f4d 100644 --- a/src/interfaces/handler.cpp +++ b/src/interfaces/handler.cpp @@ -4,7 +4,7 @@ #include -#include +#include #include #include diff --git a/src/util.h b/src/util.h index 8094d72d6..f8bcc0192 100644 --- a/src/util.h +++ b/src/util.h @@ -1,5 +1,5 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto -// Copyright (c) 2009-2017 The Bitcoin Core developers +// Copyright (c) 2009-2018 The Bitcoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -20,11 +20,11 @@ #include #include #include +#include #include #include #include -#include #include #include #include @@ -346,13 +346,6 @@ template void TraceThread(const char* name, Callable func) std::string CopyrightHolders(const std::string& strPrefix); -//! Substitute for C++14 std::make_unique. -template -std::unique_ptr MakeUnique(Args&&... args) -{ - return std::unique_ptr(new T(std::forward(args)...)); -} - /** * On platforms that support it, tell the kernel the calling thread is * CPU-intensive and non-interactive. See SCHED_BATCH in sched(7) for details. diff --git a/src/utilmemory.h b/src/utilmemory.h new file mode 100644 index 000000000..e71fe9228 --- /dev/null +++ b/src/utilmemory.h @@ -0,0 +1,19 @@ +// Copyright (c) 2009-2010 Satoshi Nakamoto +// Copyright (c) 2009-2018 The Bitcoin Core developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef BITCOIN_UTILMEMORY_H +#define BITCOIN_UTILMEMORY_H + +#include +#include + +//! Substitute for C++14 std::make_unique. +template +std::unique_ptr MakeUnique(Args&&... args) +{ + return std::unique_ptr(new T(std::forward(args)...)); +} + +#endif