Skip to content

Commit 131e252

Browse files
author
Gabriel Schulhof
committed
add env to finalizer
1 parent 7db12f7 commit 131e252

2 files changed

Lines changed: 9 additions & 6 deletions

File tree

napi-inl.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -326,8 +326,8 @@ inline Value Env::RunScript(String script) {
326326
template <typename T, Env::Finalizer<T> fini>
327327
inline void Env::SetInstanceData(T* data) {
328328
napi_status status =
329-
napi_set_instance_data(_env, data, [](napi_env, void* data, void*) {
330-
fini(static_cast<T*>(data));
329+
napi_set_instance_data(_env, data, [](napi_env env, void* data, void*) {
330+
fini(env, static_cast<T*>(data));
331331
}, nullptr);
332332
NAPI_THROW_IF_FAILED_VOID(_env, status);
333333
}
@@ -342,7 +342,7 @@ inline T* Env::GetInstanceData() {
342342
return static_cast<T*>(data);
343343
}
344344

345-
template <typename T> void Env::DefaultFini(T* data) {
345+
template <typename T> void Env::DefaultFini(Env, T* data) {
346346
delete data;
347347
}
348348
#endif // NAPI_VERSION > 5

napi.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,9 @@ namespace Napi {
174174
class Env {
175175
#if NAPI_VERSION > 5
176176
private:
177-
template <typename T> static void DefaultFini(T* data);
177+
template <typename T> static void DefaultFini(Env, T* data);
178+
template <typename DataType, typename HintType>
179+
static void DefaultFiniWithHint(Env, DataType* data, HintType* hint);
178180
#endif // NAPI_VERSION > 5
179181
public:
180182
Env(napi_env env);
@@ -193,10 +195,11 @@ namespace Napi {
193195
Value RunScript(String script);
194196

195197
#if NAPI_VERSION > 5
196-
template <typename T> using Finalizer = void (*)(T*);
198+
template <typename T> T* GetInstanceData();
199+
200+
template <typename T> using Finalizer = void (*)(Env, T*);
197201
template <typename T, Finalizer<T> fini = Env::DefaultFini<T>>
198202
void SetInstanceData(T* data);
199-
template <typename T> T* GetInstanceData();
200203
#endif // NAPI_VERSION > 5
201204

202205
private:

0 commit comments

Comments
 (0)