@@ -162,8 +162,7 @@ static bool throw_deprecation = false;
162
162
static bool trace_sync_io = false ;
163
163
static bool track_heap_objects = false ;
164
164
static 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;
167
166
static const int v8_default_thread_pool_size = 4 ;
168
167
static int v8_thread_pool_size = v8_default_thread_pool_size;
169
168
static bool prof_process = false ;
@@ -3277,21 +3276,18 @@ void SetupProcessObject(Environment* env,
3277
3276
READONLY_PROPERTY (process, " _forceRepl" , True (env->isolate ()));
3278
3277
}
3279
3278
3280
- if (preload_module_count) {
3281
- CHECK (preload_modules);
3279
+ if (!preload_modules.empty ()) {
3282
3280
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) {
3284
3282
Local<String> module = String::NewFromUtf8 (env->isolate (),
3285
- preload_modules[i]);
3283
+ preload_modules[i]. c_str () );
3286
3284
array->Set (i, module);
3287
3285
}
3288
3286
READONLY_PROPERTY (process,
3289
3287
" _preload_modules" ,
3290
3288
array);
3291
3289
3292
- delete[] preload_modules;
3293
- preload_modules = nullptr ;
3294
- preload_module_count = 0 ;
3290
+ preload_modules.clear ();
3295
3291
}
3296
3292
3297
3293
// --no-deprecation
@@ -3649,15 +3645,13 @@ static void ParseArgs(int* argc,
3649
3645
const char ** new_exec_argv = new const char *[nargs];
3650
3646
const char ** new_v8_argv = new const char *[nargs];
3651
3647
const char ** new_argv = new const char *[nargs];
3652
- const char ** local_preload_modules = new const char *[nargs];
3653
3648
bool use_bundled_ca = false ;
3654
3649
bool use_openssl_ca = false ;
3655
3650
3656
3651
for (unsigned int i = 0 ; i < nargs; ++i) {
3657
3652
new_exec_argv[i] = nullptr ;
3658
3653
new_v8_argv[i] = nullptr ;
3659
3654
new_argv[i] = nullptr ;
3660
- local_preload_modules[i] = nullptr ;
3661
3655
}
3662
3656
3663
3657
// exec_argv starts with the first option, the other two start with argv[0].
@@ -3715,7 +3709,7 @@ static void ParseArgs(int* argc,
3715
3709
exit (9 );
3716
3710
}
3717
3711
args_consumed += 1 ;
3718
- local_preload_modules[preload_module_count++] = module;
3712
+ preload_modules. push_back ( module) ;
3719
3713
} else if (strcmp (arg, " --check" ) == 0 || strcmp (arg, " -c" ) == 0 ) {
3720
3714
syntax_check_only = true ;
3721
3715
} else if (strcmp (arg, " --interactive" ) == 0 || strcmp (arg, " -i" ) == 0 ) {
@@ -3835,16 +3829,6 @@ static void ParseArgs(int* argc,
3835
3829
memcpy (argv, new_argv, new_argc * sizeof (*argv));
3836
3830
delete[] new_argv;
3837
3831
*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;
3848
3832
}
3849
3833
3850
3834
0 commit comments