@@ -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
- template < typename Finalizer>
6793
- inline void BasicEnv::PostFinalizer (Finalizer finalizeCallback) const {
6792
+ inline void BasicEnv::PostFinalizer (
6793
+ FinalizerWithoutData finalizeCallback) const {
6794
6794
using T = void *;
6795
- details::FinalizeData<T, Finalizer >* finalizeData =
6796
- new details::FinalizeData<T, Finalizer >(
6795
+ details::FinalizeData<T, FinalizerWithoutData >* finalizeData =
6796
+ new details::FinalizeData<T, FinalizerWithoutData >(
6797
6797
{std::move (finalizeCallback), nullptr });
6798
6798
6799
6799
napi_status status = node_api_post_finalizer (
6800
6800
_env,
6801
- details::FinalizeData<T, Finalizer >::WrapperGCWithoutData,
6801
+ details::FinalizeData<T, FinalizerWithoutData >::WrapperGCWithoutData,
6802
6802
static_cast <void *>(nullptr ),
6803
6803
finalizeData);
6804
6804
if (status != napi_ok) {
@@ -6808,31 +6808,40 @@ inline void BasicEnv::PostFinalizer(Finalizer finalizeCallback) const {
6808
6808
}
6809
6809
}
6810
6810
6811
- template <typename Finalizer, typename T>
6812
- inline void BasicEnv::PostFinalizer (Finalizer finalizeCallback, T* data) const {
6813
- details::FinalizeData<T, Finalizer>* finalizeData =
6814
- new details::FinalizeData<T, Finalizer>(
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>>(
6815
6816
{std::move (finalizeCallback), nullptr });
6816
6817
6817
6818
napi_status status = node_api_post_finalizer (
6818
- _env, details::FinalizeData<T, Finalizer>::WrapperGC, data, finalizeData);
6819
+ _env,
6820
+ details::FinalizeData<DataType, Finalizer<DataType>>::WrapperGC,
6821
+ data,
6822
+ finalizeData);
6819
6823
if (status != napi_ok) {
6820
6824
delete finalizeData;
6821
6825
NAPI_FATAL_IF_FAILED (
6822
6826
status, " BasicEnv::PostFinalizer" , " invalid arguments" );
6823
6827
}
6824
6828
}
6825
6829
6826
- template <typename Finalizer, typename T, typename Hint>
6827
- inline void BasicEnv::PostFinalizer (Finalizer finalizeCallback,
6828
- T* data,
6829
- Hint* finalizeHint) const {
6830
- details::FinalizeData<T, Finalizer, Hint>* finalizeData =
6831
- new details::FinalizeData<T, Finalizer, Hint>(
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>(
6832
6839
{std::move (finalizeCallback), finalizeHint});
6833
6840
napi_status status = node_api_post_finalizer (
6834
6841
_env,
6835
- details::FinalizeData<T, Finalizer, Hint>::WrapperGCWithHint,
6842
+ details::FinalizeData<DataType,
6843
+ FinalizerWithHint<DataType, HintType>,
6844
+ HintType>::WrapperGCWithHint,
6836
6845
data,
6837
6846
finalizeData);
6838
6847
if (status != napi_ok) {
0 commit comments