src/share/vm/runtime/arguments.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6788376 Cdiff src/share/vm/runtime/arguments.cpp

src/share/vm/runtime/arguments.cpp

Print this page

        

*** 2476,2486 **** // Construct JavaVMInitArgs structure and parse as if it was part of the command line JavaVMInitArgs vm_args; vm_args.version = JNI_VERSION_1_2; vm_args.options = options; vm_args.nOptions = i; ! vm_args.ignoreUnrecognized = false; if (PrintVMOptions) { const char* tail; for (int i = 0; i < vm_args.nOptions; i++) { const JavaVMOption *option = vm_args.options + i; --- 2476,2486 ---- // Construct JavaVMInitArgs structure and parse as if it was part of the command line JavaVMInitArgs vm_args; vm_args.version = JNI_VERSION_1_2; vm_args.options = options; vm_args.nOptions = i; ! vm_args.ignoreUnrecognized = IgnoreUnrecognizedVMOptions; if (PrintVMOptions) { const char* tail; for (int i = 0; i < vm_args.nOptions; i++) { const JavaVMOption *option = vm_args.options + i;
*** 2523,2548 **** // Remaining part of option string const char* tail; // If flag "-XX:Flags=flags-file" is used it will be the first option to be processed. bool settings_file_specified = false; 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; ! } settings_file_specified = true; } if (match_option(option, "-XX:+PrintVMOptions", &tail)) { PrintVMOptions = true; } if (match_option(option, "-XX:-PrintVMOptions", &tail)) { PrintVMOptions = false; } } // Parse default .hotspotrc settings file if (!settings_file_specified) { if (!process_settings_file(".hotspotrc", false, args->ignoreUnrecognized)) { return JNI_EINVAL; --- 2523,2565 ---- // Remaining part of option string const char* tail; // 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)) { ! flags_file = tail; settings_file_specified = true; } if (match_option(option, "-XX:+PrintVMOptions", &tail)) { PrintVMOptions = true; } 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 if (!settings_file_specified) { if (!process_settings_file(".hotspotrc", false, args->ignoreUnrecognized)) { return JNI_EINVAL;
src/share/vm/runtime/arguments.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File