comparison src/share/vm/runtime/arguments.cpp @ 570:dca06e7f503d

Merge
author kvn
date Tue, 17 Feb 2009 14:30:24 -0800
parents 40ee984935b9 323728917cf4
children 0fbdb4381b99 660978a2a31a
comparison
equal deleted inserted replaced
549:fe3d7c11b4b7 570:dca06e7f503d
2487 // Construct JavaVMInitArgs structure and parse as if it was part of the command line 2487 // Construct JavaVMInitArgs structure and parse as if it was part of the command line
2488 JavaVMInitArgs vm_args; 2488 JavaVMInitArgs vm_args;
2489 vm_args.version = JNI_VERSION_1_2; 2489 vm_args.version = JNI_VERSION_1_2;
2490 vm_args.options = options; 2490 vm_args.options = options;
2491 vm_args.nOptions = i; 2491 vm_args.nOptions = i;
2492 vm_args.ignoreUnrecognized = false; 2492 vm_args.ignoreUnrecognized = IgnoreUnrecognizedVMOptions;
2493 2493
2494 if (PrintVMOptions) { 2494 if (PrintVMOptions) {
2495 const char* tail; 2495 const char* tail;
2496 for (int i = 0; i < vm_args.nOptions; i++) { 2496 for (int i = 0; i < vm_args.nOptions; i++) {
2497 const JavaVMOption *option = vm_args.options + i; 2497 const JavaVMOption *option = vm_args.options + i;
2534 // Remaining part of option string 2534 // Remaining part of option string
2535 const char* tail; 2535 const char* tail;
2536 2536
2537 // If flag "-XX:Flags=flags-file" is used it will be the first option to be processed. 2537 // If flag "-XX:Flags=flags-file" is used it will be the first option to be processed.
2538 bool settings_file_specified = false; 2538 bool settings_file_specified = false;
2539 const char* flags_file;
2539 int index; 2540 int index;
2540 for (index = 0; index < args->nOptions; index++) { 2541 for (index = 0; index < args->nOptions; index++) {
2541 const JavaVMOption *option = args->options + index; 2542 const JavaVMOption *option = args->options + index;
2542 if (match_option(option, "-XX:Flags=", &tail)) { 2543 if (match_option(option, "-XX:Flags=", &tail)) {
2543 if (!process_settings_file(tail, true, args->ignoreUnrecognized)) { 2544 flags_file = tail;
2544 return JNI_EINVAL;
2545 }
2546 settings_file_specified = true; 2545 settings_file_specified = true;
2547 } 2546 }
2548 if (match_option(option, "-XX:+PrintVMOptions", &tail)) { 2547 if (match_option(option, "-XX:+PrintVMOptions", &tail)) {
2549 PrintVMOptions = true; 2548 PrintVMOptions = true;
2550 } 2549 }
2551 if (match_option(option, "-XX:-PrintVMOptions", &tail)) { 2550 if (match_option(option, "-XX:-PrintVMOptions", &tail)) {
2552 PrintVMOptions = false; 2551 PrintVMOptions = false;
2552 }
2553 if (match_option(option, "-XX:+IgnoreUnrecognizedVMOptions", &tail)) {
2554 IgnoreUnrecognizedVMOptions = true;
2555 }
2556 if (match_option(option, "-XX:-IgnoreUnrecognizedVMOptions", &tail)) {
2557 IgnoreUnrecognizedVMOptions = false;
2558 }
2559 }
2560
2561 if (IgnoreUnrecognizedVMOptions) {
2562 // uncast const to modify the flag args->ignoreUnrecognized
2563 *(jboolean*)(&args->ignoreUnrecognized) = true;
2564 }
2565
2566 // Parse specified settings file
2567 if (settings_file_specified) {
2568 if (!process_settings_file(flags_file, true, args->ignoreUnrecognized)) {
2569 return JNI_EINVAL;
2553 } 2570 }
2554 } 2571 }
2555 2572
2556 // Parse default .hotspotrc settings file 2573 // Parse default .hotspotrc settings file
2557 if (!settings_file_specified) { 2574 if (!settings_file_specified) {