From 512d5337c480a2a2704881d3fe1c40b6e0445cf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Fri, 26 May 2023 06:40:17 +0200 Subject: fix(napi): clear currently registering module slot (#19249) This commit fixes problem with loading N-API modules that use the "old" way of registration (using "napi_module_register" API). The slot was not cleared after loading modules, causing subsequent calls that use the new way of registration (using "napi_register_module_v1" API) to try and load the previous module. Ref https://github.com/denoland/deno/issues/16460 --------- Co-authored-by: Divy Srivastava --- cli/napi/env.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'cli') diff --git a/cli/napi/env.rs b/cli/napi/env.rs index 114c43026..decdd59d6 100644 --- a/cli/napi/env.rs +++ b/cli/napi/env.rs @@ -136,9 +136,10 @@ fn node_api_get_module_file_name( #[napi_sym::napi_sym] fn napi_module_register(module: *const NapiModule) -> napi_status { - MODULE.with(|cell| { + MODULE_TO_REGISTER.with(|cell| { let mut slot = cell.borrow_mut(); - slot.replace(module); + let prev = slot.replace(module); + assert!(prev.is_none()); }); napi_ok } -- cgit v1.2.3