289 // Used for module system related properties: converted from command-line flags.
290 // Basic properties are writeable as they operate as "last one wins" and will get overwritten.
291 // Numbered properties are never writeable, and always internal.
292 static bool create_module_property(const char* prop_name, const char* prop_value, PropertyInternal internal);
293 static bool create_numbered_module_property(const char* prop_base_name, const char* prop_value, unsigned int count);
294
295 static int process_patch_mod_option(const char* patch_mod_tail);
296
297 // Aggressive optimization flags.
298 static jint set_aggressive_opts_flags();
299
300 static jint set_aggressive_heap_flags();
301
302 // Argument parsing
303 static bool parse_argument(const char* arg, JVMFlagOrigin origin);
304 static bool process_argument(const char* arg, jboolean ignore_unrecognized, JVMFlagOrigin origin);
305 static void process_java_launcher_argument(const char*, void*);
306 static jint parse_options_environment_variable(const char* name, ScopedVMInitArgs* vm_args);
307 static jint parse_java_tool_options_environment_variable(ScopedVMInitArgs* vm_args);
308 static jint parse_java_options_environment_variable(ScopedVMInitArgs* vm_args);
309 static jint parse_vm_options_file(const char* file_name, ScopedVMInitArgs* vm_args);
310 static jint parse_options_buffer(const char* name, char* buffer, const size_t buf_len, ScopedVMInitArgs* vm_args);
311 static jint parse_xss(const JavaVMOption* option, const char* tail, intx* out_ThreadStackSize);
312 static jint insert_vm_options_file(const JavaVMInitArgs* args,
313 const char* vm_options_file,
314 const int vm_options_file_pos,
315 ScopedVMInitArgs* vm_options_file_args,
316 ScopedVMInitArgs* args_out);
317 static bool args_contains_vm_options_file_arg(const JavaVMInitArgs* args);
318 static jint expand_vm_options_as_needed(const JavaVMInitArgs* args_in,
319 ScopedVMInitArgs* mod_args,
320 JavaVMInitArgs** args_out);
321 static jint match_special_option_and_act(const JavaVMInitArgs* args,
322 ScopedVMInitArgs* args_out);
323
324 static bool handle_deprecated_print_gc_flags();
325
326 static jint parse_vm_init_args(const JavaVMInitArgs *vm_options_args,
327 const JavaVMInitArgs *java_tool_options_args,
328 const JavaVMInitArgs *java_options_args,
329 const JavaVMInitArgs *cmd_line_args);
330 static jint parse_each_vm_init_arg(const JavaVMInitArgs* args, JVMFlagOrigin origin);
331 static jint finalize_vm_init_args();
332 static bool is_bad_option(const JavaVMOption* option, jboolean ignore, const char* option_type);
333
334 static bool is_bad_option(const JavaVMOption* option, jboolean ignore) {
335 return is_bad_option(option, ignore, nullptr);
336 }
337
338 static void describe_range_error(ArgsRange errcode);
339 static ArgsRange check_memory_size(julong size, julong min_size, julong max_size);
340 static ArgsRange parse_memory_size(const char* s, julong* long_arg,
341 julong min_size, julong max_size = max_uintx);
342
343 // methods to build strings from individual args
344 static void build_jvm_args(const char* arg);
345 static void build_jvm_flags(const char* arg);
346 static void add_string(char*** bldarray, int* count, const char* arg);
347 static const char* build_resource_string(char** args, int count);
348
349 // Returns true if the flag is obsolete (and not yet expired).
|
289 // Used for module system related properties: converted from command-line flags.
290 // Basic properties are writeable as they operate as "last one wins" and will get overwritten.
291 // Numbered properties are never writeable, and always internal.
292 static bool create_module_property(const char* prop_name, const char* prop_value, PropertyInternal internal);
293 static bool create_numbered_module_property(const char* prop_base_name, const char* prop_value, unsigned int count);
294
295 static int process_patch_mod_option(const char* patch_mod_tail);
296
297 // Aggressive optimization flags.
298 static jint set_aggressive_opts_flags();
299
300 static jint set_aggressive_heap_flags();
301
302 // Argument parsing
303 static bool parse_argument(const char* arg, JVMFlagOrigin origin);
304 static bool process_argument(const char* arg, jboolean ignore_unrecognized, JVMFlagOrigin origin);
305 static void process_java_launcher_argument(const char*, void*);
306 static jint parse_options_environment_variable(const char* name, ScopedVMInitArgs* vm_args);
307 static jint parse_java_tool_options_environment_variable(ScopedVMInitArgs* vm_args);
308 static jint parse_java_options_environment_variable(ScopedVMInitArgs* vm_args);
309 static jint parse_aot_tool_options_environment_variable(const JavaVMInitArgs *vm_options_args,
310 const JavaVMInitArgs *java_tool_options_args,
311 const JavaVMInitArgs *cmd_line_args,
312 const JavaVMInitArgs *java_options_args,
313 ScopedVMInitArgs* aot_tool_options_args);
314 static jint parse_vm_options_file(const char* file_name, ScopedVMInitArgs* vm_args);
315 static jint parse_options_buffer(const char* name, char* buffer, const size_t buf_len, ScopedVMInitArgs* vm_args);
316 static jint parse_xss(const JavaVMOption* option, const char* tail, intx* out_ThreadStackSize);
317 static jint insert_vm_options_file(const JavaVMInitArgs* args,
318 const char* vm_options_file,
319 const int vm_options_file_pos,
320 ScopedVMInitArgs* vm_options_file_args,
321 ScopedVMInitArgs* args_out);
322 static bool args_contains_vm_options_file_arg(const JavaVMInitArgs* args);
323 static jint expand_vm_options_as_needed(const JavaVMInitArgs* args_in,
324 ScopedVMInitArgs* mod_args,
325 JavaVMInitArgs** args_out);
326 static jint match_special_option_and_act(const JavaVMInitArgs* args,
327 ScopedVMInitArgs* args_out);
328
329 static bool handle_deprecated_print_gc_flags();
330
331 static jint parse_vm_init_args(const JavaVMInitArgs* vm_options_args,
332 const JavaVMInitArgs* java_tool_options_args,
333 const JavaVMInitArgs* cmd_line_args,
334 const JavaVMInitArgs* java_options_args,
335 const JavaVMInitArgs* aot_tool_options_args);
336 static jint parse_each_vm_init_arg(const JavaVMInitArgs* args, JVMFlagOrigin origin);
337 static jint finalize_vm_init_args();
338 static bool is_bad_option(const JavaVMOption* option, jboolean ignore, const char* option_type);
339
340 static bool is_bad_option(const JavaVMOption* option, jboolean ignore) {
341 return is_bad_option(option, ignore, nullptr);
342 }
343
344 static void describe_range_error(ArgsRange errcode);
345 static ArgsRange check_memory_size(julong size, julong min_size, julong max_size);
346 static ArgsRange parse_memory_size(const char* s, julong* long_arg,
347 julong min_size, julong max_size = max_uintx);
348
349 // methods to build strings from individual args
350 static void build_jvm_args(const char* arg);
351 static void build_jvm_flags(const char* arg);
352 static void add_string(char*** bldarray, int* count, const char* arg);
353 static const char* build_resource_string(char** args, int count);
354
355 // Returns true if the flag is obsolete (and not yet expired).
|