357 // Bytecode rewriting 358 static void set_bytecode_flags(); 359 360 // Invocation API hooks 361 static abort_hook_t _abort_hook; 362 static exit_hook_t _exit_hook; 363 static vfprintf_hook_t _vfprintf_hook; 364 365 // System properties 366 static bool add_property(const char* prop); 367 368 // Aggressive optimization flags. 369 static void set_aggressive_opts_flags(); 370 371 // Argument parsing 372 static void do_pd_flag_adjustments(); 373 static bool parse_argument(const char* arg, Flag::Flags origin); 374 static bool process_argument(const char* arg, jboolean ignore_unrecognized, Flag::Flags origin); 375 static void process_java_launcher_argument(const char*, void*); 376 static void process_java_compiler_argument(char* arg); 377 static jint parse_options_environment_variable(const char* name, SysClassPath* scp_p, bool* scp_assembly_required_p); 378 static jint parse_java_tool_options_environment_variable(SysClassPath* scp_p, bool* scp_assembly_required_p); 379 static jint parse_java_options_environment_variable(SysClassPath* scp_p, bool* scp_assembly_required_p); 380 static jint parse_vm_init_args(const JavaVMInitArgs* args); 381 static jint parse_each_vm_init_arg(const JavaVMInitArgs* args, SysClassPath* scp_p, bool* scp_assembly_required_p, Flag::Flags origin); 382 static jint finalize_vm_init_args(SysClassPath* scp_p, bool scp_assembly_required); 383 static bool is_bad_option(const JavaVMOption* option, jboolean ignore, const char* option_type); 384 385 static bool is_bad_option(const JavaVMOption* option, jboolean ignore) { 386 return is_bad_option(option, ignore, NULL); 387 } 388 389 static void describe_range_error(ArgsRange errcode); 390 static ArgsRange check_memory_size(julong size, julong min_size); 391 static ArgsRange parse_memory_size(const char* s, julong* long_arg, 392 julong min_size); 393 // Parse a string for a unsigned integer. Returns true if value 394 // is an unsigned integer greater than or equal to the minimum 395 // parameter passed and returns the value in uintx_arg. Returns 396 // false otherwise, with uintx_arg undefined. 397 static bool parse_uintx(const char* value, uintx* uintx_arg, 398 uintx min_size); 399 400 // methods to build strings from individual args | 357 // Bytecode rewriting 358 static void set_bytecode_flags(); 359 360 // Invocation API hooks 361 static abort_hook_t _abort_hook; 362 static exit_hook_t _exit_hook; 363 static vfprintf_hook_t _vfprintf_hook; 364 365 // System properties 366 static bool add_property(const char* prop); 367 368 // Aggressive optimization flags. 369 static void set_aggressive_opts_flags(); 370 371 // Argument parsing 372 static void do_pd_flag_adjustments(); 373 static bool parse_argument(const char* arg, Flag::Flags origin); 374 static bool process_argument(const char* arg, jboolean ignore_unrecognized, Flag::Flags origin); 375 static void process_java_launcher_argument(const char*, void*); 376 static void process_java_compiler_argument(char* arg); 377 static jint parse_options_environment_variable(const char* name, JavaVMInitArgs* vm_args); 378 static jint parse_java_tool_options_environment_variable(JavaVMInitArgs* vm_args); 379 static jint parse_java_options_environment_variable(JavaVMInitArgs* vm_args); 380 static jint parse_vm_init_args(const JavaVMInitArgs *java_tool_options_args, 381 const JavaVMInitArgs *java_options_args, 382 const JavaVMInitArgs *cmd_line_args); 383 static jint parse_each_vm_init_arg(const JavaVMInitArgs* args, SysClassPath* scp_p, bool* scp_assembly_required_p, Flag::Flags origin); 384 static jint finalize_vm_init_args(SysClassPath* scp_p, bool scp_assembly_required); 385 static bool is_bad_option(const JavaVMOption* option, jboolean ignore, const char* option_type); 386 387 static bool is_bad_option(const JavaVMOption* option, jboolean ignore) { 388 return is_bad_option(option, ignore, NULL); 389 } 390 391 static void describe_range_error(ArgsRange errcode); 392 static ArgsRange check_memory_size(julong size, julong min_size); 393 static ArgsRange parse_memory_size(const char* s, julong* long_arg, 394 julong min_size); 395 // Parse a string for a unsigned integer. Returns true if value 396 // is an unsigned integer greater than or equal to the minimum 397 // parameter passed and returns the value in uintx_arg. Returns 398 // false otherwise, with uintx_arg undefined. 399 static bool parse_uintx(const char* value, uintx* uintx_arg, 400 uintx min_size); 401 402 // methods to build strings from individual args |