@@ -162,8 +162,7 @@ static bool throw_deprecation = false;
162162static bool trace_sync_io = false ;
163163static bool track_heap_objects = false ;
164164static const char * eval_string = nullptr ;
165- static unsigned int preload_module_count = 0 ;
166- static const char ** preload_modules = nullptr ;
165+ static std::vector<std::string> preload_modules;
167166static const int v8_default_thread_pool_size = 4 ;
168167static int v8_thread_pool_size = v8_default_thread_pool_size;
169168static bool prof_process = false ;
@@ -3277,21 +3276,18 @@ void SetupProcessObject(Environment* env,
32773276 READONLY_PROPERTY (process, " _forceRepl" , True (env->isolate ()));
32783277 }
32793278
3280- if (preload_module_count) {
3281- CHECK (preload_modules);
3279+ if (!preload_modules.empty ()) {
32823280 Local<Array> array = Array::New (env->isolate ());
3283- for (unsigned int i = 0 ; i < preload_module_count ; ++i) {
3281+ for (unsigned int i = 0 ; i < preload_modules. size () ; ++i) {
32843282 Local<String> module = String::NewFromUtf8 (env->isolate (),
3285- preload_modules[i]);
3283+ preload_modules[i]. c_str () );
32863284 array->Set (i, module );
32873285 }
32883286 READONLY_PROPERTY (process,
32893287 " _preload_modules" ,
32903288 array);
32913289
3292- delete[] preload_modules;
3293- preload_modules = nullptr ;
3294- preload_module_count = 0 ;
3290+ preload_modules.clear ();
32953291 }
32963292
32973293 // --no-deprecation
@@ -3649,15 +3645,13 @@ static void ParseArgs(int* argc,
36493645 const char ** new_exec_argv = new const char *[nargs];
36503646 const char ** new_v8_argv = new const char *[nargs];
36513647 const char ** new_argv = new const char *[nargs];
3652- const char ** local_preload_modules = new const char *[nargs];
36533648 bool use_bundled_ca = false ;
36543649 bool use_openssl_ca = false ;
36553650
36563651 for (unsigned int i = 0 ; i < nargs; ++i) {
36573652 new_exec_argv[i] = nullptr ;
36583653 new_v8_argv[i] = nullptr ;
36593654 new_argv[i] = nullptr ;
3660- local_preload_modules[i] = nullptr ;
36613655 }
36623656
36633657 // exec_argv starts with the first option, the other two start with argv[0].
@@ -3715,7 +3709,7 @@ static void ParseArgs(int* argc,
37153709 exit (9 );
37163710 }
37173711 args_consumed += 1 ;
3718- local_preload_modules[preload_module_count++] = module ;
3712+ preload_modules. push_back ( module ) ;
37193713 } else if (strcmp (arg, " --check" ) == 0 || strcmp (arg, " -c" ) == 0 ) {
37203714 syntax_check_only = true ;
37213715 } else if (strcmp (arg, " --interactive" ) == 0 || strcmp (arg, " -i" ) == 0 ) {
@@ -3835,16 +3829,6 @@ static void ParseArgs(int* argc,
38353829 memcpy (argv, new_argv, new_argc * sizeof (*argv));
38363830 delete[] new_argv;
38373831 *argc = static_cast <int >(new_argc);
3838-
3839- // Copy the preload_modules from the local array to an appropriately sized
3840- // global array.
3841- if (preload_module_count > 0 ) {
3842- CHECK (!preload_modules);
3843- preload_modules = new const char *[preload_module_count];
3844- memcpy (preload_modules, local_preload_modules,
3845- preload_module_count * sizeof (*preload_modules));
3846- }
3847- delete[] local_preload_modules;
38483832}
38493833
38503834
0 commit comments