From 76ce7bb4b41aff10e562ebe42dfd8b29996c006c Mon Sep 17 00:00:00 2001 From: Nagendra Reddy Varikuti Date: Mon, 22 Aug 2022 17:07:28 +0530 Subject: [PATCH 1/3] Update js_native_api_v8.cc This is to fix the memory leak. calling finalizer and not setting _finalize_ran to true will cause a memory leak. --- src/js_native_api_v8.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/js_native_api_v8.cc b/src/js_native_api_v8.cc index db0cd6eb01e4a6..ae1a301314d148 100644 --- a/src/js_native_api_v8.cc +++ b/src/js_native_api_v8.cc @@ -561,6 +561,7 @@ void RefBase::Finalize(bool is_env_teardown) { napi_finalize fini = _finalize_callback; _finalize_callback = nullptr; _env->CallFinalizer(fini, _finalize_data, _finalize_hint); + _finalize_ran = true; } // this is safe because if a request to delete the reference From de8a2b093123e71101e95ac2205746762c3b928d Mon Sep 17 00:00:00 2001 From: Nagendra Reddy Varikuti Date: Mon, 17 Oct 2022 14:44:37 +0530 Subject: [PATCH 2/3] node-api: Added missing _finalize_ran to fix memory leak --- src/js_native_api_v8.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js_native_api_v8.cc b/src/js_native_api_v8.cc index ae1a301314d148..9fdd215e569d10 100644 --- a/src/js_native_api_v8.cc +++ b/src/js_native_api_v8.cc @@ -561,7 +561,7 @@ void RefBase::Finalize(bool is_env_teardown) { napi_finalize fini = _finalize_callback; _finalize_callback = nullptr; _env->CallFinalizer(fini, _finalize_data, _finalize_hint); - _finalize_ran = true; + _finalize_ran = true; } // this is safe because if a request to delete the reference From 0053d60dd3244aa0befa2ec40cec68f96f7691ea Mon Sep 17 00:00:00 2001 From: Nagendra Reddy Varikuti Date: Mon, 17 Oct 2022 14:45:40 +0530 Subject: [PATCH 3/3] node-api: Added missing _finalize_ran to fix memory leak --- src/js_native_api_v8.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js_native_api_v8.cc b/src/js_native_api_v8.cc index 9fdd215e569d10..ae1a301314d148 100644 --- a/src/js_native_api_v8.cc +++ b/src/js_native_api_v8.cc @@ -561,7 +561,7 @@ void RefBase::Finalize(bool is_env_teardown) { napi_finalize fini = _finalize_callback; _finalize_callback = nullptr; _env->CallFinalizer(fini, _finalize_data, _finalize_hint); - _finalize_ran = true; + _finalize_ran = true; } // this is safe because if a request to delete the reference