@@ -142,8 +142,7 @@ static bool throw_deprecation = false;
142
142
static bool trace_sync_io = false ;
143
143
static bool track_heap_objects = false ;
144
144
static const char * eval_string = nullptr ;
145
- static unsigned int preload_module_count = 0 ;
146
- static const char ** preload_modules = nullptr ;
145
+ static std::vector<std::string> preload_modules;
147
146
#if HAVE_INSPECTOR
148
147
static bool use_inspector = false ;
149
148
#else
@@ -3328,21 +3327,18 @@ void SetupProcessObject(Environment* env,
3328
3327
}
3329
3328
3330
3329
// -r, --require
3331
- if (preload_module_count) {
3332
- CHECK (preload_modules);
3330
+ if (!preload_modules.empty ()) {
3333
3331
Local<Array> array = Array::New (env->isolate ());
3334
- for (unsigned int i = 0 ; i < preload_module_count ; ++i) {
3332
+ for (unsigned int i = 0 ; i < preload_modules. size () ; ++i) {
3335
3333
Local<String> module = String::NewFromUtf8 (env->isolate (),
3336
- preload_modules[i]);
3334
+ preload_modules[i]. c_str () );
3337
3335
array->Set (i, module);
3338
3336
}
3339
3337
READONLY_PROPERTY (process,
3340
3338
" _preload_modules" ,
3341
3339
array);
3342
3340
3343
- delete[] preload_modules;
3344
- preload_modules = nullptr ;
3345
- preload_module_count = 0 ;
3341
+ preload_modules.clear ();
3346
3342
}
3347
3343
3348
3344
// --no-deprecation
@@ -3798,13 +3794,11 @@ static void ParseArgs(int* argc,
3798
3794
const char ** new_exec_argv = new const char *[nargs];
3799
3795
const char ** new_v8_argv = new const char *[nargs];
3800
3796
const char ** new_argv = new const char *[nargs];
3801
- const char ** local_preload_modules = new const char *[nargs];
3802
3797
3803
3798
for (unsigned int i = 0 ; i < nargs; ++i) {
3804
3799
new_exec_argv[i] = nullptr ;
3805
3800
new_v8_argv[i] = nullptr ;
3806
3801
new_argv[i] = nullptr ;
3807
- local_preload_modules[i] = nullptr ;
3808
3802
}
3809
3803
3810
3804
// exec_argv starts with the first option, the other two start with argv[0].
@@ -3862,7 +3856,7 @@ static void ParseArgs(int* argc,
3862
3856
exit (9 );
3863
3857
}
3864
3858
args_consumed += 1 ;
3865
- local_preload_modules[preload_module_count++] = module;
3859
+ preload_modules. push_back ( module) ;
3866
3860
} else if (strcmp (arg, " --check" ) == 0 || strcmp (arg, " -c" ) == 0 ) {
3867
3861
syntax_check_only = true ;
3868
3862
} else if (strcmp (arg, " --interactive" ) == 0 || strcmp (arg, " -i" ) == 0 ) {
@@ -3952,16 +3946,6 @@ static void ParseArgs(int* argc,
3952
3946
memcpy (argv, new_argv, new_argc * sizeof (*argv));
3953
3947
delete[] new_argv;
3954
3948
*argc = static_cast <int >(new_argc);
3955
-
3956
- // Copy the preload_modules from the local array to an appropriately sized
3957
- // global array.
3958
- if (preload_module_count > 0 ) {
3959
- CHECK (!preload_modules);
3960
- preload_modules = new const char *[preload_module_count];
3961
- memcpy (preload_modules, local_preload_modules,
3962
- preload_module_count * sizeof (*preload_modules));
3963
- }
3964
- delete[] local_preload_modules;
3965
3949
}
3966
3950
3967
3951
0 commit comments