From c015545bcbda6bb5e24dbc0cd121e4310fb3828e Mon Sep 17 00:00:00 2001 From: John Wellbelove Date: Sat, 23 Jan 2021 18:59:19 +0000 Subject: [PATCH] Added nullptr check to unique_ptr destructor. --- include/etl/memory.h | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/include/etl/memory.h b/include/etl/memory.h index e4a3343e..9fc585e1 100644 --- a/include/etl/memory.h +++ b/include/etl/memory.h @@ -1426,6 +1426,25 @@ namespace etl //********************************* unique_ptr(unique_ptr&& p_) ETL_NOEXCEPT : p(p_.release()) + , deleter(etl::move(deleter_)) + { + } +#endif + + //********************************* + unique_ptr(pointer p_, typename etl::conditional::value, + TDeleter, + typename etl::add_lvalue_reference::type>::type deleter_) ETL_NOEXCEPT + : p(p_) + , deleter(deleter_) + { + } + +#if ETL_CPP11_SUPPORTED + //********************************* + unique_ptr(pointer p_, typename etl::remove_reference::type&& deleter_) ETL_NOEXCEPT + : p(p_) + , deleter(etl::move(deleter_)) { } #endif @@ -1433,7 +1452,10 @@ namespace etl //********************************* ~unique_ptr() { - deleter(p); + if (p != ETL_NULLPTR) + { + deleter(p); + } } //*********************************