@@ -6789,16 +6789,16 @@ bool Env::CleanupHook<Hook, Arg>::IsEmpty() const {
6789
6789
#endif // NAPI_VERSION > 2
6790
6790
6791
6791
#ifdef NODE_API_EXPERIMENTAL_HAS_POST_FINALIZER
6792
- inline void BasicEnv::PostFinalizer (
6793
- FinalizerWithoutData finalizeCallback) const {
6792
+ template < typename FinalizerType>
6793
+ inline void BasicEnv::PostFinalizer (FinalizerType finalizeCallback) const {
6794
6794
using T = void *;
6795
- details::FinalizeData<T, FinalizerWithoutData >* finalizeData =
6796
- new details::FinalizeData<T, FinalizerWithoutData >(
6795
+ details::FinalizeData<T, FinalizerType >* finalizeData =
6796
+ new details::FinalizeData<T, FinalizerType >(
6797
6797
{std::move (finalizeCallback), nullptr });
6798
6798
6799
6799
napi_status status = node_api_post_finalizer (
6800
6800
_env,
6801
- details::FinalizeData<T, FinalizerWithoutData >::WrapperGCWithoutData,
6801
+ details::FinalizeData<T, FinalizerType >::WrapperGCWithoutData,
6802
6802
static_cast <void *>(nullptr ),
6803
6803
finalizeData);
6804
6804
if (status != napi_ok) {
@@ -6808,16 +6808,16 @@ inline void BasicEnv::PostFinalizer(
6808
6808
}
6809
6809
}
6810
6810
6811
- template <typename DataType >
6812
- inline void BasicEnv::PostFinalizer (Finalizer<DataType> finalizeCallback,
6813
- DataType * data) const {
6814
- details::FinalizeData<DataType, Finalizer<DataType> >* finalizeData =
6815
- new details::FinalizeData<DataType, Finalizer<DataType> >(
6811
+ template <typename FinalizerType, typename T >
6812
+ inline void BasicEnv::PostFinalizer (FinalizerType finalizeCallback,
6813
+ T * data) const {
6814
+ details::FinalizeData<T, FinalizerType >* finalizeData =
6815
+ new details::FinalizeData<T, FinalizerType >(
6816
6816
{std::move (finalizeCallback), nullptr });
6817
6817
6818
6818
napi_status status = node_api_post_finalizer (
6819
6819
_env,
6820
- details::FinalizeData<DataType, Finalizer<DataType> >::WrapperGC,
6820
+ details::FinalizeData<T, FinalizerType >::WrapperGC,
6821
6821
data,
6822
6822
finalizeData);
6823
6823
if (status != napi_ok) {
@@ -6827,21 +6827,16 @@ inline void BasicEnv::PostFinalizer(Finalizer<DataType> finalizeCallback,
6827
6827
}
6828
6828
}
6829
6829
6830
- template <typename DataType, typename HintType>
6831
- inline void BasicEnv::PostFinalizer (
6832
- FinalizerWithHint<DataType, HintType> finalizeCallback,
6833
- DataType* data,
6834
- HintType* finalizeHint) const {
6835
- details::FinalizeData<DataType,
6836
- FinalizerWithHint<DataType, HintType>,
6837
- HintType>* finalizeData = new details::
6838
- FinalizeData<DataType, FinalizerWithHint<DataType, HintType>, HintType>(
6830
+ template <typename FinalizerType, typename T, typename Hint>
6831
+ inline void BasicEnv::PostFinalizer (FinalizerType finalizeCallback,
6832
+ T* data,
6833
+ Hint* finalizeHint) const {
6834
+ details::FinalizeData<T, FinalizerType, Hint>* finalizeData =
6835
+ new details::FinalizeData<T, FinalizerType, Hint>(
6839
6836
{std::move (finalizeCallback), finalizeHint});
6840
6837
napi_status status = node_api_post_finalizer (
6841
6838
_env,
6842
- details::FinalizeData<DataType,
6843
- FinalizerWithHint<DataType, HintType>,
6844
- HintType>::WrapperGCWithHint,
6839
+ details::FinalizeData<T, FinalizerType, Hint>::WrapperGCWithHint,
6845
6840
data,
6846
6841
finalizeData);
6847
6842
if (status != napi_ok) {
0 commit comments