@@ -72,27 +72,30 @@ napi_value node_loader_port_call(napi_env env, napi_callback_info info)
7272
7373 /* Obtain NodeJS loader implementation */
7474 loader_impl impl = loader_get_impl (" node" );
75- loader_impl_node node_impl = (loader_impl_node)loader_impl_get (impl);
76-
77- /* Store current reference of the environment */
75+ loader_impl_node node_impl = (loader_impl_node)loader_impl_get (impl);
76+
77+ /* Store current reference of the environment */
7878 node_loader_impl_env (node_impl, env);
7979
8080 for (size_t args_count = 1 ; args_count < argc; ++args_count)
8181 {
8282 args[args_count - 1 ] = node_loader_impl_napi_to_value (node_impl, env, recv, argv[args_count]);
83-
84- node_loader_impl_finalizer (env, argv[args_count], args[args_count - 1 ]);
8583 }
86-
84+
8785 /* Call to the function */
8886 void * ret = metacallv_s (name, args, argc - 1 );
8987
90- napi_value result = node_loader_impl_value_to_napi (node_impl, env, ret);
91-
92- /* Release current reference of the environment */
88+ napi_value result = node_loader_impl_value_to_napi (node_impl, env, ret);
89+
90+ /* Release current reference of the environment */
9391 // node_loader_impl_env(node_impl, NULL);
9492
95- node_loader_impl_finalizer (env, result, ret);
93+ for (size_t args_count = 0 ; args_count < argc -1 ; ++args_count)
94+ {
95+ metacall_value_destroy (args[args_count]);
96+ }
97+
98+ metacall_value_destroy (ret);
9699
97100 delete[] argv;
98101 delete[] args;
@@ -153,20 +156,20 @@ napi_value node_loader_port_load_from_file(napi_env env, napi_callback_info info
153156 }
154157
155158 if (path_index == paths_size)
156- {
159+ {
157160 /* Obtain NodeJS loader implementation */
158161 loader_impl impl = loader_get_impl (" node" );
159- loader_impl_node node_impl = (loader_impl_node)loader_impl_get (impl);
160-
161- /* Store current reference of the environment */
162+ loader_impl_node node_impl = (loader_impl_node)loader_impl_get (impl);
163+
164+ /* Store current reference of the environment */
162165 node_loader_impl_env (node_impl, env);
163-
166+
164167 if (metacall_load_from_file (tag, (const char **)paths, paths_size, NULL ) != 0 )
165168 {
166169 napi_throw_error (env, NULL , " MetaCall could not load from file" );
167- }
168-
169- /* Release current reference of the environment */
170+ }
171+
172+ /* Release current reference of the environment */
170173 // node_loader_impl_env(node_impl, NULL);
171174 }
172175 else
@@ -253,23 +256,23 @@ napi_value node_loader_port_load_from_memory(napi_env env, napi_callback_info in
253256 status = napi_get_value_string_utf8 (env, argv[1 ], script, script_size, &script_length);
254257
255258 node_loader_impl_exception (env, status);
256-
259+
257260 /* Obtain NodeJS loader implementation */
258261 loader_impl impl = loader_get_impl (" node" );
259- loader_impl_node node_impl = (loader_impl_node)loader_impl_get (impl);
260-
261- /* Store current reference of the environment */
262+ loader_impl_node node_impl = (loader_impl_node)loader_impl_get (impl);
263+
264+ /* Store current reference of the environment */
262265 node_loader_impl_env (node_impl, env);
263-
266+
264267 // Load script from memory
265268 if (metacall_load_from_memory (tag, script, script_size, NULL ) != 0 )
266269 {
267270 napi_throw_error (env, NULL , " MetaCall could not load from memory" );
268271 }
269-
270- /* Release current reference of the environment */
272+
273+ /* Release current reference of the environment */
271274 // node_loader_impl_env(node_impl, NULL);
272-
275+
273276 free (tag);
274277 free (script);
275278
0 commit comments