Mercurial > hg > truffle
diff src/share/vm/runtime/arguments.cpp @ 564:323728917cf4
6788376: allow to ignore unrecognized VM options
Summary: Add new product flag -XX:+IgnoreUnrecognizedVMOptions
Reviewed-by: ysr, xlu
author | kvn |
---|---|
date | Thu, 05 Feb 2009 13:38:52 -0800 |
parents | 2494ab195856 |
children | dca06e7f503d |
line wrap: on
line diff
--- a/src/share/vm/runtime/arguments.cpp Wed Feb 04 23:17:38 2009 -0800 +++ b/src/share/vm/runtime/arguments.cpp Thu Feb 05 13:38:52 2009 -0800 @@ -2478,7 +2478,7 @@ vm_args.version = JNI_VERSION_1_2; vm_args.options = options; vm_args.nOptions = i; - vm_args.ignoreUnrecognized = false; + vm_args.ignoreUnrecognized = IgnoreUnrecognizedVMOptions; if (PrintVMOptions) { const char* tail; @@ -2525,13 +2525,12 @@ // If flag "-XX:Flags=flags-file" is used it will be the first option to be processed. bool settings_file_specified = false; + const char* flags_file; int index; for (index = 0; index < args->nOptions; index++) { const JavaVMOption *option = args->options + index; if (match_option(option, "-XX:Flags=", &tail)) { - if (!process_settings_file(tail, true, args->ignoreUnrecognized)) { - return JNI_EINVAL; - } + flags_file = tail; settings_file_specified = true; } if (match_option(option, "-XX:+PrintVMOptions", &tail)) { @@ -2540,6 +2539,24 @@ if (match_option(option, "-XX:-PrintVMOptions", &tail)) { PrintVMOptions = false; } + if (match_option(option, "-XX:+IgnoreUnrecognizedVMOptions", &tail)) { + IgnoreUnrecognizedVMOptions = true; + } + if (match_option(option, "-XX:-IgnoreUnrecognizedVMOptions", &tail)) { + IgnoreUnrecognizedVMOptions = false; + } + } + + if (IgnoreUnrecognizedVMOptions) { + // uncast const to modify the flag args->ignoreUnrecognized + *(jboolean*)(&args->ignoreUnrecognized) = true; + } + + // Parse specified settings file + if (settings_file_specified) { + if (!process_settings_file(flags_file, true, args->ignoreUnrecognized)) { + return JNI_EINVAL; + } } // Parse default .hotspotrc settings file