Skip to content

Commit b4519ca

Browse files
addaleaxtargos
authored andcommitted
src: move DeleteFnPtr into util.h
This is more generally useful than just in a crypto context. PR-URL: #20885 Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de>
1 parent 45adec2 commit b4519ca

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

src/node_crypto.h

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -75,15 +75,6 @@ struct MarkPopErrorOnReturn {
7575
~MarkPopErrorOnReturn() { ERR_pop_to_mark(); }
7676
};
7777

78-
template <typename T, void (*function)(T*)>
79-
struct FunctionDeleter {
80-
void operator()(T* pointer) const { function(pointer); }
81-
typedef std::unique_ptr<T, FunctionDeleter> Pointer;
82-
};
83-
84-
template <typename T, void (*function)(T*)>
85-
using DeleteFnPtr = typename FunctionDeleter<T, function>::Pointer;
86-
8778
// Define smart pointers for the most commonly used OpenSSL types:
8879
using X509Pointer = DeleteFnPtr<X509, X509_free>;
8980
using BIOPointer = DeleteFnPtr<BIO, BIO_free_all>;

src/util.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -456,6 +456,15 @@ struct is_callable<T, typename std::enable_if<
456456
std::is_same<decltype(void(&T::operator())), void>::value
457457
>::type> : std::true_type { };
458458

459+
template <typename T, void (*function)(T*)>
460+
struct FunctionDeleter {
461+
void operator()(T* pointer) const { function(pointer); }
462+
typedef std::unique_ptr<T, FunctionDeleter> Pointer;
463+
};
464+
465+
template <typename T, void (*function)(T*)>
466+
using DeleteFnPtr = typename FunctionDeleter<T, function>::Pointer;
467+
459468
} // namespace node
460469

461470
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS

0 commit comments

Comments
 (0)